1234287Sdimmodule _Builtin_intrinsics [system] { 2234287Sdim explicit module altivec { 3234287Sdim requires altivec 4234287Sdim header "altivec.h" 5234287Sdim } 6234287Sdim 7234287Sdim explicit module intel { 8234287Sdim requires x86 9234287Sdim export * 10234287Sdim 11234287Sdim header "immintrin.h" 12234287Sdim header "x86intrin.h" 13234287Sdim 14234287Sdim explicit module mm_malloc { 15234287Sdim header "mm_malloc.h" 16234287Sdim export * // note: for <stdlib.h> dependency 17234287Sdim } 18234287Sdim 19234287Sdim explicit module cpuid { 20249423Sdim requires x86 21234287Sdim header "cpuid.h" 22234287Sdim } 23234287Sdim 24234287Sdim explicit module mmx { 25234287Sdim requires mmx 26234287Sdim header "mmintrin.h" 27234287Sdim } 28234287Sdim 29243830Sdim explicit module f16c { 30243830Sdim requires f16c 31243830Sdim header "f16cintrin.h" 32243830Sdim } 33243830Sdim 34234287Sdim explicit module sse { 35234287Sdim requires sse 36234287Sdim export mmx 37234287Sdim header "xmmintrin.h" 38234287Sdim } 39234287Sdim 40234287Sdim explicit module sse2 { 41234287Sdim requires sse2 42234287Sdim export sse 43234287Sdim header "emmintrin.h" 44234287Sdim } 45234287Sdim 46234287Sdim explicit module sse3 { 47234287Sdim requires sse3 48234287Sdim export sse2 49234287Sdim header "pmmintrin.h" 50234287Sdim } 51234287Sdim 52234287Sdim explicit module ssse3 { 53234287Sdim requires ssse3 54234287Sdim export sse3 55234287Sdim header "tmmintrin.h" 56234287Sdim } 57234287Sdim 58234287Sdim explicit module sse4_1 { 59234287Sdim requires sse41 60234287Sdim export ssse3 61234287Sdim header "smmintrin.h" 62234287Sdim } 63234287Sdim 64234287Sdim explicit module sse4_2 { 65234287Sdim requires sse42 66234287Sdim export sse4_1 67234287Sdim header "nmmintrin.h" 68234287Sdim } 69234287Sdim 70243830Sdim explicit module sse4a { 71243830Sdim requires sse4a 72243830Sdim export sse3 73243830Sdim header "ammintrin.h" 74243830Sdim } 75243830Sdim 76234287Sdim explicit module avx { 77234287Sdim requires avx 78234287Sdim export sse4_2 79234287Sdim header "avxintrin.h" 80234287Sdim } 81234287Sdim 82234287Sdim explicit module avx2 { 83234287Sdim requires avx2 84234287Sdim export avx 85234287Sdim header "avx2intrin.h" 86234287Sdim } 87234287Sdim 88234287Sdim explicit module bmi { 89234287Sdim requires bmi 90234287Sdim header "bmiintrin.h" 91234287Sdim } 92234287Sdim 93234287Sdim explicit module bmi2 { 94234287Sdim requires bmi2 95234287Sdim header "bmi2intrin.h" 96234287Sdim } 97234287Sdim 98243830Sdim explicit module fma { 99243830Sdim requires fma 100243830Sdim header "fmaintrin.h" 101243830Sdim } 102243830Sdim 103234287Sdim explicit module fma4 { 104234287Sdim requires fma4 105234287Sdim export sse3 106234287Sdim header "fma4intrin.h" 107234287Sdim } 108234287Sdim 109234287Sdim explicit module lzcnt { 110234287Sdim requires lzcnt 111234287Sdim header "lzcntintrin.h" 112234287Sdim } 113234287Sdim 114234287Sdim explicit module popcnt { 115234287Sdim requires popcnt 116234287Sdim header "popcntintrin.h" 117234287Sdim } 118234287Sdim 119234287Sdim explicit module mm3dnow { 120234287Sdim requires mm3dnow 121234287Sdim header "mm3dnow.h" 122234287Sdim } 123243830Sdim 124243830Sdim explicit module xop { 125243830Sdim requires xop 126243830Sdim export fma4 127243830Sdim header "xopintrin.h" 128243830Sdim } 129243830Sdim 130243830Sdim explicit module aes_pclmul { 131243830Sdim requires aes, pclmul 132243830Sdim header "wmmintrin.h" 133243830Sdim } 134243830Sdim 135243830Sdim explicit module aes { 136243830Sdim requires aes 137243830Sdim header "__wmmintrin_aes.h" 138243830Sdim } 139243830Sdim 140243830Sdim explicit module pclmul { 141243830Sdim requires pclmul 142243830Sdim header "__wmmintrin_pclmul.h" 143243830Sdim } 144234287Sdim } 145234287Sdim} 146