blob: 0b651690b426a6c1040177740554ff355e71dccf [file] [log] [blame]
Chandler Carruthf6cf1c22011-09-28 02:59:25 +00001// 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//
Chandler Carruthf1aabcf2011-09-28 10:17:41 +00004// Begin X86/GCC/Linux tests ----------------
5//
Chandler Carruthf6cf1c22011-09-28 02:59:25 +00006// 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
Chandler Carruth26a39142011-09-28 09:45:08 +000012// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000015//
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
Chandler Carruth26a39142011-09-28 09:45:08 +000024// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000027//
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
Chandler Carruth26a39142011-09-28 09:45:08 +000039// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000042//
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
Chandler Carruth26a39142011-09-28 09:45:08 +000054// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000057//
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 __i386 1
61// CHECK_PENTIUM_MMX_M32: #define __i386__ 1
62// CHECK_PENTIUM_MMX_M32: #define __i586 1
63// CHECK_PENTIUM_MMX_M32: #define __i586__ 1
64// CHECK_PENTIUM_MMX_M32: #define __pentium 1
65// CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
66// CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
67// CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
68// CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
69// CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
70// CHECK_PENTIUM_MMX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000071// RUN: %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
72// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
73// CHECK_PENTIUM_MMX_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000074//
75// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
76// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
77// CHECK_WINCHIP_C6_M32: #define __i386 1
78// CHECK_WINCHIP_C6_M32: #define __i386__ 1
79// CHECK_WINCHIP_C6_M32: #define __i486 1
80// CHECK_WINCHIP_C6_M32: #define __i486__ 1
81// CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
82// CHECK_WINCHIP_C6_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000083// RUN: %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
84// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
85// CHECK_WINCHIP_C6_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000086//
87// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
88// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
89// CHECK_WINCHIP2_M32: #define __i386 1
90// CHECK_WINCHIP2_M32: #define __i386__ 1
91// CHECK_WINCHIP2_M32: #define __i486 1
92// CHECK_WINCHIP2_M32: #define __i486__ 1
93// CHECK_WINCHIP2_M32: #define __tune_i486__ 1
94// CHECK_WINCHIP2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000095// RUN: %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
96// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
97// CHECK_WINCHIP2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000098//
99// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
100// RUN: | FileCheck %s -check-prefix=CHECK_C3_M32
101// CHECK_C3_M32: #define __i386 1
102// CHECK_C3_M32: #define __i386__ 1
103// CHECK_C3_M32: #define __i486 1
104// CHECK_C3_M32: #define __i486__ 1
105// CHECK_C3_M32: #define __tune_i486__ 1
106// CHECK_C3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000107// RUN: %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
108// RUN: | FileCheck %s -check-prefix=CHECK_C3_M64
109// CHECK_C3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000110//
111// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
112// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M32
113// CHECK_C3_2_M32: #define __i386 1
114// CHECK_C3_2_M32: #define __i386__ 1
115// CHECK_C3_2_M32: #define __i686 1
116// CHECK_C3_2_M32: #define __i686__ 1
117// CHECK_C3_2_M32: #define __pentiumpro 1
118// CHECK_C3_2_M32: #define __pentiumpro__ 1
119// CHECK_C3_2_M32: #define __tune_i686__ 1
120// CHECK_C3_2_M32: #define __tune_pentium2__ 1
121// CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
122// CHECK_C3_2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000123// RUN: %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
124// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M64
125// CHECK_C3_2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000126//
127// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
128// RUN: | FileCheck %s -check-prefix=CHECK_I686_M32
129// CHECK_I686_M32: #define __i386 1
130// CHECK_I686_M32: #define __i386__ 1
131// CHECK_I686_M32: #define __i686 1
132// CHECK_I686_M32: #define __i686__ 1
133// CHECK_I686_M32: #define __pentiumpro 1
134// CHECK_I686_M32: #define __pentiumpro__ 1
135// CHECK_I686_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000136// RUN: %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
137// RUN: | FileCheck %s -check-prefix=CHECK_I686_M64
138// CHECK_I686_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000139//
140// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
141// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32
142// CHECK_PENTIUMPRO_M32: #define __i386 1
143// CHECK_PENTIUMPRO_M32: #define __i386__ 1
144// CHECK_PENTIUMPRO_M32: #define __i686 1
145// CHECK_PENTIUMPRO_M32: #define __i686__ 1
146// CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
147// CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
148// CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
149// CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
150// CHECK_PENTIUMPRO_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000151// RUN: %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
152// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
153// CHECK_PENTIUMPRO_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000154//
155// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
156// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
157// CHECK_PENTIUM2_M32: #define __i386 1
158// CHECK_PENTIUM2_M32: #define __i386__ 1
159// CHECK_PENTIUM2_M32: #define __i686 1
160// CHECK_PENTIUM2_M32: #define __i686__ 1
161// CHECK_PENTIUM2_M32: #define __pentiumpro 1
162// CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
163// CHECK_PENTIUM2_M32: #define __tune_i686__ 1
164// CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
165// CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
166// CHECK_PENTIUM2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000167// RUN: %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
168// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
169// CHECK_PENTIUM2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000170//
171// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
172// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
173// CHECK_PENTIUM3_M32: #define __i386 1
174// CHECK_PENTIUM3_M32: #define __i386__ 1
175// CHECK_PENTIUM3_M32: #define __i686 1
176// CHECK_PENTIUM3_M32: #define __i686__ 1
177// CHECK_PENTIUM3_M32: #define __pentiumpro 1
178// CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
179// CHECK_PENTIUM3_M32: #define __tune_i686__ 1
180// CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
181// CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
182// CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
183// CHECK_PENTIUM3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000184// RUN: %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
185// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
186// CHECK_PENTIUM3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000187//
188// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
189// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
190// CHECK_PENTIUM3M_M32: #define __i386 1
191// CHECK_PENTIUM3M_M32: #define __i386__ 1
192// CHECK_PENTIUM3M_M32: #define __i686 1
193// CHECK_PENTIUM3M_M32: #define __i686__ 1
194// CHECK_PENTIUM3M_M32: #define __pentiumpro 1
195// CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
196// CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
197// CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
198// CHECK_PENTIUM3M_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000199// RUN: %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
200// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
201// CHECK_PENTIUM3M_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000202//
203// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
204// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
205// CHECK_PENTIUM_M_M32: #define __i386 1
206// CHECK_PENTIUM_M_M32: #define __i386__ 1
207// CHECK_PENTIUM_M_M32: #define __i686 1
208// CHECK_PENTIUM_M_M32: #define __i686__ 1
209// CHECK_PENTIUM_M_M32: #define __pentiumpro 1
210// CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
211// CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
212// CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
213// CHECK_PENTIUM_M_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000214// RUN: %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
215// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
216// CHECK_PENTIUM_M_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000217//
218// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
219// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
220// CHECK_PENTIUM4_M32: #define __i386 1
221// CHECK_PENTIUM4_M32: #define __i386__ 1
222// CHECK_PENTIUM4_M32: #define __pentium4 1
223// CHECK_PENTIUM4_M32: #define __pentium4__ 1
224// CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
225// CHECK_PENTIUM4_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000226// RUN: %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
227// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
228// CHECK_PENTIUM4_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000229//
230// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
231// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
232// CHECK_PENTIUM4M_M32: #define __i386 1
233// CHECK_PENTIUM4M_M32: #define __i386__ 1
234// CHECK_PENTIUM4M_M32: #define __pentium4 1
235// CHECK_PENTIUM4M_M32: #define __pentium4__ 1
236// CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
237// CHECK_PENTIUM4M_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000238// RUN: %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
239// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
240// CHECK_PENTIUM4M_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000241//
242// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
243// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
244// CHECK_PRESCOTT_M32: #define __i386 1
245// CHECK_PRESCOTT_M32: #define __i386__ 1
246// CHECK_PRESCOTT_M32: #define __nocona 1
247// CHECK_PRESCOTT_M32: #define __nocona__ 1
248// CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
249// CHECK_PRESCOTT_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000250// RUN: %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
251// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
252// CHECK_PRESCOTT_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000253//
254// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
255// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M32
256// CHECK_NOCONA_M32: #define __i386 1
257// CHECK_NOCONA_M32: #define __i386__ 1
258// CHECK_NOCONA_M32: #define __nocona 1
259// CHECK_NOCONA_M32: #define __nocona__ 1
260// CHECK_NOCONA_M32: #define __tune_nocona__ 1
261// CHECK_NOCONA_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000262// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
263// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M64
264// CHECK_NOCONA_M64: #define __amd64 1
265// CHECK_NOCONA_M64: #define __amd64__ 1
266// CHECK_NOCONA_M64: #define __nocona 1
267// CHECK_NOCONA_M64: #define __nocona__ 1
268// CHECK_NOCONA_M64: #define __tune_nocona__ 1
269// CHECK_NOCONA_M64: #define __x86_64 1
270// CHECK_NOCONA_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000271//
272// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
273// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M32
274// CHECK_CORE2_M32: #define __core2 1
275// CHECK_CORE2_M32: #define __core2__ 1
276// CHECK_CORE2_M32: #define __i386 1
277// CHECK_CORE2_M32: #define __i386__ 1
278// CHECK_CORE2_M32: #define __tune_core2__ 1
279// CHECK_CORE2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000280// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
281// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M64
282// CHECK_CORE2_M64: #define __amd64 1
283// CHECK_CORE2_M64: #define __amd64__ 1
284// CHECK_CORE2_M64: #define __core2 1
285// CHECK_CORE2_M64: #define __core2__ 1
286// CHECK_CORE2_M64: #define __tune_core2__ 1
287// CHECK_CORE2_M64: #define __x86_64 1
288// CHECK_CORE2_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000289//
290// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
291// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M32
292// CHECK_COREI7_M32: #define __corei7 1
293// CHECK_COREI7_M32: #define __corei7__ 1
294// CHECK_COREI7_M32: #define __i386 1
295// CHECK_COREI7_M32: #define __i386__ 1
296// CHECK_COREI7_M32: #define __tune_corei7__ 1
297// CHECK_COREI7_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000298// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
299// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M64
300// CHECK_COREI7_M64: #define __amd64 1
301// CHECK_COREI7_M64: #define __amd64__ 1
302// CHECK_COREI7_M64: #define __corei7 1
303// CHECK_COREI7_M64: #define __corei7__ 1
304// CHECK_COREI7_M64: #define __tune_corei7__ 1
305// CHECK_COREI7_M64: #define __x86_64 1
306// CHECK_COREI7_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000307//
308// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
309// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
310// CHECK_COREI7_AVX_M32: #define __corei7 1
311// CHECK_COREI7_AVX_M32: #define __corei7__ 1
312// CHECK_COREI7_AVX_M32: #define __i386 1
313// CHECK_COREI7_AVX_M32: #define __i386__ 1
314// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
315// CHECK_COREI7_AVX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000316// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
317// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
318// CHECK_COREI7_AVX_M64: #define __amd64 1
319// CHECK_COREI7_AVX_M64: #define __amd64__ 1
320// CHECK_COREI7_AVX_M64: #define __corei7 1
321// CHECK_COREI7_AVX_M64: #define __corei7__ 1
322// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
323// CHECK_COREI7_AVX_M64: #define __x86_64 1
324// CHECK_COREI7_AVX_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000325//
326// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
327// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
328// CHECK_CORE_AVX_I_M32: #define __corei7 1
329// CHECK_CORE_AVX_I_M32: #define __corei7__ 1
330// CHECK_CORE_AVX_I_M32: #define __i386 1
331// CHECK_CORE_AVX_I_M32: #define __i386__ 1
332// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
333// CHECK_CORE_AVX_I_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000334// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
335// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
336// CHECK_CORE_AVX_I_M64: #define __amd64 1
337// CHECK_CORE_AVX_I_M64: #define __amd64__ 1
338// CHECK_CORE_AVX_I_M64: #define __corei7 1
339// CHECK_CORE_AVX_I_M64: #define __corei7__ 1
340// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
341// CHECK_CORE_AVX_I_M64: #define __x86_64 1
342// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000343//
344// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
345// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M32
346// CHECK_ATOM_M32: #define __atom 1
347// CHECK_ATOM_M32: #define __atom__ 1
348// CHECK_ATOM_M32: #define __i386 1
349// CHECK_ATOM_M32: #define __i386__ 1
350// CHECK_ATOM_M32: #define __tune_atom__ 1
351// CHECK_ATOM_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000352// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
353// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M64
354// CHECK_ATOM_M64: #define __amd64 1
355// CHECK_ATOM_M64: #define __amd64__ 1
356// CHECK_ATOM_M64: #define __atom 1
357// CHECK_ATOM_M64: #define __atom__ 1
358// CHECK_ATOM_M64: #define __tune_atom__ 1
359// CHECK_ATOM_M64: #define __x86_64 1
360// CHECK_ATOM_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000361//
362// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
363// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32
364// CHECK_GEODE_M32: #define __geode 1
365// CHECK_GEODE_M32: #define __geode__ 1
366// CHECK_GEODE_M32: #define __i386 1
367// CHECK_GEODE_M32: #define __i386__ 1
368// CHECK_GEODE_M32: #define __tune_geode__ 1
369// CHECK_GEODE_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000370// RUN: %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
371// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M64
372// CHECK_GEODE_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000373//
374// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
375// RUN: | FileCheck %s -check-prefix=CHECK_K6_M32
376// CHECK_K6_M32: #define __i386 1
377// CHECK_K6_M32: #define __i386__ 1
378// CHECK_K6_M32: #define __k6 1
379// CHECK_K6_M32: #define __k6__ 1
380// CHECK_K6_M32: #define __tune_k6__ 1
381// CHECK_K6_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000382// RUN: %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
383// RUN: | FileCheck %s -check-prefix=CHECK_K6_M64
384// CHECK_K6_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000385//
386// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
387// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M32
388// CHECK_K6_2_M32: #define __i386 1
389// CHECK_K6_2_M32: #define __i386__ 1
390// CHECK_K6_2_M32: #define __k6 1
391// CHECK_K6_2_M32: #define __k6_2__ 1
392// CHECK_K6_2_M32: #define __k6__ 1
393// CHECK_K6_2_M32: #define __tune_k6_2__ 1
394// CHECK_K6_2_M32: #define __tune_k6__ 1
395// CHECK_K6_2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000396// RUN: %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
397// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M64
398// CHECK_K6_2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000399//
400// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
401// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M32
402// CHECK_K6_3_M32: #define __i386 1
403// CHECK_K6_3_M32: #define __i386__ 1
404// CHECK_K6_3_M32: #define __k6 1
405// CHECK_K6_3_M32: #define __k6_3__ 1
406// CHECK_K6_3_M32: #define __k6__ 1
407// CHECK_K6_3_M32: #define __tune_k6_3__ 1
408// CHECK_K6_3_M32: #define __tune_k6__ 1
409// CHECK_K6_3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000410// RUN: %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
411// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M64
412// CHECK_K6_3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000413//
414// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
415// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M32
416// CHECK_ATHLON_M32: #define __athlon 1
417// CHECK_ATHLON_M32: #define __athlon__ 1
418// CHECK_ATHLON_M32: #define __i386 1
419// CHECK_ATHLON_M32: #define __i386__ 1
420// CHECK_ATHLON_M32: #define __tune_athlon__ 1
421// CHECK_ATHLON_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000422// RUN: %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
423// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M64
424// CHECK_ATHLON_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000425//
426// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
427// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
428// CHECK_ATHLON_TBIRD_M32: #define __athlon 1
429// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
430// CHECK_ATHLON_TBIRD_M32: #define __i386 1
431// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
432// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
433// CHECK_ATHLON_TBIRD_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000434// RUN: %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
435// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
436// CHECK_ATHLON_TBIRD_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000437//
438// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
439// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
440// CHECK_ATHLON_4_M32: #define __athlon 1
441// CHECK_ATHLON_4_M32: #define __athlon__ 1
442// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
443// CHECK_ATHLON_4_M32: #define __i386 1
444// CHECK_ATHLON_4_M32: #define __i386__ 1
445// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000446// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000447// CHECK_ATHLON_4_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000448// RUN: %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
449// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
450// CHECK_ATHLON_4_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000451//
452// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
453// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
454// CHECK_ATHLON_XP_M32: #define __athlon 1
455// CHECK_ATHLON_XP_M32: #define __athlon__ 1
456// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
457// CHECK_ATHLON_XP_M32: #define __i386 1
458// CHECK_ATHLON_XP_M32: #define __i386__ 1
459// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000460// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000461// CHECK_ATHLON_XP_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000462// RUN: %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
463// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
464// CHECK_ATHLON_XP_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000465//
466// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
467// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
468// CHECK_ATHLON_MP_M32: #define __athlon 1
469// CHECK_ATHLON_MP_M32: #define __athlon__ 1
470// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
471// CHECK_ATHLON_MP_M32: #define __i386 1
472// CHECK_ATHLON_MP_M32: #define __i386__ 1
473// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000474// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000475// CHECK_ATHLON_MP_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000476// RUN: %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
477// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
478// CHECK_ATHLON_MP_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000479//
480// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
481// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M32
482// CHECK_X86_64_M32: #define __i386 1
483// CHECK_X86_64_M32: #define __i386__ 1
484// CHECK_X86_64_M32: #define __k8 1
485// CHECK_X86_64_M32: #define __k8__ 1
486// CHECK_X86_64_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000487// RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
488// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M64
489// CHECK_X86_64_M64: #define __amd64 1
490// CHECK_X86_64_M64: #define __amd64__ 1
491// CHECK_X86_64_M64: #define __k8 1
492// CHECK_X86_64_M64: #define __k8__ 1
493// CHECK_X86_64_M64: #define __x86_64 1
494// CHECK_X86_64_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000495//
496// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
497// RUN: | FileCheck %s -check-prefix=CHECK_K8_M32
498// CHECK_K8_M32: #define __i386 1
499// CHECK_K8_M32: #define __i386__ 1
500// CHECK_K8_M32: #define __k8 1
501// CHECK_K8_M32: #define __k8__ 1
502// CHECK_K8_M32: #define __tune_k8__ 1
503// CHECK_K8_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000504// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
505// RUN: | FileCheck %s -check-prefix=CHECK_K8_M64
506// CHECK_K8_M64: #define __amd64 1
507// CHECK_K8_M64: #define __amd64__ 1
508// CHECK_K8_M64: #define __k8 1
509// CHECK_K8_M64: #define __k8__ 1
510// CHECK_K8_M64: #define __tune_k8__ 1
511// CHECK_K8_M64: #define __x86_64 1
512// CHECK_K8_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000513//
514// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
515// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
516// CHECK_K8_SSE3_M32: #define __i386 1
517// CHECK_K8_SSE3_M32: #define __i386__ 1
518// CHECK_K8_SSE3_M32: #define __k8 1
519// CHECK_K8_SSE3_M32: #define __k8__ 1
520// CHECK_K8_SSE3_M32: #define __tune_k8__ 1
521// CHECK_K8_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000522// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
523// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
524// CHECK_K8_SSE3_M64: #define __amd64 1
525// CHECK_K8_SSE3_M64: #define __amd64__ 1
526// CHECK_K8_SSE3_M64: #define __k8 1
527// CHECK_K8_SSE3_M64: #define __k8__ 1
528// CHECK_K8_SSE3_M64: #define __tune_k8__ 1
529// CHECK_K8_SSE3_M64: #define __x86_64 1
530// CHECK_K8_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000531//
532// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
533// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M32
534// CHECK_OPTERON_M32: #define __i386 1
535// CHECK_OPTERON_M32: #define __i386__ 1
536// CHECK_OPTERON_M32: #define __k8 1
537// CHECK_OPTERON_M32: #define __k8__ 1
538// CHECK_OPTERON_M32: #define __tune_k8__ 1
539// CHECK_OPTERON_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000540// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
541// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M64
542// CHECK_OPTERON_M64: #define __amd64 1
543// CHECK_OPTERON_M64: #define __amd64__ 1
544// CHECK_OPTERON_M64: #define __k8 1
545// CHECK_OPTERON_M64: #define __k8__ 1
546// CHECK_OPTERON_M64: #define __tune_k8__ 1
547// CHECK_OPTERON_M64: #define __x86_64 1
548// CHECK_OPTERON_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000549//
550// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
551// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
552// CHECK_OPTERON_SSE3_M32: #define __i386 1
553// CHECK_OPTERON_SSE3_M32: #define __i386__ 1
554// CHECK_OPTERON_SSE3_M32: #define __k8 1
555// CHECK_OPTERON_SSE3_M32: #define __k8__ 1
556// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
557// CHECK_OPTERON_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000558// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
559// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
560// CHECK_OPTERON_SSE3_M64: #define __amd64 1
561// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
562// CHECK_OPTERON_SSE3_M64: #define __k8 1
563// CHECK_OPTERON_SSE3_M64: #define __k8__ 1
564// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
565// CHECK_OPTERON_SSE3_M64: #define __x86_64 1
566// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000567//
568// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
569// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
570// CHECK_ATHLON64_M32: #define __i386 1
571// CHECK_ATHLON64_M32: #define __i386__ 1
572// CHECK_ATHLON64_M32: #define __k8 1
573// CHECK_ATHLON64_M32: #define __k8__ 1
574// CHECK_ATHLON64_M32: #define __tune_k8__ 1
575// CHECK_ATHLON64_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000576// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
577// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
578// CHECK_ATHLON64_M64: #define __amd64 1
579// CHECK_ATHLON64_M64: #define __amd64__ 1
580// CHECK_ATHLON64_M64: #define __k8 1
581// CHECK_ATHLON64_M64: #define __k8__ 1
582// CHECK_ATHLON64_M64: #define __tune_k8__ 1
583// CHECK_ATHLON64_M64: #define __x86_64 1
584// CHECK_ATHLON64_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000585//
586// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
587// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
588// CHECK_ATHLON64_SSE3_M32: #define __i386 1
589// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
590// CHECK_ATHLON64_SSE3_M32: #define __k8 1
591// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
592// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
593// CHECK_ATHLON64_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000594// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
595// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
596// CHECK_ATHLON64_SSE3_M64: #define __amd64 1
597// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
598// CHECK_ATHLON64_SSE3_M64: #define __k8 1
599// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
600// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
601// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
602// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000603//
604// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
605// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
606// CHECK_ATHLON_FX_M32: #define __i386 1
607// CHECK_ATHLON_FX_M32: #define __i386__ 1
608// CHECK_ATHLON_FX_M32: #define __k8 1
609// CHECK_ATHLON_FX_M32: #define __k8__ 1
610// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
611// CHECK_ATHLON_FX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000612// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
613// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
614// CHECK_ATHLON_FX_M64: #define __amd64 1
615// CHECK_ATHLON_FX_M64: #define __amd64__ 1
616// CHECK_ATHLON_FX_M64: #define __k8 1
617// CHECK_ATHLON_FX_M64: #define __k8__ 1
618// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
619// CHECK_ATHLON_FX_M64: #define __x86_64 1
620// CHECK_ATHLON_FX_M64: #define __x86_64__ 1
Chandler Carruthf1aabcf2011-09-28 10:17:41 +0000621//
622// End X86/GCC/Linux tests ------------------