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