1*0a6a1f1dSLionel Sambucmodule _Builtin_intrinsics [system] [extern_c] { 2*0a6a1f1dSLionel Sambuc explicit module altivec { 3*0a6a1f1dSLionel Sambuc requires altivec 4*0a6a1f1dSLionel Sambuc header "altivec.h" 5*0a6a1f1dSLionel Sambuc } 6*0a6a1f1dSLionel Sambuc 7*0a6a1f1dSLionel Sambuc explicit module arm { 8*0a6a1f1dSLionel Sambuc requires arm 9*0a6a1f1dSLionel Sambuc 10*0a6a1f1dSLionel Sambuc explicit module acle { 11*0a6a1f1dSLionel Sambuc header "arm_acle.h" 12*0a6a1f1dSLionel Sambuc export * 13*0a6a1f1dSLionel Sambuc } 14*0a6a1f1dSLionel Sambuc 15*0a6a1f1dSLionel Sambuc explicit module neon { 16*0a6a1f1dSLionel Sambuc requires neon 17*0a6a1f1dSLionel Sambuc header "arm_neon.h" 18*0a6a1f1dSLionel Sambuc export * 19*0a6a1f1dSLionel Sambuc } 20*0a6a1f1dSLionel Sambuc } 21*0a6a1f1dSLionel Sambuc 22*0a6a1f1dSLionel Sambuc explicit module intel { 23*0a6a1f1dSLionel Sambuc requires x86 24*0a6a1f1dSLionel Sambuc export * 25*0a6a1f1dSLionel Sambuc 26*0a6a1f1dSLionel Sambuc header "immintrin.h" 27*0a6a1f1dSLionel Sambuc header "x86intrin.h" 28*0a6a1f1dSLionel Sambuc 29*0a6a1f1dSLionel Sambuc explicit module mm_malloc { 30*0a6a1f1dSLionel Sambuc header "mm_malloc.h" 31*0a6a1f1dSLionel Sambuc export * // note: for <stdlib.h> dependency 32*0a6a1f1dSLionel Sambuc } 33*0a6a1f1dSLionel Sambuc 34*0a6a1f1dSLionel Sambuc explicit module cpuid { 35*0a6a1f1dSLionel Sambuc requires x86 36*0a6a1f1dSLionel Sambuc header "cpuid.h" 37*0a6a1f1dSLionel Sambuc } 38*0a6a1f1dSLionel Sambuc 39*0a6a1f1dSLionel Sambuc explicit module mmx { 40*0a6a1f1dSLionel Sambuc requires mmx 41*0a6a1f1dSLionel Sambuc header "mmintrin.h" 42*0a6a1f1dSLionel Sambuc } 43*0a6a1f1dSLionel Sambuc 44*0a6a1f1dSLionel Sambuc explicit module f16c { 45*0a6a1f1dSLionel Sambuc requires f16c 46*0a6a1f1dSLionel Sambuc header "f16cintrin.h" 47*0a6a1f1dSLionel Sambuc } 48*0a6a1f1dSLionel Sambuc 49*0a6a1f1dSLionel Sambuc explicit module sse { 50*0a6a1f1dSLionel Sambuc requires sse 51*0a6a1f1dSLionel Sambuc export mmx 52*0a6a1f1dSLionel Sambuc export * // note: for hackish <emmintrin.h> dependency 53*0a6a1f1dSLionel Sambuc header "xmmintrin.h" 54*0a6a1f1dSLionel Sambuc } 55*0a6a1f1dSLionel Sambuc 56*0a6a1f1dSLionel Sambuc explicit module sse2 { 57*0a6a1f1dSLionel Sambuc requires sse2 58*0a6a1f1dSLionel Sambuc export sse 59*0a6a1f1dSLionel Sambuc header "emmintrin.h" 60*0a6a1f1dSLionel Sambuc } 61*0a6a1f1dSLionel Sambuc 62*0a6a1f1dSLionel Sambuc explicit module sse3 { 63*0a6a1f1dSLionel Sambuc requires sse3 64*0a6a1f1dSLionel Sambuc export sse2 65*0a6a1f1dSLionel Sambuc header "pmmintrin.h" 66*0a6a1f1dSLionel Sambuc } 67*0a6a1f1dSLionel Sambuc 68*0a6a1f1dSLionel Sambuc explicit module ssse3 { 69*0a6a1f1dSLionel Sambuc requires ssse3 70*0a6a1f1dSLionel Sambuc export sse3 71*0a6a1f1dSLionel Sambuc header "tmmintrin.h" 72*0a6a1f1dSLionel Sambuc } 73*0a6a1f1dSLionel Sambuc 74*0a6a1f1dSLionel Sambuc explicit module sse4_1 { 75*0a6a1f1dSLionel Sambuc requires sse41 76*0a6a1f1dSLionel Sambuc export ssse3 77*0a6a1f1dSLionel Sambuc header "smmintrin.h" 78*0a6a1f1dSLionel Sambuc } 79*0a6a1f1dSLionel Sambuc 80*0a6a1f1dSLionel Sambuc explicit module sse4_2 { 81*0a6a1f1dSLionel Sambuc requires sse42 82*0a6a1f1dSLionel Sambuc export sse4_1 83*0a6a1f1dSLionel Sambuc header "nmmintrin.h" 84*0a6a1f1dSLionel Sambuc } 85*0a6a1f1dSLionel Sambuc 86*0a6a1f1dSLionel Sambuc explicit module sse4a { 87*0a6a1f1dSLionel Sambuc requires sse4a 88*0a6a1f1dSLionel Sambuc export sse3 89*0a6a1f1dSLionel Sambuc header "ammintrin.h" 90*0a6a1f1dSLionel Sambuc } 91*0a6a1f1dSLionel Sambuc 92*0a6a1f1dSLionel Sambuc explicit module avx { 93*0a6a1f1dSLionel Sambuc requires avx 94*0a6a1f1dSLionel Sambuc export sse4_2 95*0a6a1f1dSLionel Sambuc header "avxintrin.h" 96*0a6a1f1dSLionel Sambuc } 97*0a6a1f1dSLionel Sambuc 98*0a6a1f1dSLionel Sambuc explicit module avx2 { 99*0a6a1f1dSLionel Sambuc requires avx2 100*0a6a1f1dSLionel Sambuc export avx 101*0a6a1f1dSLionel Sambuc header "avx2intrin.h" 102*0a6a1f1dSLionel Sambuc } 103*0a6a1f1dSLionel Sambuc 104*0a6a1f1dSLionel Sambuc explicit module avx512f { 105*0a6a1f1dSLionel Sambuc requires avx512f 106*0a6a1f1dSLionel Sambuc export avx2 107*0a6a1f1dSLionel Sambuc header "avx512fintrin.h" 108*0a6a1f1dSLionel Sambuc } 109*0a6a1f1dSLionel Sambuc 110*0a6a1f1dSLionel Sambuc explicit module avx512er { 111*0a6a1f1dSLionel Sambuc requires avx512er 112*0a6a1f1dSLionel Sambuc header "avx512erintrin.h" 113*0a6a1f1dSLionel Sambuc } 114*0a6a1f1dSLionel Sambuc 115*0a6a1f1dSLionel Sambuc explicit module bmi { 116*0a6a1f1dSLionel Sambuc requires bmi 117*0a6a1f1dSLionel Sambuc header "bmiintrin.h" 118*0a6a1f1dSLionel Sambuc } 119*0a6a1f1dSLionel Sambuc 120*0a6a1f1dSLionel Sambuc explicit module bmi2 { 121*0a6a1f1dSLionel Sambuc requires bmi2 122*0a6a1f1dSLionel Sambuc header "bmi2intrin.h" 123*0a6a1f1dSLionel Sambuc } 124*0a6a1f1dSLionel Sambuc 125*0a6a1f1dSLionel Sambuc explicit module fma { 126*0a6a1f1dSLionel Sambuc requires fma 127*0a6a1f1dSLionel Sambuc header "fmaintrin.h" 128*0a6a1f1dSLionel Sambuc } 129*0a6a1f1dSLionel Sambuc 130*0a6a1f1dSLionel Sambuc explicit module fma4 { 131*0a6a1f1dSLionel Sambuc requires fma4 132*0a6a1f1dSLionel Sambuc export sse3 133*0a6a1f1dSLionel Sambuc header "fma4intrin.h" 134*0a6a1f1dSLionel Sambuc } 135*0a6a1f1dSLionel Sambuc 136*0a6a1f1dSLionel Sambuc explicit module lzcnt { 137*0a6a1f1dSLionel Sambuc requires lzcnt 138*0a6a1f1dSLionel Sambuc header "lzcntintrin.h" 139*0a6a1f1dSLionel Sambuc } 140*0a6a1f1dSLionel Sambuc 141*0a6a1f1dSLionel Sambuc explicit module popcnt { 142*0a6a1f1dSLionel Sambuc requires popcnt 143*0a6a1f1dSLionel Sambuc header "popcntintrin.h" 144*0a6a1f1dSLionel Sambuc } 145*0a6a1f1dSLionel Sambuc 146*0a6a1f1dSLionel Sambuc explicit module mm3dnow { 147*0a6a1f1dSLionel Sambuc requires mm3dnow 148*0a6a1f1dSLionel Sambuc header "mm3dnow.h" 149*0a6a1f1dSLionel Sambuc } 150*0a6a1f1dSLionel Sambuc 151*0a6a1f1dSLionel Sambuc explicit module xop { 152*0a6a1f1dSLionel Sambuc requires xop 153*0a6a1f1dSLionel Sambuc export fma4 154*0a6a1f1dSLionel Sambuc header "xopintrin.h" 155*0a6a1f1dSLionel Sambuc } 156*0a6a1f1dSLionel Sambuc 157*0a6a1f1dSLionel Sambuc explicit module aes_pclmul { 158*0a6a1f1dSLionel Sambuc requires aes, pclmul 159*0a6a1f1dSLionel Sambuc header "wmmintrin.h" 160*0a6a1f1dSLionel Sambuc } 161*0a6a1f1dSLionel Sambuc 162*0a6a1f1dSLionel Sambuc explicit module aes { 163*0a6a1f1dSLionel Sambuc requires aes 164*0a6a1f1dSLionel Sambuc header "__wmmintrin_aes.h" 165*0a6a1f1dSLionel Sambuc } 166*0a6a1f1dSLionel Sambuc 167*0a6a1f1dSLionel Sambuc explicit module pclmul { 168*0a6a1f1dSLionel Sambuc requires pclmul 169*0a6a1f1dSLionel Sambuc header "__wmmintrin_pclmul.h" 170*0a6a1f1dSLionel Sambuc } 171*0a6a1f1dSLionel Sambuc } 172*0a6a1f1dSLionel Sambuc} 173*0a6a1f1dSLionel Sambuc 174*0a6a1f1dSLionel Sambucmodule _Builtin_stddef_max_align_t [system] [extern_c] { 175*0a6a1f1dSLionel Sambuc header "__stddef_max_align_t.h" 176*0a6a1f1dSLionel Sambuc} 177