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 mm_malloc
48      export mmx
49      export sse2 // note: for hackish <emmintrin.h> dependency
50      header "xmmintrin.h"
51    }
52
53    explicit module sse2 {
54      export sse
55      header "emmintrin.h"
56    }
57
58    explicit module sse3 {
59      export sse2
60      header "pmmintrin.h"
61    }
62
63    explicit module ssse3 {
64      export sse3
65      header "tmmintrin.h"
66    }
67
68    explicit module sse4_1 {
69      export ssse3
70      header "smmintrin.h"
71    }
72
73    explicit module sse4_2 {
74      export sse4_1
75      header "nmmintrin.h"
76    }
77
78    explicit module sse4a {
79      export sse3
80      header "ammintrin.h"
81    }
82
83    explicit module avx {
84      export sse4_2
85      header "avxintrin.h"
86    }
87
88    explicit module avx2 {
89      export avx
90      header "avx2intrin.h"
91    }
92
93    explicit module avx512f {
94      export avx2
95      header "avx512fintrin.h"
96    }
97
98    explicit module avx512er {
99      header "avx512erintrin.h"
100    }
101
102    explicit module bmi {
103      header "bmiintrin.h"
104    }
105
106    explicit module bmi2 {
107      header "bmi2intrin.h"
108    }
109
110    explicit module fma {
111      header "fmaintrin.h"
112    }
113
114    explicit module fma4 {
115      export sse3
116      header "fma4intrin.h"
117    }
118
119    explicit module lzcnt {
120      header "lzcntintrin.h"
121    }
122
123    explicit module popcnt {
124      header "popcntintrin.h"
125    }
126
127    explicit module mm3dnow {
128      header "mm3dnow.h"
129    }
130
131    explicit module xop {
132      export fma4
133      header "xopintrin.h"
134    }
135
136    explicit module aes_pclmul {
137      header "wmmintrin.h"
138      export aes
139      export pclmul
140    }
141
142    explicit module aes {
143      header "__wmmintrin_aes.h"
144    }
145
146    explicit module pclmul {
147      header "__wmmintrin_pclmul.h"
148    }
149  }
150
151  explicit module systemz {
152    requires systemz
153    export *
154
155    header "s390intrin.h"
156
157    explicit module htm {
158      requires htm
159      header "htmintrin.h"
160      header "htmxlintrin.h"
161    }
162
163    explicit module zvector {
164      requires zvector, vx
165      header "vecintrin.h"
166    }
167  }
168}
169
170module _Builtin_stddef_max_align_t [system] [extern_c] {
171  header "__stddef_max_align_t.h"
172}
173