1e5dd7070Spatrick/*===---- module.modulemap - intrinsics module map -------------------------=== 2e5dd7070Spatrick * 3e5dd7070Spatrick * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e5dd7070Spatrick * See https://llvm.org/LICENSE.txt for license information. 5e5dd7070Spatrick * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e5dd7070Spatrick * 7e5dd7070Spatrick *===-----------------------------------------------------------------------=== 8e5dd7070Spatrick */ 9e5dd7070Spatrick 10e5dd7070Spatrickmodule _Builtin_intrinsics [system] [extern_c] { 11e5dd7070Spatrick explicit module altivec { 12e5dd7070Spatrick requires altivec 13e5dd7070Spatrick header "altivec.h" 14e5dd7070Spatrick } 15e5dd7070Spatrick 16e5dd7070Spatrick explicit module arm { 17e5dd7070Spatrick requires arm 18e5dd7070Spatrick 19e5dd7070Spatrick explicit module acle { 20e5dd7070Spatrick header "arm_acle.h" 21e5dd7070Spatrick export * 22e5dd7070Spatrick } 23e5dd7070Spatrick 24e5dd7070Spatrick explicit module neon { 25e5dd7070Spatrick requires neon 26e5dd7070Spatrick header "arm_neon.h" 27e5dd7070Spatrick header "arm_fp16.h" 28e5dd7070Spatrick export * 29e5dd7070Spatrick } 30*ec727ea7Spatrick 31*ec727ea7Spatrick explicit module sve { 32*ec727ea7Spatrick requires sve 33*ec727ea7Spatrick header "arm_sve.h" 34*ec727ea7Spatrick export * 35*ec727ea7Spatrick } 36e5dd7070Spatrick } 37e5dd7070Spatrick 38e5dd7070Spatrick explicit module intel { 39e5dd7070Spatrick requires x86 40e5dd7070Spatrick export * 41e5dd7070Spatrick 42e5dd7070Spatrick header "immintrin.h" 43e5dd7070Spatrick textual header "f16cintrin.h" 44e5dd7070Spatrick textual header "avxintrin.h" 45e5dd7070Spatrick textual header "avx2intrin.h" 46e5dd7070Spatrick textual header "avx512fintrin.h" 47e5dd7070Spatrick textual header "avx512erintrin.h" 48e5dd7070Spatrick textual header "fmaintrin.h" 49e5dd7070Spatrick 50e5dd7070Spatrick header "x86intrin.h" 51e5dd7070Spatrick textual header "bmiintrin.h" 52e5dd7070Spatrick textual header "bmi2intrin.h" 53e5dd7070Spatrick textual header "lzcntintrin.h" 54e5dd7070Spatrick textual header "xopintrin.h" 55e5dd7070Spatrick textual header "fma4intrin.h" 56e5dd7070Spatrick textual header "mwaitxintrin.h" 57e5dd7070Spatrick textual header "clzerointrin.h" 58e5dd7070Spatrick textual header "wbnoinvdintrin.h" 59e5dd7070Spatrick textual header "cldemoteintrin.h" 60e5dd7070Spatrick textual header "waitpkgintrin.h" 61e5dd7070Spatrick textual header "movdirintrin.h" 62e5dd7070Spatrick textual header "pconfigintrin.h" 63e5dd7070Spatrick textual header "sgxintrin.h" 64e5dd7070Spatrick textual header "ptwriteintrin.h" 65e5dd7070Spatrick textual header "invpcidintrin.h" 66e5dd7070Spatrick 67e5dd7070Spatrick textual header "__wmmintrin_aes.h" 68e5dd7070Spatrick textual header "__wmmintrin_pclmul.h" 69e5dd7070Spatrick 70e5dd7070Spatrick explicit module mm_malloc { 71e5dd7070Spatrick requires !freestanding 72e5dd7070Spatrick header "mm_malloc.h" 73e5dd7070Spatrick export * // note: for <stdlib.h> dependency 74e5dd7070Spatrick } 75e5dd7070Spatrick 76e5dd7070Spatrick explicit module cpuid { 77e5dd7070Spatrick requires gnuinlineasm 78e5dd7070Spatrick header "cpuid.h" 79e5dd7070Spatrick } 80e5dd7070Spatrick 81e5dd7070Spatrick explicit module mmx { 82e5dd7070Spatrick header "mmintrin.h" 83e5dd7070Spatrick } 84e5dd7070Spatrick 85e5dd7070Spatrick explicit module sse { 86e5dd7070Spatrick export mm_malloc 87e5dd7070Spatrick export mmx 88e5dd7070Spatrick export sse2 // note: for hackish <emmintrin.h> dependency 89e5dd7070Spatrick header "xmmintrin.h" 90e5dd7070Spatrick } 91e5dd7070Spatrick 92e5dd7070Spatrick explicit module sse2 { 93e5dd7070Spatrick export sse 94e5dd7070Spatrick header "emmintrin.h" 95e5dd7070Spatrick } 96e5dd7070Spatrick 97e5dd7070Spatrick explicit module sse3 { 98e5dd7070Spatrick export sse2 99e5dd7070Spatrick header "pmmintrin.h" 100e5dd7070Spatrick } 101e5dd7070Spatrick 102e5dd7070Spatrick explicit module ssse3 { 103e5dd7070Spatrick export sse3 104e5dd7070Spatrick header "tmmintrin.h" 105e5dd7070Spatrick } 106e5dd7070Spatrick 107e5dd7070Spatrick explicit module sse4_1 { 108e5dd7070Spatrick export ssse3 109e5dd7070Spatrick header "smmintrin.h" 110e5dd7070Spatrick } 111e5dd7070Spatrick 112e5dd7070Spatrick explicit module sse4_2 { 113e5dd7070Spatrick export sse4_1 114e5dd7070Spatrick header "nmmintrin.h" 115e5dd7070Spatrick } 116e5dd7070Spatrick 117e5dd7070Spatrick explicit module sse4a { 118e5dd7070Spatrick export sse3 119e5dd7070Spatrick header "ammintrin.h" 120e5dd7070Spatrick } 121e5dd7070Spatrick 122e5dd7070Spatrick explicit module popcnt { 123e5dd7070Spatrick header "popcntintrin.h" 124e5dd7070Spatrick } 125e5dd7070Spatrick 126e5dd7070Spatrick explicit module mm3dnow { 127e5dd7070Spatrick header "mm3dnow.h" 128e5dd7070Spatrick } 129e5dd7070Spatrick 130e5dd7070Spatrick explicit module aes_pclmul { 131e5dd7070Spatrick header "wmmintrin.h" 132e5dd7070Spatrick export aes 133e5dd7070Spatrick export pclmul 134e5dd7070Spatrick } 135e5dd7070Spatrick } 136e5dd7070Spatrick 137e5dd7070Spatrick explicit module systemz { 138e5dd7070Spatrick requires systemz 139e5dd7070Spatrick export * 140e5dd7070Spatrick 141e5dd7070Spatrick header "s390intrin.h" 142e5dd7070Spatrick 143e5dd7070Spatrick explicit module htm { 144e5dd7070Spatrick requires htm 145e5dd7070Spatrick header "htmintrin.h" 146e5dd7070Spatrick header "htmxlintrin.h" 147e5dd7070Spatrick } 148e5dd7070Spatrick 149e5dd7070Spatrick explicit module zvector { 150e5dd7070Spatrick requires zvector, vx 151e5dd7070Spatrick header "vecintrin.h" 152e5dd7070Spatrick } 153e5dd7070Spatrick } 154e5dd7070Spatrick} 155e5dd7070Spatrick 156e5dd7070Spatrickmodule _Builtin_stddef_max_align_t [system] [extern_c] { 157e5dd7070Spatrick header "__stddef_max_align_t.h" 158e5dd7070Spatrick} 159e5dd7070Spatrick 160e5dd7070Spatrickmodule opencl_c { 161e5dd7070Spatrick requires opencl 162e5dd7070Spatrick header "opencl-c.h" 163e5dd7070Spatrick header "opencl-c-base.h" 164e5dd7070Spatrick} 165