blob: 019ad0db92c22c76d6bbd3832b7444b46ced6181 [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
Chandler Carruth49defe62011-09-28 10:36:46 +000060// CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000061// 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
Chandler Carruth26a39142011-09-28 09:45:08 +000072// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000075//
76// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
77// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
Chandler Carruth49defe62011-09-28 10:36:46 +000078// CHECK_WINCHIP_C6_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000079// 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
Chandler Carruth26a39142011-09-28 09:45:08 +000085// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000088//
89// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
90// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +000091// CHECK_WINCHIP2_M32: #define __3dNOW__ 1
92// CHECK_WINCHIP2_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000093// 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
Chandler Carruth26a39142011-09-28 09:45:08 +000099// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000102//
103// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
104// RUN: | FileCheck %s -check-prefix=CHECK_C3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000105// CHECK_C3_M32: #define __3dNOW__ 1
106// CHECK_C3_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000107// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000113// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000116//
117// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
118// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000119// CHECK_C3_2_M32: #define __MMX__ 1
120// CHECK_C3_2_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000121// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000131// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000134//
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
Chandler Carruth26a39142011-09-28 09:45:08 +0000144// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000147//
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
Chandler Carruth26a39142011-09-28 09:45:08 +0000159// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000162//
163// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
164// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000165// CHECK_PENTIUM2_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000166// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000176// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000179//
180// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
181// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000182// CHECK_PENTIUM3_M32: #define __MMX__ 1
183// CHECK_PENTIUM3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000184// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000195// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000198//
199// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
200// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000201// CHECK_PENTIUM3M_M32: #define __MMX__ 1
202// CHECK_PENTIUM3M_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000203// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000212// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000215//
216// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
217// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000218// CHECK_PENTIUM_M_M32: #define __MMX__ 1
219// CHECK_PENTIUM_M_M32: #define __SSE2__ 1
220// CHECK_PENTIUM_M_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000221// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000230// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000233//
234// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
235// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000236// CHECK_PENTIUM4_M32: #define __MMX__ 1
237// CHECK_PENTIUM4_M32: #define __SSE2__ 1
238// CHECK_PENTIUM4_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000239// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000245// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000248//
249// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
250// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000251// CHECK_PENTIUM4M_M32: #define __MMX__ 1
252// CHECK_PENTIUM4M_M32: #define __SSE2__ 1
253// CHECK_PENTIUM4M_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000254// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000260// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000263//
264// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
265// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000266// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000270// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000276// 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:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000279//
280// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
281// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000282// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000286// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000292// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
293// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000294// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000300// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000307//
308// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
309// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000310// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000315// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000321// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
322// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000323// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000330// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000337//
338// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
339// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000340// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000347// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000353// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
354// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000355// 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
Chandler Carruth26a39142011-09-28 09:45:08 +0000364// 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
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000371//
372// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
373// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000374// CHECK_COREI7_AVX_M32: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000375// CHECK_COREI7_AVX_M32: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000376// CHECK_COREI7_AVX_M32: #define __MMX__ 1
377// CHECK_COREI7_AVX_M32: #define __SSE2__ 1
378// CHECK_COREI7_AVX_M32: #define __SSE3__ 1
379// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
380// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
381// CHECK_COREI7_AVX_M32: #define __SSE__ 1
382// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000383// CHECK_COREI7_AVX_M32: #define __corei7 1
384// CHECK_COREI7_AVX_M32: #define __corei7__ 1
385// CHECK_COREI7_AVX_M32: #define __i386 1
386// CHECK_COREI7_AVX_M32: #define __i386__ 1
387// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
388// CHECK_COREI7_AVX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000389// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
390// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000391// CHECK_COREI7_AVX_M64: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000392// CHECK_COREI7_AVX_M64: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000393// CHECK_COREI7_AVX_M64: #define __MMX__ 1
394// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
395// CHECK_COREI7_AVX_M64: #define __SSE2__ 1
396// CHECK_COREI7_AVX_M64: #define __SSE3__ 1
397// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
398// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
399// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
400// CHECK_COREI7_AVX_M64: #define __SSE__ 1
401// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000402// CHECK_COREI7_AVX_M64: #define __amd64 1
403// CHECK_COREI7_AVX_M64: #define __amd64__ 1
404// CHECK_COREI7_AVX_M64: #define __corei7 1
405// CHECK_COREI7_AVX_M64: #define __corei7__ 1
406// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
407// CHECK_COREI7_AVX_M64: #define __x86_64 1
408// CHECK_COREI7_AVX_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000409//
410// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
411// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000412// CHECK_CORE_AVX_I_M32: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000413// CHECK_CORE_AVX_I_M32: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000414// CHECK_CORE_AVX_I_M32: #define __MMX__ 1
415// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
416// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
417// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
418// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
419// CHECK_CORE_AVX_I_M32: #define __SSE__ 1
420// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000421// CHECK_CORE_AVX_I_M32: #define __corei7 1
422// CHECK_CORE_AVX_I_M32: #define __corei7__ 1
423// CHECK_CORE_AVX_I_M32: #define __i386 1
424// CHECK_CORE_AVX_I_M32: #define __i386__ 1
425// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
426// CHECK_CORE_AVX_I_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000427// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
428// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000429// CHECK_CORE_AVX_I_M64: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000430// CHECK_CORE_AVX_I_M64: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000431// CHECK_CORE_AVX_I_M64: #define __MMX__ 1
432// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
433// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
434// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
435// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
436// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
437// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
438// CHECK_CORE_AVX_I_M64: #define __SSE__ 1
439// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000440// CHECK_CORE_AVX_I_M64: #define __amd64 1
441// CHECK_CORE_AVX_I_M64: #define __amd64__ 1
442// CHECK_CORE_AVX_I_M64: #define __corei7 1
443// CHECK_CORE_AVX_I_M64: #define __corei7__ 1
444// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
445// CHECK_CORE_AVX_I_M64: #define __x86_64 1
446// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000447//
448// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
449// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000450// CHECK_ATOM_M32: #define __MMX__ 1
451// CHECK_ATOM_M32: #define __SSE2__ 1
452// CHECK_ATOM_M32: #define __SSE3__ 1
453// CHECK_ATOM_M32: #define __SSE__ 1
454// CHECK_ATOM_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000455// CHECK_ATOM_M32: #define __atom 1
456// CHECK_ATOM_M32: #define __atom__ 1
457// CHECK_ATOM_M32: #define __i386 1
458// CHECK_ATOM_M32: #define __i386__ 1
459// CHECK_ATOM_M32: #define __tune_atom__ 1
460// CHECK_ATOM_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000461// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
462// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000463// CHECK_ATOM_M64: #define __MMX__ 1
464// CHECK_ATOM_M64: #define __SSE2_MATH__ 1
465// CHECK_ATOM_M64: #define __SSE2__ 1
466// CHECK_ATOM_M64: #define __SSE3__ 1
467// CHECK_ATOM_M64: #define __SSE_MATH__ 1
468// CHECK_ATOM_M64: #define __SSE__ 1
469// CHECK_ATOM_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000470// CHECK_ATOM_M64: #define __amd64 1
471// CHECK_ATOM_M64: #define __amd64__ 1
472// CHECK_ATOM_M64: #define __atom 1
473// CHECK_ATOM_M64: #define __atom__ 1
474// CHECK_ATOM_M64: #define __tune_atom__ 1
475// CHECK_ATOM_M64: #define __x86_64 1
476// CHECK_ATOM_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000477//
478// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
479// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000480// CHECK_GEODE_M32: #define __3dNOW_A__ 1
481// CHECK_GEODE_M32: #define __3dNOW__ 1
482// CHECK_GEODE_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000483// CHECK_GEODE_M32: #define __geode 1
484// CHECK_GEODE_M32: #define __geode__ 1
485// CHECK_GEODE_M32: #define __i386 1
486// CHECK_GEODE_M32: #define __i386__ 1
487// CHECK_GEODE_M32: #define __tune_geode__ 1
488// CHECK_GEODE_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000489// RUN: %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
490// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M64
491// CHECK_GEODE_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000492//
493// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
494// RUN: | FileCheck %s -check-prefix=CHECK_K6_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000495// CHECK_K6_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000496// CHECK_K6_M32: #define __i386 1
497// CHECK_K6_M32: #define __i386__ 1
498// CHECK_K6_M32: #define __k6 1
499// CHECK_K6_M32: #define __k6__ 1
500// CHECK_K6_M32: #define __tune_k6__ 1
501// CHECK_K6_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000502// RUN: %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
503// RUN: | FileCheck %s -check-prefix=CHECK_K6_M64
504// CHECK_K6_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000505//
506// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
507// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000508// CHECK_K6_2_M32: #define __3dNOW__ 1
509// CHECK_K6_2_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000510// CHECK_K6_2_M32: #define __i386 1
511// CHECK_K6_2_M32: #define __i386__ 1
512// CHECK_K6_2_M32: #define __k6 1
513// CHECK_K6_2_M32: #define __k6_2__ 1
514// CHECK_K6_2_M32: #define __k6__ 1
515// CHECK_K6_2_M32: #define __tune_k6_2__ 1
516// CHECK_K6_2_M32: #define __tune_k6__ 1
517// CHECK_K6_2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000518// RUN: %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
519// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M64
520// CHECK_K6_2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000521//
522// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
523// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000524// CHECK_K6_3_M32: #define __3dNOW__ 1
525// CHECK_K6_3_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000526// CHECK_K6_3_M32: #define __i386 1
527// CHECK_K6_3_M32: #define __i386__ 1
528// CHECK_K6_3_M32: #define __k6 1
529// CHECK_K6_3_M32: #define __k6_3__ 1
530// CHECK_K6_3_M32: #define __k6__ 1
531// CHECK_K6_3_M32: #define __tune_k6_3__ 1
532// CHECK_K6_3_M32: #define __tune_k6__ 1
533// CHECK_K6_3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000534// RUN: %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
535// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M64
536// CHECK_K6_3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000537//
538// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
539// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000540// CHECK_ATHLON_M32: #define __3dNOW_A__ 1
541// CHECK_ATHLON_M32: #define __3dNOW__ 1
542// CHECK_ATHLON_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000543// CHECK_ATHLON_M32: #define __athlon 1
544// CHECK_ATHLON_M32: #define __athlon__ 1
545// CHECK_ATHLON_M32: #define __i386 1
546// CHECK_ATHLON_M32: #define __i386__ 1
547// CHECK_ATHLON_M32: #define __tune_athlon__ 1
548// CHECK_ATHLON_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000549// RUN: %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
550// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M64
551// CHECK_ATHLON_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000552//
553// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
554// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000555// CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
556// CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
557// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000558// CHECK_ATHLON_TBIRD_M32: #define __athlon 1
559// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
560// CHECK_ATHLON_TBIRD_M32: #define __i386 1
561// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
562// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
563// CHECK_ATHLON_TBIRD_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000564// RUN: %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
565// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
566// CHECK_ATHLON_TBIRD_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000567//
568// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
569// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000570// CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
571// CHECK_ATHLON_4_M32: #define __3dNOW__ 1
572// CHECK_ATHLON_4_M32: #define __MMX__ 1
573// CHECK_ATHLON_4_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000574// CHECK_ATHLON_4_M32: #define __athlon 1
575// CHECK_ATHLON_4_M32: #define __athlon__ 1
576// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
577// CHECK_ATHLON_4_M32: #define __i386 1
578// CHECK_ATHLON_4_M32: #define __i386__ 1
579// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000580// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000581// CHECK_ATHLON_4_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000582// RUN: %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
583// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
584// CHECK_ATHLON_4_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000585//
586// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
587// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000588// CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
589// CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
590// CHECK_ATHLON_XP_M32: #define __MMX__ 1
591// CHECK_ATHLON_XP_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000592// CHECK_ATHLON_XP_M32: #define __athlon 1
593// CHECK_ATHLON_XP_M32: #define __athlon__ 1
594// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
595// CHECK_ATHLON_XP_M32: #define __i386 1
596// CHECK_ATHLON_XP_M32: #define __i386__ 1
597// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000598// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000599// CHECK_ATHLON_XP_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000600// RUN: %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
601// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
602// CHECK_ATHLON_XP_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000603//
604// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
605// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000606// CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
607// CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
608// CHECK_ATHLON_MP_M32: #define __MMX__ 1
609// CHECK_ATHLON_MP_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000610// CHECK_ATHLON_MP_M32: #define __athlon 1
611// CHECK_ATHLON_MP_M32: #define __athlon__ 1
612// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
613// CHECK_ATHLON_MP_M32: #define __i386 1
614// CHECK_ATHLON_MP_M32: #define __i386__ 1
615// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000616// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000617// CHECK_ATHLON_MP_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000618// RUN: %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
619// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
620// CHECK_ATHLON_MP_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000621//
622// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
623// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000624// CHECK_X86_64_M32: #define __MMX__ 1
625// CHECK_X86_64_M32: #define __SSE2__ 1
626// CHECK_X86_64_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000627// CHECK_X86_64_M32: #define __i386 1
628// CHECK_X86_64_M32: #define __i386__ 1
629// CHECK_X86_64_M32: #define __k8 1
630// CHECK_X86_64_M32: #define __k8__ 1
631// CHECK_X86_64_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000632// RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
633// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000634// CHECK_X86_64_M64: #define __MMX__ 1
635// CHECK_X86_64_M64: #define __SSE2_MATH__ 1
636// CHECK_X86_64_M64: #define __SSE2__ 1
637// CHECK_X86_64_M64: #define __SSE_MATH__ 1
638// CHECK_X86_64_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000639// CHECK_X86_64_M64: #define __amd64 1
640// CHECK_X86_64_M64: #define __amd64__ 1
641// CHECK_X86_64_M64: #define __k8 1
642// CHECK_X86_64_M64: #define __k8__ 1
643// CHECK_X86_64_M64: #define __x86_64 1
644// CHECK_X86_64_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000645//
646// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
647// RUN: | FileCheck %s -check-prefix=CHECK_K8_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000648// CHECK_K8_M32: #define __3dNOW_A__ 1
649// CHECK_K8_M32: #define __3dNOW__ 1
650// CHECK_K8_M32: #define __MMX__ 1
651// CHECK_K8_M32: #define __SSE2__ 1
652// CHECK_K8_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000653// CHECK_K8_M32: #define __i386 1
654// CHECK_K8_M32: #define __i386__ 1
655// CHECK_K8_M32: #define __k8 1
656// CHECK_K8_M32: #define __k8__ 1
657// CHECK_K8_M32: #define __tune_k8__ 1
658// CHECK_K8_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000659// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
660// RUN: | FileCheck %s -check-prefix=CHECK_K8_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000661// CHECK_K8_M64: #define __3dNOW_A__ 1
662// CHECK_K8_M64: #define __3dNOW__ 1
663// CHECK_K8_M64: #define __MMX__ 1
664// CHECK_K8_M64: #define __SSE2_MATH__ 1
665// CHECK_K8_M64: #define __SSE2__ 1
666// CHECK_K8_M64: #define __SSE_MATH__ 1
667// CHECK_K8_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000668// CHECK_K8_M64: #define __amd64 1
669// CHECK_K8_M64: #define __amd64__ 1
670// CHECK_K8_M64: #define __k8 1
671// CHECK_K8_M64: #define __k8__ 1
672// CHECK_K8_M64: #define __tune_k8__ 1
673// CHECK_K8_M64: #define __x86_64 1
674// CHECK_K8_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000675//
676// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
677// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000678// CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
679// CHECK_K8_SSE3_M32: #define __3dNOW__ 1
680// CHECK_K8_SSE3_M32: #define __MMX__ 1
681// CHECK_K8_SSE3_M32: #define __SSE2__ 1
682// CHECK_K8_SSE3_M32: #define __SSE3__ 1
683// CHECK_K8_SSE3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000684// CHECK_K8_SSE3_M32: #define __i386 1
685// CHECK_K8_SSE3_M32: #define __i386__ 1
686// CHECK_K8_SSE3_M32: #define __k8 1
687// CHECK_K8_SSE3_M32: #define __k8__ 1
688// CHECK_K8_SSE3_M32: #define __tune_k8__ 1
689// CHECK_K8_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000690// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
691// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000692// CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
693// CHECK_K8_SSE3_M64: #define __3dNOW__ 1
694// CHECK_K8_SSE3_M64: #define __MMX__ 1
695// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
696// CHECK_K8_SSE3_M64: #define __SSE2__ 1
697// CHECK_K8_SSE3_M64: #define __SSE3__ 1
698// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
699// CHECK_K8_SSE3_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000700// CHECK_K8_SSE3_M64: #define __amd64 1
701// CHECK_K8_SSE3_M64: #define __amd64__ 1
702// CHECK_K8_SSE3_M64: #define __k8 1
703// CHECK_K8_SSE3_M64: #define __k8__ 1
704// CHECK_K8_SSE3_M64: #define __tune_k8__ 1
705// CHECK_K8_SSE3_M64: #define __x86_64 1
706// CHECK_K8_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000707//
708// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
709// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000710// CHECK_OPTERON_M32: #define __3dNOW_A__ 1
711// CHECK_OPTERON_M32: #define __3dNOW__ 1
712// CHECK_OPTERON_M32: #define __MMX__ 1
713// CHECK_OPTERON_M32: #define __SSE2__ 1
714// CHECK_OPTERON_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000715// CHECK_OPTERON_M32: #define __i386 1
716// CHECK_OPTERON_M32: #define __i386__ 1
717// CHECK_OPTERON_M32: #define __k8 1
718// CHECK_OPTERON_M32: #define __k8__ 1
719// CHECK_OPTERON_M32: #define __tune_k8__ 1
720// CHECK_OPTERON_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000721// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
722// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000723// CHECK_OPTERON_M64: #define __3dNOW_A__ 1
724// CHECK_OPTERON_M64: #define __3dNOW__ 1
725// CHECK_OPTERON_M64: #define __MMX__ 1
726// CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
727// CHECK_OPTERON_M64: #define __SSE2__ 1
728// CHECK_OPTERON_M64: #define __SSE_MATH__ 1
729// CHECK_OPTERON_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000730// CHECK_OPTERON_M64: #define __amd64 1
731// CHECK_OPTERON_M64: #define __amd64__ 1
732// CHECK_OPTERON_M64: #define __k8 1
733// CHECK_OPTERON_M64: #define __k8__ 1
734// CHECK_OPTERON_M64: #define __tune_k8__ 1
735// CHECK_OPTERON_M64: #define __x86_64 1
736// CHECK_OPTERON_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000737//
738// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
739// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000740// CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
741// CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
742// CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
743// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
744// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
745// CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000746// CHECK_OPTERON_SSE3_M32: #define __i386 1
747// CHECK_OPTERON_SSE3_M32: #define __i386__ 1
748// CHECK_OPTERON_SSE3_M32: #define __k8 1
749// CHECK_OPTERON_SSE3_M32: #define __k8__ 1
750// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
751// CHECK_OPTERON_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000752// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
753// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000754// CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
755// CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
756// CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
757// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
758// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
759// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
760// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
761// CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000762// CHECK_OPTERON_SSE3_M64: #define __amd64 1
763// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
764// CHECK_OPTERON_SSE3_M64: #define __k8 1
765// CHECK_OPTERON_SSE3_M64: #define __k8__ 1
766// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
767// CHECK_OPTERON_SSE3_M64: #define __x86_64 1
768// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000769//
770// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
771// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000772// CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
773// CHECK_ATHLON64_M32: #define __3dNOW__ 1
774// CHECK_ATHLON64_M32: #define __MMX__ 1
775// CHECK_ATHLON64_M32: #define __SSE2__ 1
776// CHECK_ATHLON64_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000777// CHECK_ATHLON64_M32: #define __i386 1
778// CHECK_ATHLON64_M32: #define __i386__ 1
779// CHECK_ATHLON64_M32: #define __k8 1
780// CHECK_ATHLON64_M32: #define __k8__ 1
781// CHECK_ATHLON64_M32: #define __tune_k8__ 1
782// CHECK_ATHLON64_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000783// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
784// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000785// CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
786// CHECK_ATHLON64_M64: #define __3dNOW__ 1
787// CHECK_ATHLON64_M64: #define __MMX__ 1
788// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
789// CHECK_ATHLON64_M64: #define __SSE2__ 1
790// CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
791// CHECK_ATHLON64_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000792// CHECK_ATHLON64_M64: #define __amd64 1
793// CHECK_ATHLON64_M64: #define __amd64__ 1
794// CHECK_ATHLON64_M64: #define __k8 1
795// CHECK_ATHLON64_M64: #define __k8__ 1
796// CHECK_ATHLON64_M64: #define __tune_k8__ 1
797// CHECK_ATHLON64_M64: #define __x86_64 1
798// CHECK_ATHLON64_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000799//
800// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
801// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000802// CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
803// CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
804// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
805// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
806// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
807// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000808// CHECK_ATHLON64_SSE3_M32: #define __i386 1
809// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
810// CHECK_ATHLON64_SSE3_M32: #define __k8 1
811// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
812// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
813// CHECK_ATHLON64_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000814// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
815// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000816// CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
817// CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
818// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
819// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
820// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
821// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
822// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
823// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000824// CHECK_ATHLON64_SSE3_M64: #define __amd64 1
825// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
826// CHECK_ATHLON64_SSE3_M64: #define __k8 1
827// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
828// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
829// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
830// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000831//
832// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
833// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000834// CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
835// CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
836// CHECK_ATHLON_FX_M32: #define __MMX__ 1
837// CHECK_ATHLON_FX_M32: #define __SSE2__ 1
838// CHECK_ATHLON_FX_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000839// CHECK_ATHLON_FX_M32: #define __i386 1
840// CHECK_ATHLON_FX_M32: #define __i386__ 1
841// CHECK_ATHLON_FX_M32: #define __k8 1
842// CHECK_ATHLON_FX_M32: #define __k8__ 1
843// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
844// CHECK_ATHLON_FX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000845// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
846// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000847// CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
848// CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
849// CHECK_ATHLON_FX_M64: #define __MMX__ 1
850// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
851// CHECK_ATHLON_FX_M64: #define __SSE2__ 1
852// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
853// CHECK_ATHLON_FX_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000854// CHECK_ATHLON_FX_M64: #define __amd64 1
855// CHECK_ATHLON_FX_M64: #define __amd64__ 1
856// CHECK_ATHLON_FX_M64: #define __k8 1
857// CHECK_ATHLON_FX_M64: #define __k8__ 1
858// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
859// CHECK_ATHLON_FX_M64: #define __x86_64 1
860// CHECK_ATHLON_FX_M64: #define __x86_64__ 1
Chandler Carruthf1aabcf2011-09-28 10:17:41 +0000861//
862// End X86/GCC/Linux tests ------------------