blob: 0b9d343b2415231272aa843910249ea488e13476 [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 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +00007// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +00008// RUN: | FileCheck %s -check-prefix=CHECK_I386_M32
9// CHECK_I386_M32: #define __i386 1
10// CHECK_I386_M32: #define __i386__ 1
11// CHECK_I386_M32: #define __tune_i386__ 1
12// CHECK_I386_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000013// RUN: %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000014// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +000015// RUN: | FileCheck %s -check-prefix=CHECK_I386_M64
16// CHECK_I386_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000017//
18// RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000019// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000020// RUN: | FileCheck %s -check-prefix=CHECK_I486_M32
21// CHECK_I486_M32: #define __i386 1
22// CHECK_I486_M32: #define __i386__ 1
23// CHECK_I486_M32: #define __i486 1
24// CHECK_I486_M32: #define __i486__ 1
25// CHECK_I486_M32: #define __tune_i486__ 1
26// CHECK_I486_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000027// RUN: %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000028// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +000029// RUN: | FileCheck %s -check-prefix=CHECK_I486_M64
30// CHECK_I486_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000031//
32// RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000033// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000034// RUN: | FileCheck %s -check-prefix=CHECK_I586_M32
35// CHECK_I586_M32: #define __i386 1
36// CHECK_I586_M32: #define __i386__ 1
37// CHECK_I586_M32: #define __i586 1
38// CHECK_I586_M32: #define __i586__ 1
39// CHECK_I586_M32: #define __pentium 1
40// CHECK_I586_M32: #define __pentium__ 1
41// CHECK_I586_M32: #define __tune_i586__ 1
42// CHECK_I586_M32: #define __tune_pentium__ 1
43// CHECK_I586_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000044// RUN: %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000045// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +000046// RUN: | FileCheck %s -check-prefix=CHECK_I586_M64
47// CHECK_I586_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000048//
49// RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000050// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000051// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M32
52// CHECK_PENTIUM_M32: #define __i386 1
53// CHECK_PENTIUM_M32: #define __i386__ 1
54// CHECK_PENTIUM_M32: #define __i586 1
55// CHECK_PENTIUM_M32: #define __i586__ 1
56// CHECK_PENTIUM_M32: #define __pentium 1
57// CHECK_PENTIUM_M32: #define __pentium__ 1
58// CHECK_PENTIUM_M32: #define __tune_i586__ 1
59// CHECK_PENTIUM_M32: #define __tune_pentium__ 1
60// CHECK_PENTIUM_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000061// RUN: %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000062// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +000063// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M64
64// CHECK_PENTIUM_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000065//
66// RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000067// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000068// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32
Chandler Carruth49defe62011-09-28 10:36:46 +000069// CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000070// CHECK_PENTIUM_MMX_M32: #define __i386 1
71// CHECK_PENTIUM_MMX_M32: #define __i386__ 1
72// CHECK_PENTIUM_MMX_M32: #define __i586 1
73// CHECK_PENTIUM_MMX_M32: #define __i586__ 1
74// CHECK_PENTIUM_MMX_M32: #define __pentium 1
75// CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
76// CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
77// CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
78// CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
79// CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
80// CHECK_PENTIUM_MMX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000081// RUN: %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000082// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +000083// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
84// CHECK_PENTIUM_MMX_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000085//
86// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000087// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000088// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
Chandler Carruth49defe62011-09-28 10:36:46 +000089// CHECK_WINCHIP_C6_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +000090// CHECK_WINCHIP_C6_M32: #define __i386 1
91// CHECK_WINCHIP_C6_M32: #define __i386__ 1
92// CHECK_WINCHIP_C6_M32: #define __i486 1
93// CHECK_WINCHIP_C6_M32: #define __i486__ 1
94// CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
95// CHECK_WINCHIP_C6_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +000096// RUN: %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +000097// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +000098// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
99// CHECK_WINCHIP_C6_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000100//
101// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000102// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000103// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000104// CHECK_WINCHIP2_M32: #define __3dNOW__ 1
105// CHECK_WINCHIP2_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000106// CHECK_WINCHIP2_M32: #define __i386 1
107// CHECK_WINCHIP2_M32: #define __i386__ 1
108// CHECK_WINCHIP2_M32: #define __i486 1
109// CHECK_WINCHIP2_M32: #define __i486__ 1
110// CHECK_WINCHIP2_M32: #define __tune_i486__ 1
111// CHECK_WINCHIP2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000112// RUN: %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000113// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000114// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
115// CHECK_WINCHIP2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000116//
117// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000118// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000119// RUN: | FileCheck %s -check-prefix=CHECK_C3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000120// CHECK_C3_M32: #define __3dNOW__ 1
121// CHECK_C3_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000122// CHECK_C3_M32: #define __i386 1
123// CHECK_C3_M32: #define __i386__ 1
124// CHECK_C3_M32: #define __i486 1
125// CHECK_C3_M32: #define __i486__ 1
126// CHECK_C3_M32: #define __tune_i486__ 1
127// CHECK_C3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000128// RUN: %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000129// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000130// RUN: | FileCheck %s -check-prefix=CHECK_C3_M64
131// CHECK_C3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000132//
133// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000134// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000135// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000136// CHECK_C3_2_M32: #define __MMX__ 1
137// CHECK_C3_2_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000138// CHECK_C3_2_M32: #define __i386 1
139// CHECK_C3_2_M32: #define __i386__ 1
140// CHECK_C3_2_M32: #define __i686 1
141// CHECK_C3_2_M32: #define __i686__ 1
142// CHECK_C3_2_M32: #define __pentiumpro 1
143// CHECK_C3_2_M32: #define __pentiumpro__ 1
144// CHECK_C3_2_M32: #define __tune_i686__ 1
145// CHECK_C3_2_M32: #define __tune_pentium2__ 1
146// CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
147// CHECK_C3_2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000148// RUN: %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000149// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000150// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M64
151// CHECK_C3_2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000152//
153// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000154// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000155// RUN: | FileCheck %s -check-prefix=CHECK_I686_M32
156// CHECK_I686_M32: #define __i386 1
157// CHECK_I686_M32: #define __i386__ 1
158// CHECK_I686_M32: #define __i686 1
159// CHECK_I686_M32: #define __i686__ 1
160// CHECK_I686_M32: #define __pentiumpro 1
161// CHECK_I686_M32: #define __pentiumpro__ 1
162// CHECK_I686_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000163// RUN: %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000164// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000165// RUN: | FileCheck %s -check-prefix=CHECK_I686_M64
166// CHECK_I686_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000167//
168// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000169// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000170// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32
171// CHECK_PENTIUMPRO_M32: #define __i386 1
172// CHECK_PENTIUMPRO_M32: #define __i386__ 1
173// CHECK_PENTIUMPRO_M32: #define __i686 1
174// CHECK_PENTIUMPRO_M32: #define __i686__ 1
175// CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
176// CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
177// CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
178// CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
179// CHECK_PENTIUMPRO_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000180// RUN: %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000181// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000182// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
183// CHECK_PENTIUMPRO_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000184//
185// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000186// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000187// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000188// CHECK_PENTIUM2_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000189// CHECK_PENTIUM2_M32: #define __i386 1
190// CHECK_PENTIUM2_M32: #define __i386__ 1
191// CHECK_PENTIUM2_M32: #define __i686 1
192// CHECK_PENTIUM2_M32: #define __i686__ 1
193// CHECK_PENTIUM2_M32: #define __pentiumpro 1
194// CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
195// CHECK_PENTIUM2_M32: #define __tune_i686__ 1
196// CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
197// CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
198// CHECK_PENTIUM2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000199// RUN: %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000200// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000201// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
202// CHECK_PENTIUM2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000203//
204// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000205// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000206// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000207// CHECK_PENTIUM3_M32: #define __MMX__ 1
208// CHECK_PENTIUM3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000209// CHECK_PENTIUM3_M32: #define __i386 1
210// CHECK_PENTIUM3_M32: #define __i386__ 1
211// CHECK_PENTIUM3_M32: #define __i686 1
212// CHECK_PENTIUM3_M32: #define __i686__ 1
213// CHECK_PENTIUM3_M32: #define __pentiumpro 1
214// CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
215// CHECK_PENTIUM3_M32: #define __tune_i686__ 1
216// CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
217// CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
218// CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
219// CHECK_PENTIUM3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000220// RUN: %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000221// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000222// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
223// CHECK_PENTIUM3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000224//
225// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000226// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000227// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000228// CHECK_PENTIUM3M_M32: #define __MMX__ 1
229// CHECK_PENTIUM3M_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000230// CHECK_PENTIUM3M_M32: #define __i386 1
231// CHECK_PENTIUM3M_M32: #define __i386__ 1
232// CHECK_PENTIUM3M_M32: #define __i686 1
233// CHECK_PENTIUM3M_M32: #define __i686__ 1
234// CHECK_PENTIUM3M_M32: #define __pentiumpro 1
235// CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
236// CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
237// CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
238// CHECK_PENTIUM3M_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000239// RUN: %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000240// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000241// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
242// CHECK_PENTIUM3M_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000243//
244// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000245// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000246// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000247// CHECK_PENTIUM_M_M32: #define __MMX__ 1
248// CHECK_PENTIUM_M_M32: #define __SSE2__ 1
249// CHECK_PENTIUM_M_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000250// CHECK_PENTIUM_M_M32: #define __i386 1
251// CHECK_PENTIUM_M_M32: #define __i386__ 1
252// CHECK_PENTIUM_M_M32: #define __i686 1
253// CHECK_PENTIUM_M_M32: #define __i686__ 1
254// CHECK_PENTIUM_M_M32: #define __pentiumpro 1
255// CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
256// CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
257// CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
258// CHECK_PENTIUM_M_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000259// RUN: %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000260// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000261// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
262// CHECK_PENTIUM_M_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000263//
264// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000265// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000266// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000267// CHECK_PENTIUM4_M32: #define __MMX__ 1
268// CHECK_PENTIUM4_M32: #define __SSE2__ 1
269// CHECK_PENTIUM4_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000270// CHECK_PENTIUM4_M32: #define __i386 1
271// CHECK_PENTIUM4_M32: #define __i386__ 1
272// CHECK_PENTIUM4_M32: #define __pentium4 1
273// CHECK_PENTIUM4_M32: #define __pentium4__ 1
274// CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
275// CHECK_PENTIUM4_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000276// RUN: %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000277// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000278// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
279// CHECK_PENTIUM4_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000280//
281// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000282// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000283// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000284// CHECK_PENTIUM4M_M32: #define __MMX__ 1
285// CHECK_PENTIUM4M_M32: #define __SSE2__ 1
286// CHECK_PENTIUM4M_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000287// CHECK_PENTIUM4M_M32: #define __i386 1
288// CHECK_PENTIUM4M_M32: #define __i386__ 1
289// CHECK_PENTIUM4M_M32: #define __pentium4 1
290// CHECK_PENTIUM4M_M32: #define __pentium4__ 1
291// CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
292// CHECK_PENTIUM4M_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000293// RUN: %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000294// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000295// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
296// CHECK_PENTIUM4M_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000297//
298// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000299// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000300// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000301// CHECK_PRESCOTT_M32: #define __MMX__ 1
302// CHECK_PRESCOTT_M32: #define __SSE2__ 1
303// CHECK_PRESCOTT_M32: #define __SSE3__ 1
304// CHECK_PRESCOTT_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000305// CHECK_PRESCOTT_M32: #define __i386 1
306// CHECK_PRESCOTT_M32: #define __i386__ 1
307// CHECK_PRESCOTT_M32: #define __nocona 1
308// CHECK_PRESCOTT_M32: #define __nocona__ 1
309// CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
310// CHECK_PRESCOTT_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000311// RUN: %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000312// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000313// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
314// CHECK_PRESCOTT_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000315//
316// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000317// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000318// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000319// CHECK_NOCONA_M32: #define __MMX__ 1
320// CHECK_NOCONA_M32: #define __SSE2__ 1
321// CHECK_NOCONA_M32: #define __SSE3__ 1
322// CHECK_NOCONA_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000323// CHECK_NOCONA_M32: #define __i386 1
324// CHECK_NOCONA_M32: #define __i386__ 1
325// CHECK_NOCONA_M32: #define __nocona 1
326// CHECK_NOCONA_M32: #define __nocona__ 1
327// CHECK_NOCONA_M32: #define __tune_nocona__ 1
328// CHECK_NOCONA_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000329// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000330// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000331// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000332// CHECK_NOCONA_M64: #define __MMX__ 1
333// CHECK_NOCONA_M64: #define __SSE2_MATH__ 1
334// CHECK_NOCONA_M64: #define __SSE2__ 1
335// CHECK_NOCONA_M64: #define __SSE3__ 1
336// CHECK_NOCONA_M64: #define __SSE_MATH__ 1
337// CHECK_NOCONA_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000338// CHECK_NOCONA_M64: #define __amd64 1
339// CHECK_NOCONA_M64: #define __amd64__ 1
340// CHECK_NOCONA_M64: #define __nocona 1
341// CHECK_NOCONA_M64: #define __nocona__ 1
342// CHECK_NOCONA_M64: #define __tune_nocona__ 1
343// CHECK_NOCONA_M64: #define __x86_64 1
344// CHECK_NOCONA_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000345//
346// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000347// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000348// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000349// CHECK_CORE2_M32: #define __MMX__ 1
350// CHECK_CORE2_M32: #define __SSE2__ 1
351// CHECK_CORE2_M32: #define __SSE3__ 1
352// CHECK_CORE2_M32: #define __SSE__ 1
353// CHECK_CORE2_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000354// CHECK_CORE2_M32: #define __core2 1
355// CHECK_CORE2_M32: #define __core2__ 1
356// CHECK_CORE2_M32: #define __i386 1
357// CHECK_CORE2_M32: #define __i386__ 1
358// CHECK_CORE2_M32: #define __tune_core2__ 1
359// CHECK_CORE2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000360// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000361// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000362// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000363// CHECK_CORE2_M64: #define __MMX__ 1
364// CHECK_CORE2_M64: #define __SSE2_MATH__ 1
365// CHECK_CORE2_M64: #define __SSE2__ 1
366// CHECK_CORE2_M64: #define __SSE3__ 1
367// CHECK_CORE2_M64: #define __SSE_MATH__ 1
368// CHECK_CORE2_M64: #define __SSE__ 1
369// CHECK_CORE2_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000370// CHECK_CORE2_M64: #define __amd64 1
371// CHECK_CORE2_M64: #define __amd64__ 1
372// CHECK_CORE2_M64: #define __core2 1
373// CHECK_CORE2_M64: #define __core2__ 1
374// CHECK_CORE2_M64: #define __tune_core2__ 1
375// CHECK_CORE2_M64: #define __x86_64 1
376// CHECK_CORE2_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000377//
378// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000379// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000380// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000381// CHECK_COREI7_M32: #define __MMX__ 1
382// CHECK_COREI7_M32: #define __SSE2__ 1
383// CHECK_COREI7_M32: #define __SSE3__ 1
384// CHECK_COREI7_M32: #define __SSE4_1__ 1
385// CHECK_COREI7_M32: #define __SSE4_2__ 1
386// CHECK_COREI7_M32: #define __SSE__ 1
387// CHECK_COREI7_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000388// CHECK_COREI7_M32: #define __corei7 1
389// CHECK_COREI7_M32: #define __corei7__ 1
390// CHECK_COREI7_M32: #define __i386 1
391// CHECK_COREI7_M32: #define __i386__ 1
392// CHECK_COREI7_M32: #define __tune_corei7__ 1
393// CHECK_COREI7_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000394// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000395// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000396// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000397// CHECK_COREI7_M64: #define __MMX__ 1
398// CHECK_COREI7_M64: #define __SSE2_MATH__ 1
399// CHECK_COREI7_M64: #define __SSE2__ 1
400// CHECK_COREI7_M64: #define __SSE3__ 1
401// CHECK_COREI7_M64: #define __SSE4_1__ 1
402// CHECK_COREI7_M64: #define __SSE4_2__ 1
403// CHECK_COREI7_M64: #define __SSE_MATH__ 1
404// CHECK_COREI7_M64: #define __SSE__ 1
405// CHECK_COREI7_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000406// CHECK_COREI7_M64: #define __amd64 1
407// CHECK_COREI7_M64: #define __amd64__ 1
408// CHECK_COREI7_M64: #define __corei7 1
409// CHECK_COREI7_M64: #define __corei7__ 1
410// CHECK_COREI7_M64: #define __tune_corei7__ 1
411// CHECK_COREI7_M64: #define __x86_64 1
412// CHECK_COREI7_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000413//
414// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000415// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000416// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000417// CHECK_COREI7_AVX_M32: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000418// CHECK_COREI7_AVX_M32: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000419// CHECK_COREI7_AVX_M32: #define __MMX__ 1
420// CHECK_COREI7_AVX_M32: #define __SSE2__ 1
421// CHECK_COREI7_AVX_M32: #define __SSE3__ 1
422// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
423// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
424// CHECK_COREI7_AVX_M32: #define __SSE__ 1
425// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000426// CHECK_COREI7_AVX_M32: #define __corei7 1
427// CHECK_COREI7_AVX_M32: #define __corei7__ 1
428// CHECK_COREI7_AVX_M32: #define __i386 1
429// CHECK_COREI7_AVX_M32: #define __i386__ 1
430// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
431// CHECK_COREI7_AVX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000432// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000433// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000434// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000435// CHECK_COREI7_AVX_M64: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000436// CHECK_COREI7_AVX_M64: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000437// CHECK_COREI7_AVX_M64: #define __MMX__ 1
438// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
439// CHECK_COREI7_AVX_M64: #define __SSE2__ 1
440// CHECK_COREI7_AVX_M64: #define __SSE3__ 1
441// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
442// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
443// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
444// CHECK_COREI7_AVX_M64: #define __SSE__ 1
445// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000446// CHECK_COREI7_AVX_M64: #define __amd64 1
447// CHECK_COREI7_AVX_M64: #define __amd64__ 1
448// CHECK_COREI7_AVX_M64: #define __corei7 1
449// CHECK_COREI7_AVX_M64: #define __corei7__ 1
450// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
451// CHECK_COREI7_AVX_M64: #define __x86_64 1
452// CHECK_COREI7_AVX_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000453//
454// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000455// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000456// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000457// CHECK_CORE_AVX_I_M32: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000458// CHECK_CORE_AVX_I_M32: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000459// CHECK_CORE_AVX_I_M32: #define __MMX__ 1
460// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
461// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
462// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
463// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
464// CHECK_CORE_AVX_I_M32: #define __SSE__ 1
465// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000466// CHECK_CORE_AVX_I_M32: #define __corei7 1
467// CHECK_CORE_AVX_I_M32: #define __corei7__ 1
468// CHECK_CORE_AVX_I_M32: #define __i386 1
469// CHECK_CORE_AVX_I_M32: #define __i386__ 1
470// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
471// CHECK_CORE_AVX_I_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000472// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000473// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000474// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000475// CHECK_CORE_AVX_I_M64: #define __AES__ 1
Craig Topperfd936302012-04-26 07:31:30 +0000476// CHECK_CORE_AVX_I_M64: #define __AVX__ 1
Chandler Carruth49defe62011-09-28 10:36:46 +0000477// CHECK_CORE_AVX_I_M64: #define __MMX__ 1
478// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
479// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
480// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
481// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
482// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
483// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
484// CHECK_CORE_AVX_I_M64: #define __SSE__ 1
485// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000486// CHECK_CORE_AVX_I_M64: #define __amd64 1
487// CHECK_CORE_AVX_I_M64: #define __amd64__ 1
488// CHECK_CORE_AVX_I_M64: #define __corei7 1
489// CHECK_CORE_AVX_I_M64: #define __corei7__ 1
490// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
491// CHECK_CORE_AVX_I_M64: #define __x86_64 1
492// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000493//
494// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000495// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000496// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000497// CHECK_ATOM_M32: #define __MMX__ 1
498// CHECK_ATOM_M32: #define __SSE2__ 1
499// CHECK_ATOM_M32: #define __SSE3__ 1
500// CHECK_ATOM_M32: #define __SSE__ 1
501// CHECK_ATOM_M32: #define __SSSE3__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000502// CHECK_ATOM_M32: #define __atom 1
503// CHECK_ATOM_M32: #define __atom__ 1
504// CHECK_ATOM_M32: #define __i386 1
505// CHECK_ATOM_M32: #define __i386__ 1
506// CHECK_ATOM_M32: #define __tune_atom__ 1
507// CHECK_ATOM_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000508// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000509// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000510// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000511// CHECK_ATOM_M64: #define __MMX__ 1
512// CHECK_ATOM_M64: #define __SSE2_MATH__ 1
513// CHECK_ATOM_M64: #define __SSE2__ 1
514// CHECK_ATOM_M64: #define __SSE3__ 1
515// CHECK_ATOM_M64: #define __SSE_MATH__ 1
516// CHECK_ATOM_M64: #define __SSE__ 1
517// CHECK_ATOM_M64: #define __SSSE3__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000518// CHECK_ATOM_M64: #define __amd64 1
519// CHECK_ATOM_M64: #define __amd64__ 1
520// CHECK_ATOM_M64: #define __atom 1
521// CHECK_ATOM_M64: #define __atom__ 1
522// CHECK_ATOM_M64: #define __tune_atom__ 1
523// CHECK_ATOM_M64: #define __x86_64 1
524// CHECK_ATOM_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000525//
526// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000527// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000528// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000529// CHECK_GEODE_M32: #define __3dNOW_A__ 1
530// CHECK_GEODE_M32: #define __3dNOW__ 1
531// CHECK_GEODE_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000532// CHECK_GEODE_M32: #define __geode 1
533// CHECK_GEODE_M32: #define __geode__ 1
534// CHECK_GEODE_M32: #define __i386 1
535// CHECK_GEODE_M32: #define __i386__ 1
536// CHECK_GEODE_M32: #define __tune_geode__ 1
537// CHECK_GEODE_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000538// RUN: %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000539// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000540// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M64
541// CHECK_GEODE_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000542//
543// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000544// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000545// RUN: | FileCheck %s -check-prefix=CHECK_K6_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000546// CHECK_K6_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000547// CHECK_K6_M32: #define __i386 1
548// CHECK_K6_M32: #define __i386__ 1
549// CHECK_K6_M32: #define __k6 1
550// CHECK_K6_M32: #define __k6__ 1
551// CHECK_K6_M32: #define __tune_k6__ 1
552// CHECK_K6_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000553// RUN: %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000554// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000555// RUN: | FileCheck %s -check-prefix=CHECK_K6_M64
556// CHECK_K6_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000557//
558// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000559// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000560// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000561// CHECK_K6_2_M32: #define __3dNOW__ 1
562// CHECK_K6_2_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000563// CHECK_K6_2_M32: #define __i386 1
564// CHECK_K6_2_M32: #define __i386__ 1
565// CHECK_K6_2_M32: #define __k6 1
566// CHECK_K6_2_M32: #define __k6_2__ 1
567// CHECK_K6_2_M32: #define __k6__ 1
568// CHECK_K6_2_M32: #define __tune_k6_2__ 1
569// CHECK_K6_2_M32: #define __tune_k6__ 1
570// CHECK_K6_2_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000571// RUN: %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000572// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000573// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M64
574// CHECK_K6_2_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000575//
576// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000577// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000578// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000579// CHECK_K6_3_M32: #define __3dNOW__ 1
580// CHECK_K6_3_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000581// CHECK_K6_3_M32: #define __i386 1
582// CHECK_K6_3_M32: #define __i386__ 1
583// CHECK_K6_3_M32: #define __k6 1
584// CHECK_K6_3_M32: #define __k6_3__ 1
585// CHECK_K6_3_M32: #define __k6__ 1
586// CHECK_K6_3_M32: #define __tune_k6_3__ 1
587// CHECK_K6_3_M32: #define __tune_k6__ 1
588// CHECK_K6_3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000589// RUN: %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000590// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000591// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M64
592// CHECK_K6_3_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000593//
594// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000595// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000596// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000597// CHECK_ATHLON_M32: #define __3dNOW_A__ 1
598// CHECK_ATHLON_M32: #define __3dNOW__ 1
599// CHECK_ATHLON_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000600// CHECK_ATHLON_M32: #define __athlon 1
601// CHECK_ATHLON_M32: #define __athlon__ 1
602// CHECK_ATHLON_M32: #define __i386 1
603// CHECK_ATHLON_M32: #define __i386__ 1
604// CHECK_ATHLON_M32: #define __tune_athlon__ 1
605// CHECK_ATHLON_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000606// RUN: %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000607// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000608// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M64
609// CHECK_ATHLON_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000610//
611// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000612// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000613// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000614// CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
615// CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
616// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000617// CHECK_ATHLON_TBIRD_M32: #define __athlon 1
618// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
619// CHECK_ATHLON_TBIRD_M32: #define __i386 1
620// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
621// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
622// CHECK_ATHLON_TBIRD_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000623// RUN: %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000624// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000625// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
626// CHECK_ATHLON_TBIRD_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000627//
628// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000629// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000630// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000631// CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
632// CHECK_ATHLON_4_M32: #define __3dNOW__ 1
633// CHECK_ATHLON_4_M32: #define __MMX__ 1
634// CHECK_ATHLON_4_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000635// CHECK_ATHLON_4_M32: #define __athlon 1
636// CHECK_ATHLON_4_M32: #define __athlon__ 1
637// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
638// CHECK_ATHLON_4_M32: #define __i386 1
639// CHECK_ATHLON_4_M32: #define __i386__ 1
640// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000641// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000642// CHECK_ATHLON_4_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000643// RUN: %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000644// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000645// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
646// CHECK_ATHLON_4_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000647//
648// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000649// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000650// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000651// CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
652// CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
653// CHECK_ATHLON_XP_M32: #define __MMX__ 1
654// CHECK_ATHLON_XP_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000655// CHECK_ATHLON_XP_M32: #define __athlon 1
656// CHECK_ATHLON_XP_M32: #define __athlon__ 1
657// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
658// CHECK_ATHLON_XP_M32: #define __i386 1
659// CHECK_ATHLON_XP_M32: #define __i386__ 1
660// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000661// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000662// CHECK_ATHLON_XP_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000663// RUN: %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000664// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000665// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
666// CHECK_ATHLON_XP_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000667//
668// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000669// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000670// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000671// CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
672// CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
673// CHECK_ATHLON_MP_M32: #define __MMX__ 1
674// CHECK_ATHLON_MP_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000675// CHECK_ATHLON_MP_M32: #define __athlon 1
676// CHECK_ATHLON_MP_M32: #define __athlon__ 1
677// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
678// CHECK_ATHLON_MP_M32: #define __i386 1
679// CHECK_ATHLON_MP_M32: #define __i386__ 1
680// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
Chandler Carruth53bf4f92011-09-28 09:54:11 +0000681// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000682// CHECK_ATHLON_MP_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000683// RUN: %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000684// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000685// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
686// CHECK_ATHLON_MP_M64: error:
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000687//
688// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000689// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000690// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000691// CHECK_X86_64_M32: #define __MMX__ 1
692// CHECK_X86_64_M32: #define __SSE2__ 1
693// CHECK_X86_64_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000694// CHECK_X86_64_M32: #define __i386 1
695// CHECK_X86_64_M32: #define __i386__ 1
696// CHECK_X86_64_M32: #define __k8 1
697// CHECK_X86_64_M32: #define __k8__ 1
698// CHECK_X86_64_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000699// RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000700// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000701// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000702// CHECK_X86_64_M64: #define __MMX__ 1
703// CHECK_X86_64_M64: #define __SSE2_MATH__ 1
704// CHECK_X86_64_M64: #define __SSE2__ 1
705// CHECK_X86_64_M64: #define __SSE_MATH__ 1
706// CHECK_X86_64_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000707// CHECK_X86_64_M64: #define __amd64 1
708// CHECK_X86_64_M64: #define __amd64__ 1
709// CHECK_X86_64_M64: #define __k8 1
710// CHECK_X86_64_M64: #define __k8__ 1
711// CHECK_X86_64_M64: #define __x86_64 1
712// CHECK_X86_64_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000713//
714// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000715// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000716// RUN: | FileCheck %s -check-prefix=CHECK_K8_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000717// CHECK_K8_M32: #define __3dNOW_A__ 1
718// CHECK_K8_M32: #define __3dNOW__ 1
719// CHECK_K8_M32: #define __MMX__ 1
720// CHECK_K8_M32: #define __SSE2__ 1
721// CHECK_K8_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000722// CHECK_K8_M32: #define __i386 1
723// CHECK_K8_M32: #define __i386__ 1
724// CHECK_K8_M32: #define __k8 1
725// CHECK_K8_M32: #define __k8__ 1
726// CHECK_K8_M32: #define __tune_k8__ 1
727// CHECK_K8_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000728// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000729// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000730// RUN: | FileCheck %s -check-prefix=CHECK_K8_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000731// CHECK_K8_M64: #define __3dNOW_A__ 1
732// CHECK_K8_M64: #define __3dNOW__ 1
733// CHECK_K8_M64: #define __MMX__ 1
734// CHECK_K8_M64: #define __SSE2_MATH__ 1
735// CHECK_K8_M64: #define __SSE2__ 1
736// CHECK_K8_M64: #define __SSE_MATH__ 1
737// CHECK_K8_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000738// CHECK_K8_M64: #define __amd64 1
739// CHECK_K8_M64: #define __amd64__ 1
740// CHECK_K8_M64: #define __k8 1
741// CHECK_K8_M64: #define __k8__ 1
742// CHECK_K8_M64: #define __tune_k8__ 1
743// CHECK_K8_M64: #define __x86_64 1
744// CHECK_K8_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000745//
746// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000747// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000748// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000749// CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
750// CHECK_K8_SSE3_M32: #define __3dNOW__ 1
751// CHECK_K8_SSE3_M32: #define __MMX__ 1
752// CHECK_K8_SSE3_M32: #define __SSE2__ 1
753// CHECK_K8_SSE3_M32: #define __SSE3__ 1
754// CHECK_K8_SSE3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000755// CHECK_K8_SSE3_M32: #define __i386 1
756// CHECK_K8_SSE3_M32: #define __i386__ 1
757// CHECK_K8_SSE3_M32: #define __k8 1
758// CHECK_K8_SSE3_M32: #define __k8__ 1
759// CHECK_K8_SSE3_M32: #define __tune_k8__ 1
760// CHECK_K8_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000761// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000762// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000763// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000764// CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
765// CHECK_K8_SSE3_M64: #define __3dNOW__ 1
766// CHECK_K8_SSE3_M64: #define __MMX__ 1
767// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
768// CHECK_K8_SSE3_M64: #define __SSE2__ 1
769// CHECK_K8_SSE3_M64: #define __SSE3__ 1
770// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
771// CHECK_K8_SSE3_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000772// CHECK_K8_SSE3_M64: #define __amd64 1
773// CHECK_K8_SSE3_M64: #define __amd64__ 1
774// CHECK_K8_SSE3_M64: #define __k8 1
775// CHECK_K8_SSE3_M64: #define __k8__ 1
776// CHECK_K8_SSE3_M64: #define __tune_k8__ 1
777// CHECK_K8_SSE3_M64: #define __x86_64 1
778// CHECK_K8_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000779//
780// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000781// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000782// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000783// CHECK_OPTERON_M32: #define __3dNOW_A__ 1
784// CHECK_OPTERON_M32: #define __3dNOW__ 1
785// CHECK_OPTERON_M32: #define __MMX__ 1
786// CHECK_OPTERON_M32: #define __SSE2__ 1
787// CHECK_OPTERON_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000788// CHECK_OPTERON_M32: #define __i386 1
789// CHECK_OPTERON_M32: #define __i386__ 1
790// CHECK_OPTERON_M32: #define __k8 1
791// CHECK_OPTERON_M32: #define __k8__ 1
792// CHECK_OPTERON_M32: #define __tune_k8__ 1
793// CHECK_OPTERON_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000794// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000795// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000796// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000797// CHECK_OPTERON_M64: #define __3dNOW_A__ 1
798// CHECK_OPTERON_M64: #define __3dNOW__ 1
799// CHECK_OPTERON_M64: #define __MMX__ 1
800// CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
801// CHECK_OPTERON_M64: #define __SSE2__ 1
802// CHECK_OPTERON_M64: #define __SSE_MATH__ 1
803// CHECK_OPTERON_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000804// CHECK_OPTERON_M64: #define __amd64 1
805// CHECK_OPTERON_M64: #define __amd64__ 1
806// CHECK_OPTERON_M64: #define __k8 1
807// CHECK_OPTERON_M64: #define __k8__ 1
808// CHECK_OPTERON_M64: #define __tune_k8__ 1
809// CHECK_OPTERON_M64: #define __x86_64 1
810// CHECK_OPTERON_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000811//
812// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000813// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000814// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000815// CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
816// CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
817// CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
818// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
819// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
820// CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000821// CHECK_OPTERON_SSE3_M32: #define __i386 1
822// CHECK_OPTERON_SSE3_M32: #define __i386__ 1
823// CHECK_OPTERON_SSE3_M32: #define __k8 1
824// CHECK_OPTERON_SSE3_M32: #define __k8__ 1
825// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
826// CHECK_OPTERON_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000827// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000828// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000829// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000830// CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
831// CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
832// CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
833// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
834// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
835// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
836// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
837// CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000838// CHECK_OPTERON_SSE3_M64: #define __amd64 1
839// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
840// CHECK_OPTERON_SSE3_M64: #define __k8 1
841// CHECK_OPTERON_SSE3_M64: #define __k8__ 1
842// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
843// CHECK_OPTERON_SSE3_M64: #define __x86_64 1
844// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000845//
846// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000847// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000848// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000849// CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
850// CHECK_ATHLON64_M32: #define __3dNOW__ 1
851// CHECK_ATHLON64_M32: #define __MMX__ 1
852// CHECK_ATHLON64_M32: #define __SSE2__ 1
853// CHECK_ATHLON64_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000854// CHECK_ATHLON64_M32: #define __i386 1
855// CHECK_ATHLON64_M32: #define __i386__ 1
856// CHECK_ATHLON64_M32: #define __k8 1
857// CHECK_ATHLON64_M32: #define __k8__ 1
858// CHECK_ATHLON64_M32: #define __tune_k8__ 1
859// CHECK_ATHLON64_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000860// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000861// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000862// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000863// CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
864// CHECK_ATHLON64_M64: #define __3dNOW__ 1
865// CHECK_ATHLON64_M64: #define __MMX__ 1
866// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
867// CHECK_ATHLON64_M64: #define __SSE2__ 1
868// CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
869// CHECK_ATHLON64_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000870// CHECK_ATHLON64_M64: #define __amd64 1
871// CHECK_ATHLON64_M64: #define __amd64__ 1
872// CHECK_ATHLON64_M64: #define __k8 1
873// CHECK_ATHLON64_M64: #define __k8__ 1
874// CHECK_ATHLON64_M64: #define __tune_k8__ 1
875// CHECK_ATHLON64_M64: #define __x86_64 1
876// CHECK_ATHLON64_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000877//
878// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000879// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000880// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000881// CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
882// CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
883// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
884// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
885// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
886// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000887// CHECK_ATHLON64_SSE3_M32: #define __i386 1
888// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
889// CHECK_ATHLON64_SSE3_M32: #define __k8 1
890// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
891// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
892// CHECK_ATHLON64_SSE3_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000893// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000894// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000895// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000896// CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
897// CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
898// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
899// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
900// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
901// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
902// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
903// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000904// CHECK_ATHLON64_SSE3_M64: #define __amd64 1
905// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
906// CHECK_ATHLON64_SSE3_M64: #define __k8 1
907// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
908// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
909// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
910// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000911//
912// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000913// RUN: -target i386-unknown-linux \
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000914// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
Chandler Carruth49defe62011-09-28 10:36:46 +0000915// CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
916// CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
917// CHECK_ATHLON_FX_M32: #define __MMX__ 1
918// CHECK_ATHLON_FX_M32: #define __SSE2__ 1
919// CHECK_ATHLON_FX_M32: #define __SSE__ 1
Chandler Carruthf6cf1c22011-09-28 02:59:25 +0000920// CHECK_ATHLON_FX_M32: #define __i386 1
921// CHECK_ATHLON_FX_M32: #define __i386__ 1
922// CHECK_ATHLON_FX_M32: #define __k8 1
923// CHECK_ATHLON_FX_M32: #define __k8__ 1
924// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
925// CHECK_ATHLON_FX_M32: #define i386 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000926// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyan50e8a272012-05-09 18:49:52 +0000927// RUN: -target i386-unknown-linux \
Chandler Carruth26a39142011-09-28 09:45:08 +0000928// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
Chandler Carruth49defe62011-09-28 10:36:46 +0000929// CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
930// CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
931// CHECK_ATHLON_FX_M64: #define __MMX__ 1
932// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
933// CHECK_ATHLON_FX_M64: #define __SSE2__ 1
934// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
935// CHECK_ATHLON_FX_M64: #define __SSE__ 1
Chandler Carruth26a39142011-09-28 09:45:08 +0000936// CHECK_ATHLON_FX_M64: #define __amd64 1
937// CHECK_ATHLON_FX_M64: #define __amd64__ 1
938// CHECK_ATHLON_FX_M64: #define __k8 1
939// CHECK_ATHLON_FX_M64: #define __k8__ 1
940// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
941// CHECK_ATHLON_FX_M64: #define __x86_64 1
942// CHECK_ATHLON_FX_M64: #define __x86_64__ 1
Chandler Carruthf1aabcf2011-09-28 10:17:41 +0000943//
944// End X86/GCC/Linux tests ------------------