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