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