1 | // RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE4 %s |
2 | |
3 | // SSE4: #define __SSE2_MATH__ 1 |
4 | // SSE4: #define __SSE2__ 1 |
5 | // SSE4: #define __SSE3__ 1 |
6 | // SSE4: #define __SSE4_1__ 1 |
7 | // SSE4: #define __SSE4_2__ 1 |
8 | // SSE4: #define __SSE_MATH__ 1 |
9 | // SSE4: #define __SSE__ 1 |
10 | // SSE4: #define __SSSE3__ 1 |
11 | |
12 | // RUN: %clang -target i386-unknown-unknown -march=core2 -msse4.1 -mno-sse4 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOSSE4 %s |
13 | |
14 | // NOSSE4-NOT: #define __SSE4_1__ 1 |
15 | |
16 | // RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE %s |
17 | |
18 | // SSE-NOT: #define __SSE2_MATH__ 1 |
19 | // SSE-NOT: #define __SSE2__ 1 |
20 | // SSE-NOT: #define __SSE3__ 1 |
21 | // SSE-NOT: #define __SSE4_1__ 1 |
22 | // SSE-NOT: #define __SSE4_2__ 1 |
23 | // SSE: #define __SSE_MATH__ 1 |
24 | // SSE: #define __SSE__ 1 |
25 | // SSE-NOT: #define __SSSE3__ 1 |
26 | |
27 | // RUN: %clang -target i386-unknown-unknown -march=pentium-m -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE2 %s |
28 | |
29 | // SSE2: #define __SSE2_MATH__ 1 |
30 | // SSE2: #define __SSE2__ 1 |
31 | // SSE2-NOT: #define __SSE3__ 1 |
32 | // SSE2-NOT: #define __SSE4_1__ 1 |
33 | // SSE2-NOT: #define __SSE4_2__ 1 |
34 | // SSE2: #define __SSE_MATH__ 1 |
35 | // SSE2: #define __SSE__ 1 |
36 | // SSE2-NOT: #define __SSSE3__ 1 |
37 | |
38 | // RUN: %clang -target i386-unknown-unknown -march=pentium-m -mno-sse -mavx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX %s |
39 | |
40 | // AVX: #define __AVX__ 1 |
41 | // AVX: #define __SSE2_MATH__ 1 |
42 | // AVX: #define __SSE2__ 1 |
43 | // AVX: #define __SSE3__ 1 |
44 | // AVX: #define __SSE4_1__ 1 |
45 | // AVX: #define __SSE4_2__ 1 |
46 | // AVX: #define __SSE_MATH__ 1 |
47 | // AVX: #define __SSE__ 1 |
48 | // AVX: #define __SSSE3__ 1 |
49 | |
50 | // RUN: %clang -target i386-unknown-unknown -march=pentium-m -mxop -mno-avx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE4A %s |
51 | |
52 | // SSE4A: #define __SSE2_MATH__ 1 |
53 | // SSE4A: #define __SSE2__ 1 |
54 | // SSE4A: #define __SSE3__ 1 |
55 | // SSE4A: #define __SSE4A__ 1 |
56 | // SSE4A: #define __SSE4_1__ 1 |
57 | // SSE4A: #define __SSE4_2__ 1 |
58 | // SSE4A: #define __SSE_MATH__ 1 |
59 | // SSE4A: #define __SSE__ 1 |
60 | // SSE4A: #define __SSSE3__ 1 |
61 | |
62 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512f -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512F %s |
63 | |
64 | // AVX512F: #define __AVX2__ 1 |
65 | // AVX512F: #define __AVX512F__ 1 |
66 | // AVX512F: #define __AVX__ 1 |
67 | // AVX512F: #define __SSE2_MATH__ 1 |
68 | // AVX512F: #define __SSE2__ 1 |
69 | // AVX512F: #define __SSE3__ 1 |
70 | // AVX512F: #define __SSE4_1__ 1 |
71 | // AVX512F: #define __SSE4_2__ 1 |
72 | // AVX512F: #define __SSE_MATH__ 1 |
73 | // AVX512F: #define __SSE__ 1 |
74 | // AVX512F: #define __SSSE3__ 1 |
75 | |
76 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512cd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512CD %s |
77 | |
78 | // AVX512CD: #define __AVX2__ 1 |
79 | // AVX512CD: #define __AVX512CD__ 1 |
80 | // AVX512CD: #define __AVX512F__ 1 |
81 | // AVX512CD: #define __AVX__ 1 |
82 | // AVX512CD: #define __SSE2_MATH__ 1 |
83 | // AVX512CD: #define __SSE2__ 1 |
84 | // AVX512CD: #define __SSE3__ 1 |
85 | // AVX512CD: #define __SSE4_1__ 1 |
86 | // AVX512CD: #define __SSE4_2__ 1 |
87 | // AVX512CD: #define __SSE_MATH__ 1 |
88 | // AVX512CD: #define __SSE__ 1 |
89 | // AVX512CD: #define __SSSE3__ 1 |
90 | |
91 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512er -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512ER %s |
92 | |
93 | // AVX512ER: #define __AVX2__ 1 |
94 | // AVX512ER: #define __AVX512ER__ 1 |
95 | // AVX512ER: #define __AVX512F__ 1 |
96 | // AVX512ER: #define __AVX__ 1 |
97 | // AVX512ER: #define __SSE2_MATH__ 1 |
98 | // AVX512ER: #define __SSE2__ 1 |
99 | // AVX512ER: #define __SSE3__ 1 |
100 | // AVX512ER: #define __SSE4_1__ 1 |
101 | // AVX512ER: #define __SSE4_2__ 1 |
102 | // AVX512ER: #define __SSE_MATH__ 1 |
103 | // AVX512ER: #define __SSE__ 1 |
104 | // AVX512ER: #define __SSSE3__ 1 |
105 | |
106 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512pf -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512PF %s |
107 | |
108 | // AVX512PF: #define __AVX2__ 1 |
109 | // AVX512PF: #define __AVX512F__ 1 |
110 | // AVX512PF: #define __AVX512PF__ 1 |
111 | // AVX512PF: #define __AVX__ 1 |
112 | // AVX512PF: #define __SSE2_MATH__ 1 |
113 | // AVX512PF: #define __SSE2__ 1 |
114 | // AVX512PF: #define __SSE3__ 1 |
115 | // AVX512PF: #define __SSE4_1__ 1 |
116 | // AVX512PF: #define __SSE4_2__ 1 |
117 | // AVX512PF: #define __SSE_MATH__ 1 |
118 | // AVX512PF: #define __SSE__ 1 |
119 | // AVX512PF: #define __SSSE3__ 1 |
120 | |
121 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512dq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512DQ %s |
122 | |
123 | // AVX512DQ: #define __AVX2__ 1 |
124 | // AVX512DQ: #define __AVX512DQ__ 1 |
125 | // AVX512DQ: #define __AVX512F__ 1 |
126 | // AVX512DQ: #define __AVX__ 1 |
127 | // AVX512DQ: #define __SSE2_MATH__ 1 |
128 | // AVX512DQ: #define __SSE2__ 1 |
129 | // AVX512DQ: #define __SSE3__ 1 |
130 | // AVX512DQ: #define __SSE4_1__ 1 |
131 | // AVX512DQ: #define __SSE4_2__ 1 |
132 | // AVX512DQ: #define __SSE_MATH__ 1 |
133 | // AVX512DQ: #define __SSE__ 1 |
134 | // AVX512DQ: #define __SSSE3__ 1 |
135 | |
136 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BW %s |
137 | |
138 | // AVX512BW: #define __AVX2__ 1 |
139 | // AVX512BW: #define __AVX512BW__ 1 |
140 | // AVX512BW: #define __AVX512F__ 1 |
141 | // AVX512BW: #define __AVX__ 1 |
142 | // AVX512BW: #define __SSE2_MATH__ 1 |
143 | // AVX512BW: #define __SSE2__ 1 |
144 | // AVX512BW: #define __SSE3__ 1 |
145 | // AVX512BW: #define __SSE4_1__ 1 |
146 | // AVX512BW: #define __SSE4_2__ 1 |
147 | // AVX512BW: #define __SSE_MATH__ 1 |
148 | // AVX512BW: #define __SSE__ 1 |
149 | // AVX512BW: #define __SSSE3__ 1 |
150 | |
151 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vl -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VL %s |
152 | |
153 | // AVX512VL: #define __AVX2__ 1 |
154 | // AVX512VL: #define __AVX512F__ 1 |
155 | // AVX512VL: #define __AVX512VL__ 1 |
156 | // AVX512VL: #define __AVX__ 1 |
157 | // AVX512VL: #define __SSE2_MATH__ 1 |
158 | // AVX512VL: #define __SSE2__ 1 |
159 | // AVX512VL: #define __SSE3__ 1 |
160 | // AVX512VL: #define __SSE4_1__ 1 |
161 | // AVX512VL: #define __SSE4_2__ 1 |
162 | // AVX512VL: #define __SSE_MATH__ 1 |
163 | // AVX512VL: #define __SSE__ 1 |
164 | // AVX512VL: #define __SSSE3__ 1 |
165 | |
166 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512pf -mno-avx512f -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512F2 %s |
167 | |
168 | // AVX512F2: #define __AVX2__ 1 |
169 | // AVX512F2-NOT: #define __AVX512F__ 1 |
170 | // AVX512F2-NOT: #define __AVX512PF__ 1 |
171 | // AVX512F2: #define __AVX__ 1 |
172 | // AVX512F2: #define __SSE2_MATH__ 1 |
173 | // AVX512F2: #define __SSE2__ 1 |
174 | // AVX512F2: #define __SSE3__ 1 |
175 | // AVX512F2: #define __SSE4_1__ 1 |
176 | // AVX512F2: #define __SSE4_2__ 1 |
177 | // AVX512F2: #define __SSE_MATH__ 1 |
178 | // AVX512F2: #define __SSE__ 1 |
179 | // AVX512F2: #define __SSSE3__ 1 |
180 | |
181 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512ifma -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512IFMA %s |
182 | |
183 | // AVX512IFMA: #define __AVX2__ 1 |
184 | // AVX512IFMA: #define __AVX512F__ 1 |
185 | // AVX512IFMA: #define __AVX512IFMA__ 1 |
186 | // AVX512IFMA: #define __AVX__ 1 |
187 | // AVX512IFMA: #define __SSE2_MATH__ 1 |
188 | // AVX512IFMA: #define __SSE2__ 1 |
189 | // AVX512IFMA: #define __SSE3__ 1 |
190 | // AVX512IFMA: #define __SSE4_1__ 1 |
191 | // AVX512IFMA: #define __SSE4_2__ 1 |
192 | // AVX512IFMA: #define __SSE_MATH__ 1 |
193 | // AVX512IFMA: #define __SSE__ 1 |
194 | // AVX512IFMA: #define __SSSE3__ 1 |
195 | |
196 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI %s |
197 | |
198 | // AVX512VBMI: #define __AVX2__ 1 |
199 | // AVX512VBMI: #define __AVX512BW__ 1 |
200 | // AVX512VBMI: #define __AVX512F__ 1 |
201 | // AVX512VBMI: #define __AVX512VBMI__ 1 |
202 | // AVX512VBMI: #define __AVX__ 1 |
203 | // AVX512VBMI: #define __SSE2_MATH__ 1 |
204 | // AVX512VBMI: #define __SSE2__ 1 |
205 | // AVX512VBMI: #define __SSE3__ 1 |
206 | // AVX512VBMI: #define __SSE4_1__ 1 |
207 | // AVX512VBMI: #define __SSE4_2__ 1 |
208 | // AVX512VBMI: #define __SSE_MATH__ 1 |
209 | // AVX512VBMI: #define __SSE__ 1 |
210 | // AVX512VBMI: #define __SSSE3__ 1 |
211 | |
212 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bitalg -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BITALG %s |
213 | |
214 | // AVX512BITALG: #define __AVX2__ 1 |
215 | // AVX512BITALG: #define __AVX512BITALG__ 1 |
216 | // AVX512BITALG: #define __AVX512BW__ 1 |
217 | // AVX512BITALG: #define __AVX512F__ 1 |
218 | // AVX512BITALG: #define __AVX__ 1 |
219 | // AVX512BITALG: #define __SSE2_MATH__ 1 |
220 | // AVX512BITALG: #define __SSE2__ 1 |
221 | // AVX512BITALG: #define __SSE3__ 1 |
222 | // AVX512BITALG: #define __SSE4_1__ 1 |
223 | // AVX512BITALG: #define __SSE4_2__ 1 |
224 | // AVX512BITALG: #define __SSE_MATH__ 1 |
225 | // AVX512BITALG: #define __SSE__ 1 |
226 | // AVX512BITALG: #define __SSSE3__ 1 |
227 | |
228 | |
229 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMINOAVX512BW %s |
230 | |
231 | // AVX512VBMINOAVX512BW-NOT: #define __AVX512BW__ 1 |
232 | // AVX512VBMINOAVX512BW-NOT: #define __AVX512VBMI__ 1 |
233 | |
234 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI2 %s |
235 | |
236 | // AVX512VBMI2: #define __AVX2__ 1 |
237 | // AVX512VBMI2: #define __AVX512BW__ 1 |
238 | // AVX512VBMI2: #define __AVX512F__ 1 |
239 | // AVX512VBMI2: #define __AVX512VBMI2__ 1 |
240 | // AVX512VBMI2: #define __AVX__ 1 |
241 | // AVX512VBMI2: #define __SSE2_MATH__ 1 |
242 | // AVX512VBMI2: #define __SSE2__ 1 |
243 | // AVX512VBMI2: #define __SSE3__ 1 |
244 | // AVX512VBMI2: #define __SSE4_1__ 1 |
245 | // AVX512VBMI2: #define __SSE4_2__ 1 |
246 | // AVX512VBMI2: #define __SSE_MATH__ 1 |
247 | // AVX512VBMI2: #define __SSE__ 1 |
248 | // AVX512VBMI2: #define __SSSE3__ 1 |
249 | |
250 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi2 -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI2NOAVX512BW %s |
251 | |
252 | // AVX512VBMI2NOAVX512BW-NOT: #define __AVX512BW__ 1 |
253 | // AVX512VBMI2NOAVX512BW-NOT: #define __AVX512VBMI2__ 1 |
254 | |
255 | // RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bitalg -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BITALGNOAVX512BW %s |
256 | |
257 | // AVX512BITALGNOAVX512BW-NOT: #define __AVX512BITALG__ 1 |
258 | // AVX512BITALGNOAVX512BW-NOT: #define __AVX512BW__ 1 |
259 | |
260 | // RUN: %clang -target i386-unknown-unknown -march=atom -msse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE42POPCNT %s |
261 | |
262 | // SSE42POPCNT: #define __POPCNT__ 1 |
263 | |
264 | // RUN: %clang -target i386-unknown-unknown -march=atom -mno-popcnt -msse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE42NOPOPCNT %s |
265 | |
266 | // SSE42NOPOPCNT-NOT: #define __POPCNT__ 1 |
267 | |
268 | // RUN: %clang -target i386-unknown-unknown -march=atom -mpopcnt -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOSSE42POPCNT %s |
269 | |
270 | // NOSSE42POPCNT: #define __POPCNT__ 1 |
271 | |
272 | // RUN: %clang -target i386-unknown-unknown -march=atom -msse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSEMMX %s |
273 | |
274 | // SSEMMX: #define __MMX__ 1 |
275 | |
276 | // RUN: %clang -target i386-unknown-unknown -march=atom -msse -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSENOSSEMMX %s |
277 | |
278 | // SSENOSSEMMX-NOT: #define __MMX__ 1 |
279 | |
280 | // RUN: %clang -target i386-unknown-unknown -march=atom -msse -mno-mmx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSENOMMX %s |
281 | |
282 | // SSENOMMX-NOT: #define __MMX__ 1 |
283 | |
284 | // RUN: %clang -target i386-unknown-unknown -march=atom -mf16c -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=F16C %s |
285 | |
286 | // F16C: #define __AVX__ 1 |
287 | // F16C: #define __F16C__ 1 |
288 | |
289 | // RUN: %clang -target i386-unknown-unknown -march=atom -mf16c -mno-avx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=F16CNOAVX %s |
290 | |
291 | // F16CNOAVX-NOT: #define __AVX__ 1 |
292 | // F16CNOAVX-NOT: #define __F16C__ 1 |
293 | |
294 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mpclmul -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PCLMUL %s |
295 | |
296 | // PCLMUL: #define __PCLMUL__ 1 |
297 | // PCLMUL: #define __SSE2__ 1 |
298 | // PCLMUL-NOT: #define __SSE3__ 1 |
299 | |
300 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mpclmul -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PCLMULNOSSE2 %s |
301 | |
302 | // PCLMULNOSSE2-NOT: #define __PCLMUL__ 1 |
303 | // PCLMULNOSSE2-NOT: #define __SSE2__ 1 |
304 | // PCLMULNOSSE2-NOT: #define __SSE3__ 1 |
305 | |
306 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -maes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AES %s |
307 | |
308 | // AES: #define __AES__ 1 |
309 | // AES: #define __SSE2__ 1 |
310 | // AES-NOT: #define __SSE3__ 1 |
311 | |
312 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -maes -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AESNOSSE2 %s |
313 | |
314 | // AESNOSSE2-NOT: #define __AES__ 1 |
315 | // AESNOSSE2-NOT: #define __SSE2__ 1 |
316 | // AESNOSSE2-NOT: #define __SSE3__ 1 |
317 | |
318 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mlwp -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=LWP %s |
319 | |
320 | // LWP: #define __LWP__ 1 |
321 | |
322 | // RUN: %clang -target i386-unknown-unknown -march=bdver1 -mno-lwp -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOLWP %s |
323 | |
324 | // NOLWP-NOT: #define __LWP__ 1 |
325 | |
326 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHA %s |
327 | |
328 | // SHA: #define __SHA__ 1 |
329 | // SHA: #define __SSE2__ 1 |
330 | // SHA-NOT: #define __SSE3__ 1 |
331 | |
332 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -mno-sha -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHANOSHA %s |
333 | |
334 | // SHANOSHA-NOT: #define __SHA__ 1 |
335 | // SHANOSHA-NOT: #define __SSE2__ 1 |
336 | |
337 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHANOSSE2 %s |
338 | |
339 | // SHANOSSE2-NOT: #define __SHA__ 1 |
340 | // SHANOSSE2-NOT: #define __SSE2__ 1 |
341 | // SHANOSSE2-NOT: #define __SSE3__ 1 |
342 | |
343 | // RUN: %clang -target i386-unknown-unknown -march=atom -mtbm -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=TBM %s |
344 | |
345 | // TBM: #define __TBM__ 1 |
346 | |
347 | // RUN: %clang -target i386-unknown-unknown -march=bdver2 -mno-tbm -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOTBM %s |
348 | |
349 | // NOTBM-NOT: #define __TBM__ 1 |
350 | |
351 | // RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mcx16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MCX16-32 %s |
352 | |
353 | // MCX16-32-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1 |
354 | |
355 | // RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mcx16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MCX16-64 %s |
356 | |
357 | // MCX16-64: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1 |
358 | |
359 | // RUN: %clang -target i386-unknown-unknown -march=atom -mprfchw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PRFCHW %s |
360 | |
361 | // PRFCHW: #define __PRFCHW__ 1 |
362 | |
363 | // RUN: %clang -target i386-unknown-unknown -march=btver2 -mno-prfchw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOPRFCHW %s |
364 | |
365 | // NOPRFCHW-NOT: #define __PRFCHW__ 1 |
366 | |
367 | // RUN: %clang -target i386-unknown-unknown -march=atom -m3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=3DNOWPRFCHW %s |
368 | |
369 | // 3DNOWPRFCHW: #define __PRFCHW__ 1 |
370 | |
371 | // RUN: %clang -target i386-unknown-unknown -march=atom -mno-prfchw -m3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=3DNOWNOPRFCHW %s |
372 | |
373 | // 3DNOWNOPRFCHW-NOT: #define __PRFCHW__ 1 |
374 | |
375 | // RUN: %clang -target i386-unknown-unknown -march=atom -mprfchw -mno-3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NO3DNOWPRFCHW %s |
376 | |
377 | // NO3DNOWPRFCHW: #define __PRFCHW__ 1 |
378 | |
379 | // RUN: %clang -target i386-unknown-unknown -march=atom -madx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=ADX %s |
380 | |
381 | // ADX: #define __ADX__ 1 |
382 | |
383 | // RUN: %clang -target i386-unknown-unknown -mshstk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHSTK %s |
384 | |
385 | // SHSTK: #define __SHSTK__ 1 |
386 | |
387 | // RUN: %clang -target i386-unknown-unknown -march=atom -mrdseed -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=RDSEED %s |
388 | |
389 | // RDSEED: #define __RDSEED__ 1 |
390 | |
391 | // RUN: %clang -target i386-unknown-unknown -march=atom -mxsave -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVE %s |
392 | |
393 | // XSAVE: #define __XSAVE__ 1 |
394 | |
395 | // RUN: %clang -target i386-unknown-unknown -march=atom -mxsaveopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVEOPT %s |
396 | |
397 | // XSAVEOPT: #define __XSAVEOPT__ 1 |
398 | // XSAVEOPT: #define __XSAVE__ 1 |
399 | |
400 | // RUN: %clang -target i386-unknown-unknown -march=atom -mxsavec -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVEC %s |
401 | |
402 | // XSAVEC: #define __XSAVEC__ 1 |
403 | // XSAVEC: #define __XSAVE__ 1 |
404 | |
405 | // RUN: %clang -target i386-unknown-unknown -march=atom -mxsaves -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVES %s |
406 | |
407 | // XSAVES: #define __XSAVES__ 1 |
408 | // XSAVES: #define __XSAVE__ 1 |
409 | |
410 | // RUN: %clang -target i386-unknown-unknown -march=atom -mxsaveopt -mno-xsave -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOXSAVE %s |
411 | |
412 | // NOXSAVE-NOT: #define __XSAVEOPT__ 1 |
413 | // NOXSAVE-NOT: #define __XSAVE__ 1 |
414 | |
415 | // RUN: %clang -target i386-unknown-unknown -march=atom -mclflushopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CLFLUSHOPT %s |
416 | |
417 | // CLFLUSHOPT: #define __CLFLUSHOPT__ 1 |
418 | |
419 | // RUN: %clang -target i386-unknown-unknown -march=atom -mvaes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VAES %s |
420 | |
421 | // VAES: #define __AES__ 1 |
422 | // VAES: #define __VAES__ 1 |
423 | |
424 | // RUN: %clang -target i386-unknown-unknown -march=atom -mvaes -mno-aes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VAESNOAES %s |
425 | |
426 | // VAESNOAES-NOT: #define __AES__ 1 |
427 | // VAESNOAES-NOT: #define __VAES__ 1 |
428 | |
429 | // RUN: %clang -target i386-unknown-unknown -march=atom -mgfni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=GFNI %s |
430 | |
431 | // GFNI: #define __GFNI__ 1 |
432 | // GFNI: #define __SSE2__ 1 |
433 | |
434 | // RUN: %clang -target i386-unknown-unknown -march=atom -mvpclmulqdq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VPCLMULQDQ %s |
435 | |
436 | // VPCLMULQDQ: #define __PCLMUL__ 1 |
437 | // VPCLMULQDQ: #define __VPCLMULQDQ__ 1 |
438 | |
439 | // RUN: %clang -target i386-unknown-unknown -march=atom -mvpclmulqdq -mno-pclmul -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VPCLMULQDQNOPCLMUL %s |
440 | // VPCLMULQDQNOPCLMUL-NOT: #define __PCLMUL__ 1 |
441 | // VPCLMULQDQNOPCLMUL-NOT: #define __VPCLMULQDQ__ 1 |
442 | |
443 | // RUN: %clang -target i386-unknown-unknown -march=atom -mrdpid -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=RDPID %s |
444 | |
445 | // RDPID: #define __RDPID__ 1 |
446 | |