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