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