blob: 062464ed2e53dce66580fd12d5bd44e81dcfa44a [file] [log] [blame]
Stephen Hines0e2c34f2015-03-23 12:09:02 -07001module _Builtin_intrinsics [system] [extern_c] {
Douglas Gregoreb7b9eb2012-01-31 21:57:50 +00002 explicit module altivec {
3 requires altivec
4 header "altivec.h"
5 }
6
Douglas Gregor44b6fa32013-05-20 14:07:18 +00007 explicit module arm {
8 requires arm
9
Stephen Hines176edba2014-12-01 14:53:08 -080010 explicit module acle {
11 header "arm_acle.h"
12 export *
13 }
14
Douglas Gregor44b6fa32013-05-20 14:07:18 +000015 explicit module neon {
16 requires neon
17 header "arm_neon.h"
18 export *
19 }
20 }
21
Douglas Gregore727d212012-01-30 06:38:25 +000022 explicit module intel {
23 requires x86
Douglas Gregor2f04f182012-02-02 18:42:48 +000024 export *
Douglas Gregore727d212012-01-30 06:38:25 +000025
26 header "immintrin.h"
27 header "x86intrin.h"
28
Douglas Gregor2f04f182012-02-02 18:42:48 +000029 explicit module mm_malloc {
30 header "mm_malloc.h"
31 export * // note: for <stdlib.h> dependency
32 }
33
Douglas Gregore727d212012-01-30 06:38:25 +000034 explicit module cpuid {
Richard Smith4a3c6c62013-04-04 02:55:24 +000035 requires x86
Douglas Gregore727d212012-01-30 06:38:25 +000036 header "cpuid.h"
37 }
38
39 explicit module mmx {
40 requires mmx
41 header "mmintrin.h"
42 }
43
Douglas Gregora65c5a32012-11-05 20:11:10 +000044 explicit module f16c {
45 requires f16c
46 header "f16cintrin.h"
47 }
48
Douglas Gregore727d212012-01-30 06:38:25 +000049 explicit module sse {
50 requires sse
51 export mmx
Douglas Gregordf983572013-06-07 22:49:44 +000052 export * // note: for hackish <emmintrin.h> dependency
Douglas Gregore727d212012-01-30 06:38:25 +000053 header "xmmintrin.h"
54 }
55
56 explicit module sse2 {
57 requires sse2
58 export sse
59 header "emmintrin.h"
60 }
61
62 explicit module sse3 {
63 requires sse3
64 export sse2
65 header "pmmintrin.h"
66 }
67
68 explicit module ssse3 {
69 requires ssse3
70 export sse3
71 header "tmmintrin.h"
72 }
73
74 explicit module sse4_1 {
75 requires sse41
76 export ssse3
77 header "smmintrin.h"
78 }
79
80 explicit module sse4_2 {
81 requires sse42
82 export sse4_1
83 header "nmmintrin.h"
84 }
85
Douglas Gregora65c5a32012-11-05 20:11:10 +000086 explicit module sse4a {
87 requires sse4a
88 export sse3
Douglas Gregor6db024c2012-11-05 20:41:30 +000089 header "ammintrin.h"
Douglas Gregora65c5a32012-11-05 20:11:10 +000090 }
91
Douglas Gregore727d212012-01-30 06:38:25 +000092 explicit module avx {
93 requires avx
94 export sse4_2
95 header "avxintrin.h"
96 }
97
98 explicit module avx2 {
99 requires avx2
Douglas Gregorba0e3182012-01-30 18:49:05 +0000100 export avx
Douglas Gregore727d212012-01-30 06:38:25 +0000101 header "avx2intrin.h"
102 }
103
Stephen Hines176edba2014-12-01 14:53:08 -0800104 explicit module avx512f {
105 requires avx512f
106 export avx2
107 header "avx512fintrin.h"
108 }
109
110 explicit module avx512er {
111 requires avx512er
112 header "avx512erintrin.h"
113 }
114
Douglas Gregore727d212012-01-30 06:38:25 +0000115 explicit module bmi {
116 requires bmi
117 header "bmiintrin.h"
118 }
119
120 explicit module bmi2 {
121 requires bmi2
122 header "bmi2intrin.h"
123 }
124
Douglas Gregora65c5a32012-11-05 20:11:10 +0000125 explicit module fma {
126 requires fma
127 header "fmaintrin.h"
128 }
129
Douglas Gregore727d212012-01-30 06:38:25 +0000130 explicit module fma4 {
131 requires fma4
132 export sse3
133 header "fma4intrin.h"
134 }
135
136 explicit module lzcnt {
137 requires lzcnt
138 header "lzcntintrin.h"
139 }
140
141 explicit module popcnt {
142 requires popcnt
143 header "popcntintrin.h"
144 }
145
146 explicit module mm3dnow {
147 requires mm3dnow
148 header "mm3dnow.h"
149 }
Douglas Gregora65c5a32012-11-05 20:11:10 +0000150
151 explicit module xop {
152 requires xop
153 export fma4
154 header "xopintrin.h"
155 }
Douglas Gregor30431752012-11-05 23:30:26 +0000156
157 explicit module aes_pclmul {
158 requires aes, pclmul
159 header "wmmintrin.h"
160 }
161
162 explicit module aes {
163 requires aes
164 header "__wmmintrin_aes.h"
165 }
166
167 explicit module pclmul {
168 requires pclmul
169 header "__wmmintrin_pclmul.h"
170 }
Douglas Gregore727d212012-01-30 06:38:25 +0000171 }
Douglas Gregor3e80d8a2012-01-29 20:52:14 +0000172}
Stephen Hines176edba2014-12-01 14:53:08 -0800173
174module _Builtin_stddef_max_align_t [system] [extern_c] {
175 header "__stddef_max_align_t.h"
176}