• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // These tests are generated by running utils/generate_arch_predefine_tests.sh
2 // to observe GCC's behavior (or some other system compiler's behavior).
3 //
4 // Begin X86/GCC/Linux tests ----------------
5 //
6 // RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \
7 // RUN:   | FileCheck %s -check-prefix=CHECK_I386_M32
8 // CHECK_I386_M32: #define __i386 1
9 // CHECK_I386_M32: #define __i386__ 1
10 // CHECK_I386_M32: #define __tune_i386__ 1
11 // CHECK_I386_M32: #define i386 1
12 // RUN: %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
13 // RUN:   | FileCheck %s -check-prefix=CHECK_I386_M64
14 // CHECK_I386_M64: error:
15 //
16 // RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
17 // RUN:   | FileCheck %s -check-prefix=CHECK_I486_M32
18 // CHECK_I486_M32: #define __i386 1
19 // CHECK_I486_M32: #define __i386__ 1
20 // CHECK_I486_M32: #define __i486 1
21 // CHECK_I486_M32: #define __i486__ 1
22 // CHECK_I486_M32: #define __tune_i486__ 1
23 // CHECK_I486_M32: #define i386 1
24 // RUN: %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
25 // RUN:   | FileCheck %s -check-prefix=CHECK_I486_M64
26 // CHECK_I486_M64: error:
27 //
28 // RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
29 // RUN:   | FileCheck %s -check-prefix=CHECK_I586_M32
30 // CHECK_I586_M32: #define __i386 1
31 // CHECK_I586_M32: #define __i386__ 1
32 // CHECK_I586_M32: #define __i586 1
33 // CHECK_I586_M32: #define __i586__ 1
34 // CHECK_I586_M32: #define __pentium 1
35 // CHECK_I586_M32: #define __pentium__ 1
36 // CHECK_I586_M32: #define __tune_i586__ 1
37 // CHECK_I586_M32: #define __tune_pentium__ 1
38 // CHECK_I586_M32: #define i386 1
39 // RUN: %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
40 // RUN:   | FileCheck %s -check-prefix=CHECK_I586_M64
41 // CHECK_I586_M64: error:
42 //
43 // RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
44 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M32
45 // CHECK_PENTIUM_M32: #define __i386 1
46 // CHECK_PENTIUM_M32: #define __i386__ 1
47 // CHECK_PENTIUM_M32: #define __i586 1
48 // CHECK_PENTIUM_M32: #define __i586__ 1
49 // CHECK_PENTIUM_M32: #define __pentium 1
50 // CHECK_PENTIUM_M32: #define __pentium__ 1
51 // CHECK_PENTIUM_M32: #define __tune_i586__ 1
52 // CHECK_PENTIUM_M32: #define __tune_pentium__ 1
53 // CHECK_PENTIUM_M32: #define i386 1
54 // RUN: %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
55 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M64
56 // CHECK_PENTIUM_M64: error:
57 //
58 // RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
59 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32
60 // CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
61 // CHECK_PENTIUM_MMX_M32: #define __i386 1
62 // CHECK_PENTIUM_MMX_M32: #define __i386__ 1
63 // CHECK_PENTIUM_MMX_M32: #define __i586 1
64 // CHECK_PENTIUM_MMX_M32: #define __i586__ 1
65 // CHECK_PENTIUM_MMX_M32: #define __pentium 1
66 // CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
67 // CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
68 // CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
69 // CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
70 // CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
71 // CHECK_PENTIUM_MMX_M32: #define i386 1
72 // RUN: %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
73 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
74 // CHECK_PENTIUM_MMX_M64: error:
75 //
76 // RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
77 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
78 // CHECK_WINCHIP_C6_M32: #define __MMX__ 1
79 // CHECK_WINCHIP_C6_M32: #define __i386 1
80 // CHECK_WINCHIP_C6_M32: #define __i386__ 1
81 // CHECK_WINCHIP_C6_M32: #define __i486 1
82 // CHECK_WINCHIP_C6_M32: #define __i486__ 1
83 // CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
84 // CHECK_WINCHIP_C6_M32: #define i386 1
85 // RUN: %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
86 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
87 // CHECK_WINCHIP_C6_M64: error:
88 //
89 // RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
90 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
91 // CHECK_WINCHIP2_M32: #define __3dNOW__ 1
92 // CHECK_WINCHIP2_M32: #define __MMX__ 1
93 // CHECK_WINCHIP2_M32: #define __i386 1
94 // CHECK_WINCHIP2_M32: #define __i386__ 1
95 // CHECK_WINCHIP2_M32: #define __i486 1
96 // CHECK_WINCHIP2_M32: #define __i486__ 1
97 // CHECK_WINCHIP2_M32: #define __tune_i486__ 1
98 // CHECK_WINCHIP2_M32: #define i386 1
99 // RUN: %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
100 // RUN:   | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
101 // CHECK_WINCHIP2_M64: error:
102 //
103 // RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
104 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_M32
105 // CHECK_C3_M32: #define __3dNOW__ 1
106 // CHECK_C3_M32: #define __MMX__ 1
107 // CHECK_C3_M32: #define __i386 1
108 // CHECK_C3_M32: #define __i386__ 1
109 // CHECK_C3_M32: #define __i486 1
110 // CHECK_C3_M32: #define __i486__ 1
111 // CHECK_C3_M32: #define __tune_i486__ 1
112 // CHECK_C3_M32: #define i386 1
113 // RUN: %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
114 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_M64
115 // CHECK_C3_M64: error:
116 //
117 // RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
118 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_2_M32
119 // CHECK_C3_2_M32: #define __MMX__ 1
120 // CHECK_C3_2_M32: #define __SSE__ 1
121 // CHECK_C3_2_M32: #define __i386 1
122 // CHECK_C3_2_M32: #define __i386__ 1
123 // CHECK_C3_2_M32: #define __i686 1
124 // CHECK_C3_2_M32: #define __i686__ 1
125 // CHECK_C3_2_M32: #define __pentiumpro 1
126 // CHECK_C3_2_M32: #define __pentiumpro__ 1
127 // CHECK_C3_2_M32: #define __tune_i686__ 1
128 // CHECK_C3_2_M32: #define __tune_pentium2__ 1
129 // CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
130 // CHECK_C3_2_M32: #define i386 1
131 // RUN: %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
132 // RUN:   | FileCheck %s -check-prefix=CHECK_C3_2_M64
133 // CHECK_C3_2_M64: error:
134 //
135 // RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
136 // RUN:   | FileCheck %s -check-prefix=CHECK_I686_M32
137 // CHECK_I686_M32: #define __i386 1
138 // CHECK_I686_M32: #define __i386__ 1
139 // CHECK_I686_M32: #define __i686 1
140 // CHECK_I686_M32: #define __i686__ 1
141 // CHECK_I686_M32: #define __pentiumpro 1
142 // CHECK_I686_M32: #define __pentiumpro__ 1
143 // CHECK_I686_M32: #define i386 1
144 // RUN: %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
145 // RUN:   | FileCheck %s -check-prefix=CHECK_I686_M64
146 // CHECK_I686_M64: error:
147 //
148 // RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
149 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32
150 // CHECK_PENTIUMPRO_M32: #define __i386 1
151 // CHECK_PENTIUMPRO_M32: #define __i386__ 1
152 // CHECK_PENTIUMPRO_M32: #define __i686 1
153 // CHECK_PENTIUMPRO_M32: #define __i686__ 1
154 // CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
155 // CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
156 // CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
157 // CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
158 // CHECK_PENTIUMPRO_M32: #define i386 1
159 // RUN: %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
160 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
161 // CHECK_PENTIUMPRO_M64: error:
162 //
163 // RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
164 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
165 // CHECK_PENTIUM2_M32: #define __MMX__ 1
166 // CHECK_PENTIUM2_M32: #define __i386 1
167 // CHECK_PENTIUM2_M32: #define __i386__ 1
168 // CHECK_PENTIUM2_M32: #define __i686 1
169 // CHECK_PENTIUM2_M32: #define __i686__ 1
170 // CHECK_PENTIUM2_M32: #define __pentiumpro 1
171 // CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
172 // CHECK_PENTIUM2_M32: #define __tune_i686__ 1
173 // CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
174 // CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
175 // CHECK_PENTIUM2_M32: #define i386 1
176 // RUN: %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
177 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
178 // CHECK_PENTIUM2_M64: error:
179 //
180 // RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
181 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
182 // CHECK_PENTIUM3_M32: #define __MMX__ 1
183 // CHECK_PENTIUM3_M32: #define __SSE__ 1
184 // CHECK_PENTIUM3_M32: #define __i386 1
185 // CHECK_PENTIUM3_M32: #define __i386__ 1
186 // CHECK_PENTIUM3_M32: #define __i686 1
187 // CHECK_PENTIUM3_M32: #define __i686__ 1
188 // CHECK_PENTIUM3_M32: #define __pentiumpro 1
189 // CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
190 // CHECK_PENTIUM3_M32: #define __tune_i686__ 1
191 // CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
192 // CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
193 // CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
194 // CHECK_PENTIUM3_M32: #define i386 1
195 // RUN: %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
196 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
197 // CHECK_PENTIUM3_M64: error:
198 //
199 // RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
200 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
201 // CHECK_PENTIUM3M_M32: #define __MMX__ 1
202 // CHECK_PENTIUM3M_M32: #define __SSE__ 1
203 // CHECK_PENTIUM3M_M32: #define __i386 1
204 // CHECK_PENTIUM3M_M32: #define __i386__ 1
205 // CHECK_PENTIUM3M_M32: #define __i686 1
206 // CHECK_PENTIUM3M_M32: #define __i686__ 1
207 // CHECK_PENTIUM3M_M32: #define __pentiumpro 1
208 // CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
209 // CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
210 // CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
211 // CHECK_PENTIUM3M_M32: #define i386 1
212 // RUN: %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
213 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
214 // CHECK_PENTIUM3M_M64: error:
215 //
216 // RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
217 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
218 // CHECK_PENTIUM_M_M32: #define __MMX__ 1
219 // CHECK_PENTIUM_M_M32: #define __SSE2__ 1
220 // CHECK_PENTIUM_M_M32: #define __SSE__ 1
221 // CHECK_PENTIUM_M_M32: #define __i386 1
222 // CHECK_PENTIUM_M_M32: #define __i386__ 1
223 // CHECK_PENTIUM_M_M32: #define __i686 1
224 // CHECK_PENTIUM_M_M32: #define __i686__ 1
225 // CHECK_PENTIUM_M_M32: #define __pentiumpro 1
226 // CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
227 // CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
228 // CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
229 // CHECK_PENTIUM_M_M32: #define i386 1
230 // RUN: %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
231 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
232 // CHECK_PENTIUM_M_M64: error:
233 //
234 // RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
235 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
236 // CHECK_PENTIUM4_M32: #define __MMX__ 1
237 // CHECK_PENTIUM4_M32: #define __SSE2__ 1
238 // CHECK_PENTIUM4_M32: #define __SSE__ 1
239 // CHECK_PENTIUM4_M32: #define __i386 1
240 // CHECK_PENTIUM4_M32: #define __i386__ 1
241 // CHECK_PENTIUM4_M32: #define __pentium4 1
242 // CHECK_PENTIUM4_M32: #define __pentium4__ 1
243 // CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
244 // CHECK_PENTIUM4_M32: #define i386 1
245 // RUN: %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
246 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
247 // CHECK_PENTIUM4_M64: error:
248 //
249 // RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
250 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
251 // CHECK_PENTIUM4M_M32: #define __MMX__ 1
252 // CHECK_PENTIUM4M_M32: #define __SSE2__ 1
253 // CHECK_PENTIUM4M_M32: #define __SSE__ 1
254 // CHECK_PENTIUM4M_M32: #define __i386 1
255 // CHECK_PENTIUM4M_M32: #define __i386__ 1
256 // CHECK_PENTIUM4M_M32: #define __pentium4 1
257 // CHECK_PENTIUM4M_M32: #define __pentium4__ 1
258 // CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
259 // CHECK_PENTIUM4M_M32: #define i386 1
260 // RUN: %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
261 // RUN:   | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
262 // CHECK_PENTIUM4M_M64: error:
263 //
264 // RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
265 // RUN:   | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
266 // CHECK_PRESCOTT_M32: #define __MMX__ 1
267 // CHECK_PRESCOTT_M32: #define __SSE2__ 1
268 // CHECK_PRESCOTT_M32: #define __SSE3__ 1
269 // CHECK_PRESCOTT_M32: #define __SSE__ 1
270 // CHECK_PRESCOTT_M32: #define __i386 1
271 // CHECK_PRESCOTT_M32: #define __i386__ 1
272 // CHECK_PRESCOTT_M32: #define __nocona 1
273 // CHECK_PRESCOTT_M32: #define __nocona__ 1
274 // CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
275 // CHECK_PRESCOTT_M32: #define i386 1
276 // RUN: %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
277 // RUN:   | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
278 // CHECK_PRESCOTT_M64: error:
279 //
280 // RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
281 // RUN:   | FileCheck %s -check-prefix=CHECK_NOCONA_M32
282 // CHECK_NOCONA_M32: #define __MMX__ 1
283 // CHECK_NOCONA_M32: #define __SSE2__ 1
284 // CHECK_NOCONA_M32: #define __SSE3__ 1
285 // CHECK_NOCONA_M32: #define __SSE__ 1
286 // CHECK_NOCONA_M32: #define __i386 1
287 // CHECK_NOCONA_M32: #define __i386__ 1
288 // CHECK_NOCONA_M32: #define __nocona 1
289 // CHECK_NOCONA_M32: #define __nocona__ 1
290 // CHECK_NOCONA_M32: #define __tune_nocona__ 1
291 // CHECK_NOCONA_M32: #define i386 1
292 // RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
293 // RUN:   | FileCheck %s -check-prefix=CHECK_NOCONA_M64
294 // CHECK_NOCONA_M64: #define __MMX__ 1
295 // CHECK_NOCONA_M64: #define __SSE2_MATH__ 1
296 // CHECK_NOCONA_M64: #define __SSE2__ 1
297 // CHECK_NOCONA_M64: #define __SSE3__ 1
298 // CHECK_NOCONA_M64: #define __SSE_MATH__ 1
299 // CHECK_NOCONA_M64: #define __SSE__ 1
300 // CHECK_NOCONA_M64: #define __amd64 1
301 // CHECK_NOCONA_M64: #define __amd64__ 1
302 // CHECK_NOCONA_M64: #define __nocona 1
303 // CHECK_NOCONA_M64: #define __nocona__ 1
304 // CHECK_NOCONA_M64: #define __tune_nocona__ 1
305 // CHECK_NOCONA_M64: #define __x86_64 1
306 // CHECK_NOCONA_M64: #define __x86_64__ 1
307 //
308 // RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
309 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE2_M32
310 // CHECK_CORE2_M32: #define __MMX__ 1
311 // CHECK_CORE2_M32: #define __SSE2__ 1
312 // CHECK_CORE2_M32: #define __SSE3__ 1
313 // CHECK_CORE2_M32: #define __SSE__ 1
314 // CHECK_CORE2_M32: #define __SSSE3__ 1
315 // CHECK_CORE2_M32: #define __core2 1
316 // CHECK_CORE2_M32: #define __core2__ 1
317 // CHECK_CORE2_M32: #define __i386 1
318 // CHECK_CORE2_M32: #define __i386__ 1
319 // CHECK_CORE2_M32: #define __tune_core2__ 1
320 // CHECK_CORE2_M32: #define i386 1
321 // RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
322 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE2_M64
323 // CHECK_CORE2_M64: #define __MMX__ 1
324 // CHECK_CORE2_M64: #define __SSE2_MATH__ 1
325 // CHECK_CORE2_M64: #define __SSE2__ 1
326 // CHECK_CORE2_M64: #define __SSE3__ 1
327 // CHECK_CORE2_M64: #define __SSE_MATH__ 1
328 // CHECK_CORE2_M64: #define __SSE__ 1
329 // CHECK_CORE2_M64: #define __SSSE3__ 1
330 // CHECK_CORE2_M64: #define __amd64 1
331 // CHECK_CORE2_M64: #define __amd64__ 1
332 // CHECK_CORE2_M64: #define __core2 1
333 // CHECK_CORE2_M64: #define __core2__ 1
334 // CHECK_CORE2_M64: #define __tune_core2__ 1
335 // CHECK_CORE2_M64: #define __x86_64 1
336 // CHECK_CORE2_M64: #define __x86_64__ 1
337 //
338 // RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
339 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_M32
340 // CHECK_COREI7_M32: #define __MMX__ 1
341 // CHECK_COREI7_M32: #define __SSE2__ 1
342 // CHECK_COREI7_M32: #define __SSE3__ 1
343 // CHECK_COREI7_M32: #define __SSE4_1__ 1
344 // CHECK_COREI7_M32: #define __SSE4_2__ 1
345 // CHECK_COREI7_M32: #define __SSE__ 1
346 // CHECK_COREI7_M32: #define __SSSE3__ 1
347 // CHECK_COREI7_M32: #define __corei7 1
348 // CHECK_COREI7_M32: #define __corei7__ 1
349 // CHECK_COREI7_M32: #define __i386 1
350 // CHECK_COREI7_M32: #define __i386__ 1
351 // CHECK_COREI7_M32: #define __tune_corei7__ 1
352 // CHECK_COREI7_M32: #define i386 1
353 // RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
354 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_M64
355 // CHECK_COREI7_M64: #define __MMX__ 1
356 // CHECK_COREI7_M64: #define __SSE2_MATH__ 1
357 // CHECK_COREI7_M64: #define __SSE2__ 1
358 // CHECK_COREI7_M64: #define __SSE3__ 1
359 // CHECK_COREI7_M64: #define __SSE4_1__ 1
360 // CHECK_COREI7_M64: #define __SSE4_2__ 1
361 // CHECK_COREI7_M64: #define __SSE_MATH__ 1
362 // CHECK_COREI7_M64: #define __SSE__ 1
363 // CHECK_COREI7_M64: #define __SSSE3__ 1
364 // CHECK_COREI7_M64: #define __amd64 1
365 // CHECK_COREI7_M64: #define __amd64__ 1
366 // CHECK_COREI7_M64: #define __corei7 1
367 // CHECK_COREI7_M64: #define __corei7__ 1
368 // CHECK_COREI7_M64: #define __tune_corei7__ 1
369 // CHECK_COREI7_M64: #define __x86_64 1
370 // CHECK_COREI7_M64: #define __x86_64__ 1
371 //
372 // RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
373 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
374 // CHECK_COREI7_AVX_M32: #define __AES__ 1
375 // FIXME: AVX is not yet enabled with Clang.
376 // CHECK_COREI7_AVX_M32-NOT: #define __AVX__ 1
377 // CHECK_COREI7_AVX_M32: #define __MMX__ 1
378 // CHECK_COREI7_AVX_M32: #define __SSE2__ 1
379 // CHECK_COREI7_AVX_M32: #define __SSE3__ 1
380 // CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
381 // CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
382 // CHECK_COREI7_AVX_M32: #define __SSE__ 1
383 // CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
384 // CHECK_COREI7_AVX_M32: #define __corei7 1
385 // CHECK_COREI7_AVX_M32: #define __corei7__ 1
386 // CHECK_COREI7_AVX_M32: #define __i386 1
387 // CHECK_COREI7_AVX_M32: #define __i386__ 1
388 // CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
389 // CHECK_COREI7_AVX_M32: #define i386 1
390 // RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
391 // RUN:   | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
392 // CHECK_COREI7_AVX_M64: #define __AES__ 1
393 // FIXME: AVX is not yet enabled with Clang.
394 // CHECK_COREI7_AVX_M64-NOT: #define __AVX__ 1
395 // CHECK_COREI7_AVX_M64: #define __MMX__ 1
396 // CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
397 // CHECK_COREI7_AVX_M64: #define __SSE2__ 1
398 // CHECK_COREI7_AVX_M64: #define __SSE3__ 1
399 // CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
400 // CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
401 // CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
402 // CHECK_COREI7_AVX_M64: #define __SSE__ 1
403 // CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
404 // CHECK_COREI7_AVX_M64: #define __amd64 1
405 // CHECK_COREI7_AVX_M64: #define __amd64__ 1
406 // CHECK_COREI7_AVX_M64: #define __corei7 1
407 // CHECK_COREI7_AVX_M64: #define __corei7__ 1
408 // CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
409 // CHECK_COREI7_AVX_M64: #define __x86_64 1
410 // CHECK_COREI7_AVX_M64: #define __x86_64__ 1
411 //
412 // RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
413 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
414 // CHECK_CORE_AVX_I_M32: #define __AES__ 1
415 // FIXME: AVX is not yet enabled with Clang.
416 // CHECK_CORE_AVX_I_M32-NOT: #define __AVX__ 1
417 // CHECK_CORE_AVX_I_M32: #define __MMX__ 1
418 // CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
419 // CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
420 // CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
421 // CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
422 // CHECK_CORE_AVX_I_M32: #define __SSE__ 1
423 // CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
424 // CHECK_CORE_AVX_I_M32: #define __corei7 1
425 // CHECK_CORE_AVX_I_M32: #define __corei7__ 1
426 // CHECK_CORE_AVX_I_M32: #define __i386 1
427 // CHECK_CORE_AVX_I_M32: #define __i386__ 1
428 // CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
429 // CHECK_CORE_AVX_I_M32: #define i386 1
430 // RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
431 // RUN:   | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
432 // CHECK_CORE_AVX_I_M64: #define __AES__ 1
433 // FIXME: AVX is not yet enabled with Clang.
434 // CHECK_CORE_AVX_I_M64-NOT: #define __AVX__ 1
435 // CHECK_CORE_AVX_I_M64: #define __MMX__ 1
436 // CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
437 // CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
438 // CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
439 // CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
440 // CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
441 // CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
442 // CHECK_CORE_AVX_I_M64: #define __SSE__ 1
443 // CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
444 // CHECK_CORE_AVX_I_M64: #define __amd64 1
445 // CHECK_CORE_AVX_I_M64: #define __amd64__ 1
446 // CHECK_CORE_AVX_I_M64: #define __corei7 1
447 // CHECK_CORE_AVX_I_M64: #define __corei7__ 1
448 // CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
449 // CHECK_CORE_AVX_I_M64: #define __x86_64 1
450 // CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
451 //
452 // RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
453 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M32
454 // CHECK_ATOM_M32: #define __MMX__ 1
455 // CHECK_ATOM_M32: #define __SSE2__ 1
456 // CHECK_ATOM_M32: #define __SSE3__ 1
457 // CHECK_ATOM_M32: #define __SSE__ 1
458 // CHECK_ATOM_M32: #define __SSSE3__ 1
459 // CHECK_ATOM_M32: #define __atom 1
460 // CHECK_ATOM_M32: #define __atom__ 1
461 // CHECK_ATOM_M32: #define __i386 1
462 // CHECK_ATOM_M32: #define __i386__ 1
463 // CHECK_ATOM_M32: #define __tune_atom__ 1
464 // CHECK_ATOM_M32: #define i386 1
465 // RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
466 // RUN:   | FileCheck %s -check-prefix=CHECK_ATOM_M64
467 // CHECK_ATOM_M64: #define __MMX__ 1
468 // CHECK_ATOM_M64: #define __SSE2_MATH__ 1
469 // CHECK_ATOM_M64: #define __SSE2__ 1
470 // CHECK_ATOM_M64: #define __SSE3__ 1
471 // CHECK_ATOM_M64: #define __SSE_MATH__ 1
472 // CHECK_ATOM_M64: #define __SSE__ 1
473 // CHECK_ATOM_M64: #define __SSSE3__ 1
474 // CHECK_ATOM_M64: #define __amd64 1
475 // CHECK_ATOM_M64: #define __amd64__ 1
476 // CHECK_ATOM_M64: #define __atom 1
477 // CHECK_ATOM_M64: #define __atom__ 1
478 // CHECK_ATOM_M64: #define __tune_atom__ 1
479 // CHECK_ATOM_M64: #define __x86_64 1
480 // CHECK_ATOM_M64: #define __x86_64__ 1
481 //
482 // RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
483 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M32
484 // CHECK_GEODE_M32: #define __3dNOW_A__ 1
485 // CHECK_GEODE_M32: #define __3dNOW__ 1
486 // CHECK_GEODE_M32: #define __MMX__ 1
487 // CHECK_GEODE_M32: #define __geode 1
488 // CHECK_GEODE_M32: #define __geode__ 1
489 // CHECK_GEODE_M32: #define __i386 1
490 // CHECK_GEODE_M32: #define __i386__ 1
491 // CHECK_GEODE_M32: #define __tune_geode__ 1
492 // CHECK_GEODE_M32: #define i386 1
493 // RUN: %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
494 // RUN:   | FileCheck %s -check-prefix=CHECK_GEODE_M64
495 // CHECK_GEODE_M64: error:
496 //
497 // RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
498 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M32
499 // CHECK_K6_M32: #define __MMX__ 1
500 // CHECK_K6_M32: #define __i386 1
501 // CHECK_K6_M32: #define __i386__ 1
502 // CHECK_K6_M32: #define __k6 1
503 // CHECK_K6_M32: #define __k6__ 1
504 // CHECK_K6_M32: #define __tune_k6__ 1
505 // CHECK_K6_M32: #define i386 1
506 // RUN: %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
507 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_M64
508 // CHECK_K6_M64: error:
509 //
510 // RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
511 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M32
512 // CHECK_K6_2_M32: #define __3dNOW__ 1
513 // CHECK_K6_2_M32: #define __MMX__ 1
514 // CHECK_K6_2_M32: #define __i386 1
515 // CHECK_K6_2_M32: #define __i386__ 1
516 // CHECK_K6_2_M32: #define __k6 1
517 // CHECK_K6_2_M32: #define __k6_2__ 1
518 // CHECK_K6_2_M32: #define __k6__ 1
519 // CHECK_K6_2_M32: #define __tune_k6_2__ 1
520 // CHECK_K6_2_M32: #define __tune_k6__ 1
521 // CHECK_K6_2_M32: #define i386 1
522 // RUN: %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
523 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_2_M64
524 // CHECK_K6_2_M64: error:
525 //
526 // RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
527 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M32
528 // CHECK_K6_3_M32: #define __3dNOW__ 1
529 // CHECK_K6_3_M32: #define __MMX__ 1
530 // CHECK_K6_3_M32: #define __i386 1
531 // CHECK_K6_3_M32: #define __i386__ 1
532 // CHECK_K6_3_M32: #define __k6 1
533 // CHECK_K6_3_M32: #define __k6_3__ 1
534 // CHECK_K6_3_M32: #define __k6__ 1
535 // CHECK_K6_3_M32: #define __tune_k6_3__ 1
536 // CHECK_K6_3_M32: #define __tune_k6__ 1
537 // CHECK_K6_3_M32: #define i386 1
538 // RUN: %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
539 // RUN:   | FileCheck %s -check-prefix=CHECK_K6_3_M64
540 // CHECK_K6_3_M64: error:
541 //
542 // RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
543 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M32
544 // CHECK_ATHLON_M32: #define __3dNOW_A__ 1
545 // CHECK_ATHLON_M32: #define __3dNOW__ 1
546 // CHECK_ATHLON_M32: #define __MMX__ 1
547 // CHECK_ATHLON_M32: #define __athlon 1
548 // CHECK_ATHLON_M32: #define __athlon__ 1
549 // CHECK_ATHLON_M32: #define __i386 1
550 // CHECK_ATHLON_M32: #define __i386__ 1
551 // CHECK_ATHLON_M32: #define __tune_athlon__ 1
552 // CHECK_ATHLON_M32: #define i386 1
553 // RUN: %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
554 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_M64
555 // CHECK_ATHLON_M64: error:
556 //
557 // RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
558 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
559 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
560 // CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
561 // CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
562 // CHECK_ATHLON_TBIRD_M32: #define __athlon 1
563 // CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
564 // CHECK_ATHLON_TBIRD_M32: #define __i386 1
565 // CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
566 // CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
567 // CHECK_ATHLON_TBIRD_M32: #define i386 1
568 // RUN: %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
569 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
570 // CHECK_ATHLON_TBIRD_M64: error:
571 //
572 // RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
573 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
574 // CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
575 // CHECK_ATHLON_4_M32: #define __3dNOW__ 1
576 // CHECK_ATHLON_4_M32: #define __MMX__ 1
577 // CHECK_ATHLON_4_M32: #define __SSE__ 1
578 // CHECK_ATHLON_4_M32: #define __athlon 1
579 // CHECK_ATHLON_4_M32: #define __athlon__ 1
580 // CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
581 // CHECK_ATHLON_4_M32: #define __i386 1
582 // CHECK_ATHLON_4_M32: #define __i386__ 1
583 // CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
584 // CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
585 // CHECK_ATHLON_4_M32: #define i386 1
586 // RUN: %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
587 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
588 // CHECK_ATHLON_4_M64: error:
589 //
590 // RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
591 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
592 // CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
593 // CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
594 // CHECK_ATHLON_XP_M32: #define __MMX__ 1
595 // CHECK_ATHLON_XP_M32: #define __SSE__ 1
596 // CHECK_ATHLON_XP_M32: #define __athlon 1
597 // CHECK_ATHLON_XP_M32: #define __athlon__ 1
598 // CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
599 // CHECK_ATHLON_XP_M32: #define __i386 1
600 // CHECK_ATHLON_XP_M32: #define __i386__ 1
601 // CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
602 // CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
603 // CHECK_ATHLON_XP_M32: #define i386 1
604 // RUN: %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
605 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
606 // CHECK_ATHLON_XP_M64: error:
607 //
608 // RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
609 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
610 // CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
611 // CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
612 // CHECK_ATHLON_MP_M32: #define __MMX__ 1
613 // CHECK_ATHLON_MP_M32: #define __SSE__ 1
614 // CHECK_ATHLON_MP_M32: #define __athlon 1
615 // CHECK_ATHLON_MP_M32: #define __athlon__ 1
616 // CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
617 // CHECK_ATHLON_MP_M32: #define __i386 1
618 // CHECK_ATHLON_MP_M32: #define __i386__ 1
619 // CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
620 // CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
621 // CHECK_ATHLON_MP_M32: #define i386 1
622 // RUN: %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
623 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
624 // CHECK_ATHLON_MP_M64: error:
625 //
626 // RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
627 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M32
628 // CHECK_X86_64_M32: #define __MMX__ 1
629 // CHECK_X86_64_M32: #define __SSE2__ 1
630 // CHECK_X86_64_M32: #define __SSE__ 1
631 // CHECK_X86_64_M32: #define __i386 1
632 // CHECK_X86_64_M32: #define __i386__ 1
633 // CHECK_X86_64_M32: #define __k8 1
634 // CHECK_X86_64_M32: #define __k8__ 1
635 // CHECK_X86_64_M32: #define i386 1
636 // RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
637 // RUN:   | FileCheck %s -check-prefix=CHECK_X86_64_M64
638 // CHECK_X86_64_M64: #define __MMX__ 1
639 // CHECK_X86_64_M64: #define __SSE2_MATH__ 1
640 // CHECK_X86_64_M64: #define __SSE2__ 1
641 // CHECK_X86_64_M64: #define __SSE_MATH__ 1
642 // CHECK_X86_64_M64: #define __SSE__ 1
643 // CHECK_X86_64_M64: #define __amd64 1
644 // CHECK_X86_64_M64: #define __amd64__ 1
645 // CHECK_X86_64_M64: #define __k8 1
646 // CHECK_X86_64_M64: #define __k8__ 1
647 // CHECK_X86_64_M64: #define __x86_64 1
648 // CHECK_X86_64_M64: #define __x86_64__ 1
649 //
650 // RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
651 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M32
652 // CHECK_K8_M32: #define __3dNOW_A__ 1
653 // CHECK_K8_M32: #define __3dNOW__ 1
654 // CHECK_K8_M32: #define __MMX__ 1
655 // CHECK_K8_M32: #define __SSE2__ 1
656 // CHECK_K8_M32: #define __SSE__ 1
657 // CHECK_K8_M32: #define __i386 1
658 // CHECK_K8_M32: #define __i386__ 1
659 // CHECK_K8_M32: #define __k8 1
660 // CHECK_K8_M32: #define __k8__ 1
661 // CHECK_K8_M32: #define __tune_k8__ 1
662 // CHECK_K8_M32: #define i386 1
663 // RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
664 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_M64
665 // CHECK_K8_M64: #define __3dNOW_A__ 1
666 // CHECK_K8_M64: #define __3dNOW__ 1
667 // CHECK_K8_M64: #define __MMX__ 1
668 // CHECK_K8_M64: #define __SSE2_MATH__ 1
669 // CHECK_K8_M64: #define __SSE2__ 1
670 // CHECK_K8_M64: #define __SSE_MATH__ 1
671 // CHECK_K8_M64: #define __SSE__ 1
672 // CHECK_K8_M64: #define __amd64 1
673 // CHECK_K8_M64: #define __amd64__ 1
674 // CHECK_K8_M64: #define __k8 1
675 // CHECK_K8_M64: #define __k8__ 1
676 // CHECK_K8_M64: #define __tune_k8__ 1
677 // CHECK_K8_M64: #define __x86_64 1
678 // CHECK_K8_M64: #define __x86_64__ 1
679 //
680 // RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
681 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
682 // CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
683 // CHECK_K8_SSE3_M32: #define __3dNOW__ 1
684 // CHECK_K8_SSE3_M32: #define __MMX__ 1
685 // CHECK_K8_SSE3_M32: #define __SSE2__ 1
686 // CHECK_K8_SSE3_M32: #define __SSE3__ 1
687 // CHECK_K8_SSE3_M32: #define __SSE__ 1
688 // CHECK_K8_SSE3_M32: #define __i386 1
689 // CHECK_K8_SSE3_M32: #define __i386__ 1
690 // CHECK_K8_SSE3_M32: #define __k8 1
691 // CHECK_K8_SSE3_M32: #define __k8__ 1
692 // CHECK_K8_SSE3_M32: #define __tune_k8__ 1
693 // CHECK_K8_SSE3_M32: #define i386 1
694 // RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
695 // RUN:   | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
696 // CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
697 // CHECK_K8_SSE3_M64: #define __3dNOW__ 1
698 // CHECK_K8_SSE3_M64: #define __MMX__ 1
699 // CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
700 // CHECK_K8_SSE3_M64: #define __SSE2__ 1
701 // CHECK_K8_SSE3_M64: #define __SSE3__ 1
702 // CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
703 // CHECK_K8_SSE3_M64: #define __SSE__ 1
704 // CHECK_K8_SSE3_M64: #define __amd64 1
705 // CHECK_K8_SSE3_M64: #define __amd64__ 1
706 // CHECK_K8_SSE3_M64: #define __k8 1
707 // CHECK_K8_SSE3_M64: #define __k8__ 1
708 // CHECK_K8_SSE3_M64: #define __tune_k8__ 1
709 // CHECK_K8_SSE3_M64: #define __x86_64 1
710 // CHECK_K8_SSE3_M64: #define __x86_64__ 1
711 //
712 // RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
713 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M32
714 // CHECK_OPTERON_M32: #define __3dNOW_A__ 1
715 // CHECK_OPTERON_M32: #define __3dNOW__ 1
716 // CHECK_OPTERON_M32: #define __MMX__ 1
717 // CHECK_OPTERON_M32: #define __SSE2__ 1
718 // CHECK_OPTERON_M32: #define __SSE__ 1
719 // CHECK_OPTERON_M32: #define __i386 1
720 // CHECK_OPTERON_M32: #define __i386__ 1
721 // CHECK_OPTERON_M32: #define __k8 1
722 // CHECK_OPTERON_M32: #define __k8__ 1
723 // CHECK_OPTERON_M32: #define __tune_k8__ 1
724 // CHECK_OPTERON_M32: #define i386 1
725 // RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
726 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_M64
727 // CHECK_OPTERON_M64: #define __3dNOW_A__ 1
728 // CHECK_OPTERON_M64: #define __3dNOW__ 1
729 // CHECK_OPTERON_M64: #define __MMX__ 1
730 // CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
731 // CHECK_OPTERON_M64: #define __SSE2__ 1
732 // CHECK_OPTERON_M64: #define __SSE_MATH__ 1
733 // CHECK_OPTERON_M64: #define __SSE__ 1
734 // CHECK_OPTERON_M64: #define __amd64 1
735 // CHECK_OPTERON_M64: #define __amd64__ 1
736 // CHECK_OPTERON_M64: #define __k8 1
737 // CHECK_OPTERON_M64: #define __k8__ 1
738 // CHECK_OPTERON_M64: #define __tune_k8__ 1
739 // CHECK_OPTERON_M64: #define __x86_64 1
740 // CHECK_OPTERON_M64: #define __x86_64__ 1
741 //
742 // RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
743 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
744 // CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
745 // CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
746 // CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
747 // CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
748 // CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
749 // CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
750 // CHECK_OPTERON_SSE3_M32: #define __i386 1
751 // CHECK_OPTERON_SSE3_M32: #define __i386__ 1
752 // CHECK_OPTERON_SSE3_M32: #define __k8 1
753 // CHECK_OPTERON_SSE3_M32: #define __k8__ 1
754 // CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
755 // CHECK_OPTERON_SSE3_M32: #define i386 1
756 // RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
757 // RUN:   | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
758 // CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
759 // CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
760 // CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
761 // CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
762 // CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
763 // CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
764 // CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
765 // CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
766 // CHECK_OPTERON_SSE3_M64: #define __amd64 1
767 // CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
768 // CHECK_OPTERON_SSE3_M64: #define __k8 1
769 // CHECK_OPTERON_SSE3_M64: #define __k8__ 1
770 // CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
771 // CHECK_OPTERON_SSE3_M64: #define __x86_64 1
772 // CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
773 //
774 // RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
775 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
776 // CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
777 // CHECK_ATHLON64_M32: #define __3dNOW__ 1
778 // CHECK_ATHLON64_M32: #define __MMX__ 1
779 // CHECK_ATHLON64_M32: #define __SSE2__ 1
780 // CHECK_ATHLON64_M32: #define __SSE__ 1
781 // CHECK_ATHLON64_M32: #define __i386 1
782 // CHECK_ATHLON64_M32: #define __i386__ 1
783 // CHECK_ATHLON64_M32: #define __k8 1
784 // CHECK_ATHLON64_M32: #define __k8__ 1
785 // CHECK_ATHLON64_M32: #define __tune_k8__ 1
786 // CHECK_ATHLON64_M32: #define i386 1
787 // RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
788 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
789 // CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
790 // CHECK_ATHLON64_M64: #define __3dNOW__ 1
791 // CHECK_ATHLON64_M64: #define __MMX__ 1
792 // CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
793 // CHECK_ATHLON64_M64: #define __SSE2__ 1
794 // CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
795 // CHECK_ATHLON64_M64: #define __SSE__ 1
796 // CHECK_ATHLON64_M64: #define __amd64 1
797 // CHECK_ATHLON64_M64: #define __amd64__ 1
798 // CHECK_ATHLON64_M64: #define __k8 1
799 // CHECK_ATHLON64_M64: #define __k8__ 1
800 // CHECK_ATHLON64_M64: #define __tune_k8__ 1
801 // CHECK_ATHLON64_M64: #define __x86_64 1
802 // CHECK_ATHLON64_M64: #define __x86_64__ 1
803 //
804 // RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
805 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
806 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
807 // CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
808 // CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
809 // CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
810 // CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
811 // CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
812 // CHECK_ATHLON64_SSE3_M32: #define __i386 1
813 // CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
814 // CHECK_ATHLON64_SSE3_M32: #define __k8 1
815 // CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
816 // CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
817 // CHECK_ATHLON64_SSE3_M32: #define i386 1
818 // RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
819 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
820 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
821 // CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
822 // CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
823 // CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
824 // CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
825 // CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
826 // CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
827 // CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
828 // CHECK_ATHLON64_SSE3_M64: #define __amd64 1
829 // CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
830 // CHECK_ATHLON64_SSE3_M64: #define __k8 1
831 // CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
832 // CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
833 // CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
834 // CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
835 //
836 // RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
837 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
838 // CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
839 // CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
840 // CHECK_ATHLON_FX_M32: #define __MMX__ 1
841 // CHECK_ATHLON_FX_M32: #define __SSE2__ 1
842 // CHECK_ATHLON_FX_M32: #define __SSE__ 1
843 // CHECK_ATHLON_FX_M32: #define __i386 1
844 // CHECK_ATHLON_FX_M32: #define __i386__ 1
845 // CHECK_ATHLON_FX_M32: #define __k8 1
846 // CHECK_ATHLON_FX_M32: #define __k8__ 1
847 // CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
848 // CHECK_ATHLON_FX_M32: #define i386 1
849 // RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
850 // RUN:   | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
851 // CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
852 // CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
853 // CHECK_ATHLON_FX_M64: #define __MMX__ 1
854 // CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
855 // CHECK_ATHLON_FX_M64: #define __SSE2__ 1
856 // CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
857 // CHECK_ATHLON_FX_M64: #define __SSE__ 1
858 // CHECK_ATHLON_FX_M64: #define __amd64 1
859 // CHECK_ATHLON_FX_M64: #define __amd64__ 1
860 // CHECK_ATHLON_FX_M64: #define __k8 1
861 // CHECK_ATHLON_FX_M64: #define __k8__ 1
862 // CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
863 // CHECK_ATHLON_FX_M64: #define __x86_64 1
864 // CHECK_ATHLON_FX_M64: #define __x86_64__ 1
865 //
866 // End X86/GCC/Linux tests ------------------
867