blob: 45e317a3d8c49b2afbcc926d70c8366fea1f2042 [file] [log] [blame]
Chandler Carruth5ac1e8e2011-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 Carruthe83c3d92011-09-28 10:17:41 +00004// Begin X86/GCC/Linux tests ----------------
5//
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00006// RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00007// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +000013// RUN: not %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000014// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000015// RUN: | FileCheck %s -check-prefix=CHECK_I386_M64
16// CHECK_I386_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000017//
18// RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000019// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +000027// RUN: not %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000028// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000029// RUN: | FileCheck %s -check-prefix=CHECK_I486_M64
30// CHECK_I486_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000031//
32// RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000033// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +000044// RUN: not %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000045// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000046// RUN: | FileCheck %s -check-prefix=CHECK_I586_M64
47// CHECK_I586_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000048//
49// RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000050// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +000061// RUN: not %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000062// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000063// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M64
64// CHECK_PENTIUM_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000065//
66// RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000067// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000068// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +000069// CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +000081// RUN: not %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000082// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000083// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
84// CHECK_PENTIUM_MMX_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000085//
86// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000087// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000088// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +000089// CHECK_WINCHIP_C6_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +000096// RUN: not %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000097// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000098// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
99// CHECK_WINCHIP_C6_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000100//
101// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000102// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000103// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000104// CHECK_WINCHIP2_M32: #define __3dNOW__ 1
105// CHECK_WINCHIP2_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000112// RUN: not %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000113// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000114// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
115// CHECK_WINCHIP2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000116//
117// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000118// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000119// RUN: | FileCheck %s -check-prefix=CHECK_C3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000120// CHECK_C3_M32: #define __3dNOW__ 1
121// CHECK_C3_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000128// RUN: not %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000129// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000130// RUN: | FileCheck %s -check-prefix=CHECK_C3_M64
131// CHECK_C3_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000132//
133// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000134// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000135// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000136// CHECK_C3_2_M32: #define __MMX__ 1
137// CHECK_C3_2_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000148// RUN: not %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000149// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000150// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M64
151// CHECK_C3_2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000152//
153// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000154// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000163// RUN: not %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000164// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000165// RUN: | FileCheck %s -check-prefix=CHECK_I686_M64
166// CHECK_I686_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000167//
168// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000169// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000180// RUN: not %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000181// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000182// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
183// CHECK_PENTIUMPRO_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000184//
185// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000186// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000187// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000188// CHECK_PENTIUM2_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000199// RUN: not %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000200// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000201// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
202// CHECK_PENTIUM2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000203//
204// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000205// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000206// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000207// CHECK_PENTIUM3_M32: #define __MMX__ 1
208// CHECK_PENTIUM3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000220// RUN: not %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000221// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000222// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
223// CHECK_PENTIUM3_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000224//
225// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000226// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000227// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000228// CHECK_PENTIUM3M_M32: #define __MMX__ 1
229// CHECK_PENTIUM3M_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000239// RUN: not %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000240// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000241// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
242// CHECK_PENTIUM3M_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000243//
244// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000245// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000246// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
Chandler Carruthcd99bad2011-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 Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000259// RUN: not %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000260// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000261// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
262// CHECK_PENTIUM_M_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000263//
264// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000265// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000266// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
Chandler Carruthcd99bad2011-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 Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000276// RUN: not %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000277// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000278// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
279// CHECK_PENTIUM4_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000280//
281// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000282// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000283// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
Chandler Carruthcd99bad2011-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 Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000293// RUN: not %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000294// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000295// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
296// CHECK_PENTIUM4M_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000297//
298// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000299// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000300// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
Chandler Carruthcd99bad2011-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 Carruth5ac1e8e2011-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
Rafael Espindola925213b2013-07-04 16:16:58 +0000311// RUN: not %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000312// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000313// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
314// CHECK_PRESCOTT_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000315//
316// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000317// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000318// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M32
Chandler Carruthcd99bad2011-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 Carruth5ac1e8e2011-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 Carruth6e20c2b2011-09-28 09:45:08 +0000329// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000330// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000331// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M64
Chandler Carruthcd99bad2011-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 Carruth6e20c2b2011-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 Carruth5ac1e8e2011-09-28 02:59:25 +0000345//
346// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000347// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000348// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M32
Chandler Carruthcd99bad2011-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 Carruth5ac1e8e2011-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 Carruth6e20c2b2011-09-28 09:45:08 +0000360// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000361// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000362// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M64
Chandler Carruthcd99bad2011-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 Carruth6e20c2b2011-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 Carruth5ac1e8e2011-09-28 02:59:25 +0000377//
378// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000379// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000380// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000381// CHECK_COREI7_M32: #define __MMX__ 1
Craig Topperb644c972012-06-03 21:49:41 +0000382// CHECK_COREI7_M32: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000383// CHECK_COREI7_M32: #define __SSE2__ 1
384// CHECK_COREI7_M32: #define __SSE3__ 1
385// CHECK_COREI7_M32: #define __SSE4_1__ 1
386// CHECK_COREI7_M32: #define __SSE4_2__ 1
387// CHECK_COREI7_M32: #define __SSE__ 1
388// CHECK_COREI7_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000389// CHECK_COREI7_M32: #define __corei7 1
390// CHECK_COREI7_M32: #define __corei7__ 1
391// CHECK_COREI7_M32: #define __i386 1
392// CHECK_COREI7_M32: #define __i386__ 1
393// CHECK_COREI7_M32: #define __tune_corei7__ 1
394// CHECK_COREI7_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000395// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000396// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000397// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000398// CHECK_COREI7_M64: #define __MMX__ 1
Craig Topperb644c972012-06-03 21:49:41 +0000399// CHECK_COREI7_M64: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000400// CHECK_COREI7_M64: #define __SSE2_MATH__ 1
401// CHECK_COREI7_M64: #define __SSE2__ 1
402// CHECK_COREI7_M64: #define __SSE3__ 1
403// CHECK_COREI7_M64: #define __SSE4_1__ 1
404// CHECK_COREI7_M64: #define __SSE4_2__ 1
405// CHECK_COREI7_M64: #define __SSE_MATH__ 1
406// CHECK_COREI7_M64: #define __SSE__ 1
407// CHECK_COREI7_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000408// CHECK_COREI7_M64: #define __amd64 1
409// CHECK_COREI7_M64: #define __amd64__ 1
410// CHECK_COREI7_M64: #define __corei7 1
411// CHECK_COREI7_M64: #define __corei7__ 1
412// CHECK_COREI7_M64: #define __tune_corei7__ 1
413// CHECK_COREI7_M64: #define __x86_64 1
414// CHECK_COREI7_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000415//
416// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000417// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000418// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000419// CHECK_COREI7_AVX_M32: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000420// CHECK_COREI7_AVX_M32: #define __AVX__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000421// CHECK_COREI7_AVX_M32: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000422// CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000423// CHECK_COREI7_AVX_M32-NOT: __RDRND__
Craig Topperb644c972012-06-03 21:49:41 +0000424// CHECK_COREI7_AVX_M32: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000425// CHECK_COREI7_AVX_M32: #define __SSE2__ 1
426// CHECK_COREI7_AVX_M32: #define __SSE3__ 1
427// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
428// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
429// CHECK_COREI7_AVX_M32: #define __SSE__ 1
430// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000431// CHECK_COREI7_AVX_M32: #define __corei7 1
432// CHECK_COREI7_AVX_M32: #define __corei7__ 1
433// CHECK_COREI7_AVX_M32: #define __i386 1
434// CHECK_COREI7_AVX_M32: #define __i386__ 1
435// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
436// CHECK_COREI7_AVX_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000437// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000438// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000439// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000440// CHECK_COREI7_AVX_M64: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000441// CHECK_COREI7_AVX_M64: #define __AVX__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000442// CHECK_COREI7_AVX_M64: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000443// CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000444// CHECK_COREI7_AVX_M64-NOT: __RDRND__
Craig Topperb644c972012-06-03 21:49:41 +0000445// CHECK_COREI7_AVX_M64: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000446// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
447// CHECK_COREI7_AVX_M64: #define __SSE2__ 1
448// CHECK_COREI7_AVX_M64: #define __SSE3__ 1
449// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
450// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
451// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
452// CHECK_COREI7_AVX_M64: #define __SSE__ 1
453// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000454// CHECK_COREI7_AVX_M64: #define __amd64 1
455// CHECK_COREI7_AVX_M64: #define __amd64__ 1
456// CHECK_COREI7_AVX_M64: #define __corei7 1
457// CHECK_COREI7_AVX_M64: #define __corei7__ 1
458// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
459// CHECK_COREI7_AVX_M64: #define __x86_64 1
460// CHECK_COREI7_AVX_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000461//
462// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000463// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000464// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000465// CHECK_CORE_AVX_I_M32: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000466// CHECK_CORE_AVX_I_M32: #define __AVX__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000467// CHECK_CORE_AVX_I_M32: #define __F16C__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000468// CHECK_CORE_AVX_I_M32: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000469// CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000470// CHECK_CORE_AVX_I_M32: #define __RDRND__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000471// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
472// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
473// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
474// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
475// CHECK_CORE_AVX_I_M32: #define __SSE__ 1
476// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000477// CHECK_CORE_AVX_I_M32: #define __corei7 1
478// CHECK_CORE_AVX_I_M32: #define __corei7__ 1
479// CHECK_CORE_AVX_I_M32: #define __i386 1
480// CHECK_CORE_AVX_I_M32: #define __i386__ 1
481// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
482// CHECK_CORE_AVX_I_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000483// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000484// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000485// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000486// CHECK_CORE_AVX_I_M64: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000487// CHECK_CORE_AVX_I_M64: #define __AVX__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000488// CHECK_CORE_AVX_I_M64: #define __F16C__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000489// CHECK_CORE_AVX_I_M64: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000490// CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000491// CHECK_CORE_AVX_I_M64: #define __RDRND__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000492// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
493// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
494// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
495// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
496// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
497// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
498// CHECK_CORE_AVX_I_M64: #define __SSE__ 1
499// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000500// CHECK_CORE_AVX_I_M64: #define __amd64 1
501// CHECK_CORE_AVX_I_M64: #define __amd64__ 1
502// CHECK_CORE_AVX_I_M64: #define __corei7 1
503// CHECK_CORE_AVX_I_M64: #define __corei7__ 1
504// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
505// CHECK_CORE_AVX_I_M64: #define __x86_64 1
506// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000507//
Craig Topperbba778b2012-06-03 21:46:30 +0000508// RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \
509// RUN: -target i386-unknown-linux \
510// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M32
511// CHECK_CORE_AVX2_M32: #define __AES__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000512// CHECK_CORE_AVX2_M32: #define __AVX2__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000513// CHECK_CORE_AVX2_M32: #define __AVX__ 1
514// CHECK_CORE_AVX2_M32: #define __BMI2__ 1
515// CHECK_CORE_AVX2_M32: #define __BMI__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000516// CHECK_CORE_AVX2_M32: #define __F16C__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000517// CHECK_CORE_AVX2_M32: #define __FMA__ 1
518// CHECK_CORE_AVX2_M32: #define __LZCNT__ 1
519// CHECK_CORE_AVX2_M32: #define __MMX__ 1
520// CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1
521// CHECK_CORE_AVX2_M32: #define __POPCNT__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000522// CHECK_CORE_AVX2_M32: #define __RDRND__ 1
Michael Liao625a8752012-11-10 05:17:46 +0000523// CHECK_CORE_AVX2_M32: #define __RTM__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000524// CHECK_CORE_AVX2_M32: #define __SSE2__ 1
525// CHECK_CORE_AVX2_M32: #define __SSE3__ 1
526// CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1
527// CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1
528// CHECK_CORE_AVX2_M32: #define __SSE__ 1
529// CHECK_CORE_AVX2_M32: #define __SSSE3__ 1
530// CHECK_CORE_AVX2_M32: #define __corei7 1
531// CHECK_CORE_AVX2_M32: #define __corei7__ 1
532// CHECK_CORE_AVX2_M32: #define __i386 1
533// CHECK_CORE_AVX2_M32: #define __i386__ 1
534// CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1
535// CHECK_CORE_AVX2_M32: #define i386 1
536// RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \
537// RUN: -target i386-unknown-linux \
538// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M64
539// CHECK_CORE_AVX2_M64: #define __AES__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000540// CHECK_CORE_AVX2_M64: #define __AVX2__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000541// CHECK_CORE_AVX2_M64: #define __AVX__ 1
542// CHECK_CORE_AVX2_M64: #define __BMI2__ 1
543// CHECK_CORE_AVX2_M64: #define __BMI__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000544// CHECK_CORE_AVX2_M64: #define __F16C__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000545// CHECK_CORE_AVX2_M64: #define __FMA__ 1
546// CHECK_CORE_AVX2_M64: #define __LZCNT__ 1
547// CHECK_CORE_AVX2_M64: #define __MMX__ 1
548// CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1
549// CHECK_CORE_AVX2_M64: #define __POPCNT__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000550// CHECK_CORE_AVX2_M64: #define __RDRND__ 1
Michael Liao625a8752012-11-10 05:17:46 +0000551// CHECK_CORE_AVX2_M64: #define __RTM__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000552// CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1
553// CHECK_CORE_AVX2_M64: #define __SSE2__ 1
554// CHECK_CORE_AVX2_M64: #define __SSE3__ 1
555// CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1
556// CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1
557// CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1
558// CHECK_CORE_AVX2_M64: #define __SSE__ 1
559// CHECK_CORE_AVX2_M64: #define __SSSE3__ 1
560// CHECK_CORE_AVX2_M64: #define __amd64 1
561// CHECK_CORE_AVX2_M64: #define __amd64__ 1
562// CHECK_CORE_AVX2_M64: #define __corei7 1
563// CHECK_CORE_AVX2_M64: #define __corei7__ 1
564// CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1
565// CHECK_CORE_AVX2_M64: #define __x86_64 1
566// CHECK_CORE_AVX2_M64: #define __x86_64__ 1
567//
Craig Topper449314e2013-08-20 07:09:39 +0000568// RUN: %clang -march=knl -m32 -E -dM %s -o - 2>&1 \
569// RUN: -target i386-unknown-linux \
570// RUN: | FileCheck %s -check-prefix=CHECK_KNL_M32
571// CHECK_KNL_M32: #define __AES__ 1
572// CHECK_KNL_M32: #define __AVX2__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000573// CHECK_KNL_M32: #define __AVX512CD__ 1
574// CHECK_KNL_M32: #define __AVX512ER__ 1
Craig Topperaf0ca632013-08-20 07:52:37 +0000575// CHECK_KNL_M32: #define __AVX512F__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000576// CHECK_KNL_M32: #define __AVX512PF__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000577// CHECK_KNL_M32: #define __AVX__ 1
578// CHECK_KNL_M32: #define __BMI2__ 1
579// CHECK_KNL_M32: #define __BMI__ 1
580// CHECK_KNL_M32: #define __F16C__ 1
581// CHECK_KNL_M32: #define __FMA__ 1
582// CHECK_KNL_M32: #define __LZCNT__ 1
583// CHECK_KNL_M32: #define __MMX__ 1
584// CHECK_KNL_M32: #define __PCLMUL__ 1
585// CHECK_KNL_M32: #define __POPCNT__ 1
586// CHECK_KNL_M32: #define __RDRND__ 1
587// CHECK_KNL_M32: #define __RTM__ 1
588// CHECK_KNL_M32: #define __SSE2__ 1
589// CHECK_KNL_M32: #define __SSE3__ 1
590// CHECK_KNL_M32: #define __SSE4_1__ 1
591// CHECK_KNL_M32: #define __SSE4_2__ 1
592// CHECK_KNL_M32: #define __SSE__ 1
593// CHECK_KNL_M32: #define __SSSE3__ 1
594// CHECK_KNL_M32: #define __i386 1
595// CHECK_KNL_M32: #define __i386__ 1
596// CHECK_KNL_M32: #define __knl 1
597// CHECK_KNL_M32: #define __knl__ 1
598// CHECK_KNL_M32: #define __tune_knl__ 1
599// CHECK_KNL_M32: #define i386 1
600// RUN: %clang -march=knl -m64 -E -dM %s -o - 2>&1 \
601// RUN: -target i386-unknown-linux \
602// RUN: | FileCheck %s -check-prefix=CHECK_KNL_M64
603// CHECK_KNL_M64: #define __AES__ 1
604// CHECK_KNL_M64: #define __AVX2__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000605// CHECK_KNL_M64: #define __AVX512CD__ 1
606// CHECK_KNL_M64: #define __AVX512ER__ 1
Craig Topperaf0ca632013-08-20 07:52:37 +0000607// CHECK_KNL_M64: #define __AVX512F__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000608// CHECK_KNL_M64: #define __AVX512PF__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000609// CHECK_KNL_M64: #define __AVX__ 1
610// CHECK_KNL_M64: #define __BMI2__ 1
611// CHECK_KNL_M64: #define __BMI__ 1
612// CHECK_KNL_M64: #define __F16C__ 1
613// CHECK_KNL_M64: #define __FMA__ 1
614// CHECK_KNL_M64: #define __LZCNT__ 1
615// CHECK_KNL_M64: #define __MMX__ 1
616// CHECK_KNL_M64: #define __PCLMUL__ 1
617// CHECK_KNL_M64: #define __POPCNT__ 1
618// CHECK_KNL_M64: #define __RDRND__ 1
619// CHECK_KNL_M64: #define __RTM__ 1
620// CHECK_KNL_M64: #define __SSE2_MATH__ 1
621// CHECK_KNL_M64: #define __SSE2__ 1
622// CHECK_KNL_M64: #define __SSE3__ 1
623// CHECK_KNL_M64: #define __SSE4_1__ 1
624// CHECK_KNL_M64: #define __SSE4_2__ 1
625// CHECK_KNL_M64: #define __SSE_MATH__ 1
626// CHECK_KNL_M64: #define __SSE__ 1
627// CHECK_KNL_M64: #define __SSSE3__ 1
628// CHECK_KNL_M64: #define __amd64 1
629// CHECK_KNL_M64: #define __amd64__ 1
630// CHECK_KNL_M64: #define __knl 1
631// CHECK_KNL_M64: #define __knl__ 1
632// CHECK_KNL_M64: #define __tune_knl__ 1
633// CHECK_KNL_M64: #define __x86_64 1
634// CHECK_KNL_M64: #define __x86_64__ 1
635//
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000636// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000637// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000638// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000639// CHECK_ATOM_M32: #define __MMX__ 1
640// CHECK_ATOM_M32: #define __SSE2__ 1
641// CHECK_ATOM_M32: #define __SSE3__ 1
642// CHECK_ATOM_M32: #define __SSE__ 1
643// CHECK_ATOM_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000644// CHECK_ATOM_M32: #define __atom 1
645// CHECK_ATOM_M32: #define __atom__ 1
646// CHECK_ATOM_M32: #define __i386 1
647// CHECK_ATOM_M32: #define __i386__ 1
648// CHECK_ATOM_M32: #define __tune_atom__ 1
649// CHECK_ATOM_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000650// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000651// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000652// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000653// CHECK_ATOM_M64: #define __MMX__ 1
654// CHECK_ATOM_M64: #define __SSE2_MATH__ 1
655// CHECK_ATOM_M64: #define __SSE2__ 1
656// CHECK_ATOM_M64: #define __SSE3__ 1
657// CHECK_ATOM_M64: #define __SSE_MATH__ 1
658// CHECK_ATOM_M64: #define __SSE__ 1
659// CHECK_ATOM_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000660// CHECK_ATOM_M64: #define __amd64 1
661// CHECK_ATOM_M64: #define __amd64__ 1
662// CHECK_ATOM_M64: #define __atom 1
663// CHECK_ATOM_M64: #define __atom__ 1
664// CHECK_ATOM_M64: #define __tune_atom__ 1
665// CHECK_ATOM_M64: #define __x86_64 1
666// CHECK_ATOM_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000667//
Benjamin Kramerffecc842013-08-30 14:05:34 +0000668// RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \
669// RUN: -target i386-unknown-linux \
670// RUN: | FileCheck %s -check-prefix=CHECK_SLM_M32
671// CHECK_SLM_M32: #define __MMX__ 1
672// CHECK_SLM_M32: #define __SSE2__ 1
673// CHECK_SLM_M32: #define __SSE3__ 1
674// CHECK_SLM_M32: #define __SSE4_1__ 1
675// CHECK_SLM_M32: #define __SSE4_2__ 1
676// CHECK_SLM_M32: #define __SSE__ 1
677// CHECK_SLM_M32: #define __SSSE3__ 1
678// CHECK_SLM_M32: #define __i386 1
679// CHECK_SLM_M32: #define __i386__ 1
680// CHECK_SLM_M32: #define __slm 1
681// CHECK_SLM_M32: #define __slm__ 1
682// CHECK_SLM_M32: #define __tune_slm__ 1
683// CHECK_SLM_M32: #define i386 1
684// RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \
685// RUN: -target i386-unknown-linux \
686// RUN: | FileCheck %s -check-prefix=CHECK_SLM_M64
687// CHECK_SLM_M64: #define __MMX__ 1
688// CHECK_SLM_M64: #define __SSE2_MATH__ 1
689// CHECK_SLM_M64: #define __SSE2__ 1
690// CHECK_SLM_M64: #define __SSE3__ 1
691// CHECK_SLM_M64: #define __SSE4_1__ 1
692// CHECK_SLM_M64: #define __SSE4_2__ 1
693// CHECK_SLM_M64: #define __SSE_MATH__ 1
694// CHECK_SLM_M64: #define __SSE__ 1
695// CHECK_SLM_M64: #define __SSSE3__ 1
696// CHECK_SLM_M64: #define __amd64 1
697// CHECK_SLM_M64: #define __amd64__ 1
698// CHECK_SLM_M64: #define __slm 1
699// CHECK_SLM_M64: #define __slm__ 1
700// CHECK_SLM_M64: #define __tune_slm__ 1
701// CHECK_SLM_M64: #define __x86_64 1
702// CHECK_SLM_M64: #define __x86_64__ 1
703//
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000704// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000705// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000706// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000707// CHECK_GEODE_M32: #define __3dNOW_A__ 1
708// CHECK_GEODE_M32: #define __3dNOW__ 1
709// CHECK_GEODE_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000710// CHECK_GEODE_M32: #define __geode 1
711// CHECK_GEODE_M32: #define __geode__ 1
712// CHECK_GEODE_M32: #define __i386 1
713// CHECK_GEODE_M32: #define __i386__ 1
714// CHECK_GEODE_M32: #define __tune_geode__ 1
715// CHECK_GEODE_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000716// RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000717// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000718// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M64
719// CHECK_GEODE_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000720//
721// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000722// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000723// RUN: | FileCheck %s -check-prefix=CHECK_K6_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000724// CHECK_K6_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000725// CHECK_K6_M32: #define __i386 1
726// CHECK_K6_M32: #define __i386__ 1
727// CHECK_K6_M32: #define __k6 1
728// CHECK_K6_M32: #define __k6__ 1
729// CHECK_K6_M32: #define __tune_k6__ 1
730// CHECK_K6_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000731// RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000732// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000733// RUN: | FileCheck %s -check-prefix=CHECK_K6_M64
734// CHECK_K6_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000735//
736// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000737// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000738// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000739// CHECK_K6_2_M32: #define __3dNOW__ 1
740// CHECK_K6_2_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000741// CHECK_K6_2_M32: #define __i386 1
742// CHECK_K6_2_M32: #define __i386__ 1
743// CHECK_K6_2_M32: #define __k6 1
744// CHECK_K6_2_M32: #define __k6_2__ 1
745// CHECK_K6_2_M32: #define __k6__ 1
746// CHECK_K6_2_M32: #define __tune_k6_2__ 1
747// CHECK_K6_2_M32: #define __tune_k6__ 1
748// CHECK_K6_2_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000749// RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000750// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000751// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M64
752// CHECK_K6_2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000753//
754// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000755// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000756// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000757// CHECK_K6_3_M32: #define __3dNOW__ 1
758// CHECK_K6_3_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000759// CHECK_K6_3_M32: #define __i386 1
760// CHECK_K6_3_M32: #define __i386__ 1
761// CHECK_K6_3_M32: #define __k6 1
762// CHECK_K6_3_M32: #define __k6_3__ 1
763// CHECK_K6_3_M32: #define __k6__ 1
764// CHECK_K6_3_M32: #define __tune_k6_3__ 1
765// CHECK_K6_3_M32: #define __tune_k6__ 1
766// CHECK_K6_3_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000767// RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000768// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000769// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M64
770// CHECK_K6_3_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000771//
772// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000773// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000774// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000775// CHECK_ATHLON_M32: #define __3dNOW_A__ 1
776// CHECK_ATHLON_M32: #define __3dNOW__ 1
777// CHECK_ATHLON_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000778// CHECK_ATHLON_M32: #define __athlon 1
779// CHECK_ATHLON_M32: #define __athlon__ 1
780// CHECK_ATHLON_M32: #define __i386 1
781// CHECK_ATHLON_M32: #define __i386__ 1
782// CHECK_ATHLON_M32: #define __tune_athlon__ 1
783// CHECK_ATHLON_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000784// RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000785// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000786// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M64
787// CHECK_ATHLON_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000788//
789// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000790// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000791// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000792// CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
793// CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
794// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000795// CHECK_ATHLON_TBIRD_M32: #define __athlon 1
796// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
797// CHECK_ATHLON_TBIRD_M32: #define __i386 1
798// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
799// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
800// CHECK_ATHLON_TBIRD_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000801// RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000802// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000803// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
804// CHECK_ATHLON_TBIRD_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000805//
806// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000807// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000808// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000809// CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
810// CHECK_ATHLON_4_M32: #define __3dNOW__ 1
811// CHECK_ATHLON_4_M32: #define __MMX__ 1
812// CHECK_ATHLON_4_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000813// CHECK_ATHLON_4_M32: #define __athlon 1
814// CHECK_ATHLON_4_M32: #define __athlon__ 1
815// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
816// CHECK_ATHLON_4_M32: #define __i386 1
817// CHECK_ATHLON_4_M32: #define __i386__ 1
818// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
Chandler Carruth5d0feef2011-09-28 09:54:11 +0000819// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000820// CHECK_ATHLON_4_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000821// RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000822// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000823// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
824// CHECK_ATHLON_4_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000825//
826// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000827// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000828// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000829// CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
830// CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
831// CHECK_ATHLON_XP_M32: #define __MMX__ 1
832// CHECK_ATHLON_XP_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000833// CHECK_ATHLON_XP_M32: #define __athlon 1
834// CHECK_ATHLON_XP_M32: #define __athlon__ 1
835// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
836// CHECK_ATHLON_XP_M32: #define __i386 1
837// CHECK_ATHLON_XP_M32: #define __i386__ 1
838// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
Chandler Carruth5d0feef2011-09-28 09:54:11 +0000839// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000840// CHECK_ATHLON_XP_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000841// RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000842// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000843// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
844// CHECK_ATHLON_XP_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000845//
846// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000847// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000848// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000849// CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
850// CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
851// CHECK_ATHLON_MP_M32: #define __MMX__ 1
852// CHECK_ATHLON_MP_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000853// CHECK_ATHLON_MP_M32: #define __athlon 1
854// CHECK_ATHLON_MP_M32: #define __athlon__ 1
855// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
856// CHECK_ATHLON_MP_M32: #define __i386 1
857// CHECK_ATHLON_MP_M32: #define __i386__ 1
858// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
Chandler Carruth5d0feef2011-09-28 09:54:11 +0000859// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000860// CHECK_ATHLON_MP_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000861// RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000862// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000863// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
864// CHECK_ATHLON_MP_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000865//
866// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000867// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000868// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000869// CHECK_X86_64_M32: #define __MMX__ 1
870// CHECK_X86_64_M32: #define __SSE2__ 1
871// CHECK_X86_64_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000872// CHECK_X86_64_M32: #define __i386 1
873// CHECK_X86_64_M32: #define __i386__ 1
874// CHECK_X86_64_M32: #define __k8 1
875// CHECK_X86_64_M32: #define __k8__ 1
876// CHECK_X86_64_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000877// RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000878// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000879// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000880// CHECK_X86_64_M64: #define __MMX__ 1
881// CHECK_X86_64_M64: #define __SSE2_MATH__ 1
882// CHECK_X86_64_M64: #define __SSE2__ 1
883// CHECK_X86_64_M64: #define __SSE_MATH__ 1
884// CHECK_X86_64_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000885// CHECK_X86_64_M64: #define __amd64 1
886// CHECK_X86_64_M64: #define __amd64__ 1
887// CHECK_X86_64_M64: #define __k8 1
888// CHECK_X86_64_M64: #define __k8__ 1
889// CHECK_X86_64_M64: #define __x86_64 1
890// CHECK_X86_64_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000891//
892// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000893// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000894// RUN: | FileCheck %s -check-prefix=CHECK_K8_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000895// CHECK_K8_M32: #define __3dNOW_A__ 1
896// CHECK_K8_M32: #define __3dNOW__ 1
897// CHECK_K8_M32: #define __MMX__ 1
898// CHECK_K8_M32: #define __SSE2__ 1
899// CHECK_K8_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000900// CHECK_K8_M32: #define __i386 1
901// CHECK_K8_M32: #define __i386__ 1
902// CHECK_K8_M32: #define __k8 1
903// CHECK_K8_M32: #define __k8__ 1
904// CHECK_K8_M32: #define __tune_k8__ 1
905// CHECK_K8_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000906// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000907// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000908// RUN: | FileCheck %s -check-prefix=CHECK_K8_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000909// CHECK_K8_M64: #define __3dNOW_A__ 1
910// CHECK_K8_M64: #define __3dNOW__ 1
911// CHECK_K8_M64: #define __MMX__ 1
912// CHECK_K8_M64: #define __SSE2_MATH__ 1
913// CHECK_K8_M64: #define __SSE2__ 1
914// CHECK_K8_M64: #define __SSE_MATH__ 1
915// CHECK_K8_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000916// CHECK_K8_M64: #define __amd64 1
917// CHECK_K8_M64: #define __amd64__ 1
918// CHECK_K8_M64: #define __k8 1
919// CHECK_K8_M64: #define __k8__ 1
920// CHECK_K8_M64: #define __tune_k8__ 1
921// CHECK_K8_M64: #define __x86_64 1
922// CHECK_K8_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000923//
924// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000925// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000926// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000927// CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
928// CHECK_K8_SSE3_M32: #define __3dNOW__ 1
929// CHECK_K8_SSE3_M32: #define __MMX__ 1
930// CHECK_K8_SSE3_M32: #define __SSE2__ 1
931// CHECK_K8_SSE3_M32: #define __SSE3__ 1
932// CHECK_K8_SSE3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000933// CHECK_K8_SSE3_M32: #define __i386 1
934// CHECK_K8_SSE3_M32: #define __i386__ 1
935// CHECK_K8_SSE3_M32: #define __k8 1
936// CHECK_K8_SSE3_M32: #define __k8__ 1
937// CHECK_K8_SSE3_M32: #define __tune_k8__ 1
938// CHECK_K8_SSE3_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000939// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000940// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000941// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000942// CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
943// CHECK_K8_SSE3_M64: #define __3dNOW__ 1
944// CHECK_K8_SSE3_M64: #define __MMX__ 1
945// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
946// CHECK_K8_SSE3_M64: #define __SSE2__ 1
947// CHECK_K8_SSE3_M64: #define __SSE3__ 1
948// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
949// CHECK_K8_SSE3_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000950// CHECK_K8_SSE3_M64: #define __amd64 1
951// CHECK_K8_SSE3_M64: #define __amd64__ 1
952// CHECK_K8_SSE3_M64: #define __k8 1
953// CHECK_K8_SSE3_M64: #define __k8__ 1
954// CHECK_K8_SSE3_M64: #define __tune_k8__ 1
955// CHECK_K8_SSE3_M64: #define __x86_64 1
956// CHECK_K8_SSE3_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000957//
958// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000959// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000960// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000961// CHECK_OPTERON_M32: #define __3dNOW_A__ 1
962// CHECK_OPTERON_M32: #define __3dNOW__ 1
963// CHECK_OPTERON_M32: #define __MMX__ 1
964// CHECK_OPTERON_M32: #define __SSE2__ 1
965// CHECK_OPTERON_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000966// CHECK_OPTERON_M32: #define __i386 1
967// CHECK_OPTERON_M32: #define __i386__ 1
968// CHECK_OPTERON_M32: #define __k8 1
969// CHECK_OPTERON_M32: #define __k8__ 1
970// CHECK_OPTERON_M32: #define __tune_k8__ 1
971// CHECK_OPTERON_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000972// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000973// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000974// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000975// CHECK_OPTERON_M64: #define __3dNOW_A__ 1
976// CHECK_OPTERON_M64: #define __3dNOW__ 1
977// CHECK_OPTERON_M64: #define __MMX__ 1
978// CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
979// CHECK_OPTERON_M64: #define __SSE2__ 1
980// CHECK_OPTERON_M64: #define __SSE_MATH__ 1
981// CHECK_OPTERON_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000982// CHECK_OPTERON_M64: #define __amd64 1
983// CHECK_OPTERON_M64: #define __amd64__ 1
984// CHECK_OPTERON_M64: #define __k8 1
985// CHECK_OPTERON_M64: #define __k8__ 1
986// CHECK_OPTERON_M64: #define __tune_k8__ 1
987// CHECK_OPTERON_M64: #define __x86_64 1
988// CHECK_OPTERON_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000989//
990// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000991// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000992// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000993// CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
994// CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
995// CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
996// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
997// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
998// CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000999// CHECK_OPTERON_SSE3_M32: #define __i386 1
1000// CHECK_OPTERON_SSE3_M32: #define __i386__ 1
1001// CHECK_OPTERON_SSE3_M32: #define __k8 1
1002// CHECK_OPTERON_SSE3_M32: #define __k8__ 1
1003// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
1004// CHECK_OPTERON_SSE3_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001005// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001006// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001007// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001008// CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
1009// CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
1010// CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
1011// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
1012// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
1013// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
1014// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
1015// CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001016// CHECK_OPTERON_SSE3_M64: #define __amd64 1
1017// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
1018// CHECK_OPTERON_SSE3_M64: #define __k8 1
1019// CHECK_OPTERON_SSE3_M64: #define __k8__ 1
1020// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
1021// CHECK_OPTERON_SSE3_M64: #define __x86_64 1
1022// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001023//
1024// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001025// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001026// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001027// CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
1028// CHECK_ATHLON64_M32: #define __3dNOW__ 1
1029// CHECK_ATHLON64_M32: #define __MMX__ 1
1030// CHECK_ATHLON64_M32: #define __SSE2__ 1
1031// CHECK_ATHLON64_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001032// CHECK_ATHLON64_M32: #define __i386 1
1033// CHECK_ATHLON64_M32: #define __i386__ 1
1034// CHECK_ATHLON64_M32: #define __k8 1
1035// CHECK_ATHLON64_M32: #define __k8__ 1
1036// CHECK_ATHLON64_M32: #define __tune_k8__ 1
1037// CHECK_ATHLON64_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001038// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001039// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001040// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001041// CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
1042// CHECK_ATHLON64_M64: #define __3dNOW__ 1
1043// CHECK_ATHLON64_M64: #define __MMX__ 1
1044// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
1045// CHECK_ATHLON64_M64: #define __SSE2__ 1
1046// CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
1047// CHECK_ATHLON64_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001048// CHECK_ATHLON64_M64: #define __amd64 1
1049// CHECK_ATHLON64_M64: #define __amd64__ 1
1050// CHECK_ATHLON64_M64: #define __k8 1
1051// CHECK_ATHLON64_M64: #define __k8__ 1
1052// CHECK_ATHLON64_M64: #define __tune_k8__ 1
1053// CHECK_ATHLON64_M64: #define __x86_64 1
1054// CHECK_ATHLON64_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001055//
1056// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001057// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001058// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001059// CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
1060// CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
1061// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
1062// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
1063// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
1064// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001065// CHECK_ATHLON64_SSE3_M32: #define __i386 1
1066// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
1067// CHECK_ATHLON64_SSE3_M32: #define __k8 1
1068// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
1069// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
1070// CHECK_ATHLON64_SSE3_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001071// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001072// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001073// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001074// CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
1075// CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
1076// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
1077// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
1078// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
1079// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
1080// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
1081// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001082// CHECK_ATHLON64_SSE3_M64: #define __amd64 1
1083// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
1084// CHECK_ATHLON64_SSE3_M64: #define __k8 1
1085// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
1086// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
1087// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
1088// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001089//
1090// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001091// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001092// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001093// CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
1094// CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
1095// CHECK_ATHLON_FX_M32: #define __MMX__ 1
1096// CHECK_ATHLON_FX_M32: #define __SSE2__ 1
1097// CHECK_ATHLON_FX_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001098// CHECK_ATHLON_FX_M32: #define __i386 1
1099// CHECK_ATHLON_FX_M32: #define __i386__ 1
1100// CHECK_ATHLON_FX_M32: #define __k8 1
1101// CHECK_ATHLON_FX_M32: #define __k8__ 1
1102// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
1103// CHECK_ATHLON_FX_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001104// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001105// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001106// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001107// CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
1108// CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
1109// CHECK_ATHLON_FX_M64: #define __MMX__ 1
1110// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
1111// CHECK_ATHLON_FX_M64: #define __SSE2__ 1
1112// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
1113// CHECK_ATHLON_FX_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001114// CHECK_ATHLON_FX_M64: #define __amd64 1
1115// CHECK_ATHLON_FX_M64: #define __amd64__ 1
1116// CHECK_ATHLON_FX_M64: #define __k8 1
1117// CHECK_ATHLON_FX_M64: #define __k8__ 1
1118// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
1119// CHECK_ATHLON_FX_M64: #define __x86_64 1
1120// CHECK_ATHLON_FX_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001121// RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \
1122// RUN: -target i386-unknown-linux \
1123// RUN: | FileCheck %s -check-prefix=CHECK_AMDFAM10_M32
1124// CHECK_AMDFAM10_M32: #define __3dNOW_A__ 1
1125// CHECK_AMDFAM10_M32: #define __3dNOW__ 1
1126// CHECK_AMDFAM10_M32: #define __LZCNT__ 1
1127// CHECK_AMDFAM10_M32: #define __MMX__ 1
1128// CHECK_AMDFAM10_M32: #define __POPCNT__ 1
1129// CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 1
1130// CHECK_AMDFAM10_M32: #define __SSE2__ 1
1131// CHECK_AMDFAM10_M32: #define __SSE3__ 1
1132// CHECK_AMDFAM10_M32: #define __SSE4A__ 1
1133// CHECK_AMDFAM10_M32: #define __SSE_MATH__ 1
1134// CHECK_AMDFAM10_M32: #define __SSE__ 1
1135// CHECK_AMDFAM10_M32: #define __amdfam10 1
1136// CHECK_AMDFAM10_M32: #define __amdfam10__ 1
1137// CHECK_AMDFAM10_M32: #define __i386 1
1138// CHECK_AMDFAM10_M32: #define __i386__ 1
1139// CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001140// RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \
1141// RUN: -target i386-unknown-linux \
1142// RUN: | FileCheck %s -check-prefix=CHECK_AMDFAM10_M64
1143// CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1
1144// CHECK_AMDFAM10_M64: #define __3dNOW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001145// CHECK_AMDFAM10_M64: #define __LZCNT__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001146// CHECK_AMDFAM10_M64: #define __MMX__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001147// CHECK_AMDFAM10_M64: #define __POPCNT__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001148// CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1
1149// CHECK_AMDFAM10_M64: #define __SSE2__ 1
1150// CHECK_AMDFAM10_M64: #define __SSE3__ 1
1151// CHECK_AMDFAM10_M64: #define __SSE4A__ 1
1152// CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1
1153// CHECK_AMDFAM10_M64: #define __SSE__ 1
1154// CHECK_AMDFAM10_M64: #define __amd64 1
1155// CHECK_AMDFAM10_M64: #define __amd64__ 1
1156// CHECK_AMDFAM10_M64: #define __amdfam10 1
1157// CHECK_AMDFAM10_M64: #define __amdfam10__ 1
1158// CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1
1159// CHECK_AMDFAM10_M64: #define __x86_64 1
1160// CHECK_AMDFAM10_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001161// RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \
1162// RUN: -target i386-unknown-linux \
1163// RUN: | FileCheck %s -check-prefix=CHECK_BTVER1_M32
1164// CHECK_BTVER1_M32-NOT: #define __3dNOW_A__ 1
1165// CHECK_BTVER1_M32-NOT: #define __3dNOW__ 1
1166// CHECK_BTVER1_M32: #define __LZCNT__ 1
1167// CHECK_BTVER1_M32: #define __MMX__ 1
1168// CHECK_BTVER1_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001169// CHECK_BTVER1_M32: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001170// CHECK_BTVER1_M32: #define __SSE2_MATH__ 1
1171// CHECK_BTVER1_M32: #define __SSE2__ 1
1172// CHECK_BTVER1_M32: #define __SSE3__ 1
1173// CHECK_BTVER1_M32: #define __SSE4A__ 1
1174// CHECK_BTVER1_M32: #define __SSE_MATH__ 1
1175// CHECK_BTVER1_M32: #define __SSE__ 1
1176// CHECK_BTVER1_M32: #define __SSSE3__ 1
1177// CHECK_BTVER1_M32: #define __btver1 1
1178// CHECK_BTVER1_M32: #define __btver1__ 1
1179// CHECK_BTVER1_M32: #define __i386 1
1180// CHECK_BTVER1_M32: #define __i386__ 1
1181// CHECK_BTVER1_M32: #define __tune_btver1__ 1
1182// RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \
1183// RUN: -target i386-unknown-linux \
1184// RUN: | FileCheck %s -check-prefix=CHECK_BTVER1_M64
1185// CHECK_BTVER1_M64-NOT: #define __3dNOW_A__ 1
1186// CHECK_BTVER1_M64-NOT: #define __3dNOW__ 1
1187// CHECK_BTVER1_M64: #define __LZCNT__ 1
1188// CHECK_BTVER1_M64: #define __MMX__ 1
1189// CHECK_BTVER1_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001190// CHECK_BTVER1_M64: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001191// CHECK_BTVER1_M64: #define __SSE2_MATH__ 1
1192// CHECK_BTVER1_M64: #define __SSE2__ 1
1193// CHECK_BTVER1_M64: #define __SSE3__ 1
1194// CHECK_BTVER1_M64: #define __SSE4A__ 1
1195// CHECK_BTVER1_M64: #define __SSE_MATH__ 1
1196// CHECK_BTVER1_M64: #define __SSE__ 1
1197// CHECK_BTVER1_M64: #define __SSSE3__ 1
1198// CHECK_BTVER1_M64: #define __amd64 1
1199// CHECK_BTVER1_M64: #define __amd64__ 1
1200// CHECK_BTVER1_M64: #define __btver1 1
1201// CHECK_BTVER1_M64: #define __btver1__ 1
1202// CHECK_BTVER1_M64: #define __tune_btver1__ 1
1203// CHECK_BTVER1_M64: #define __x86_64 1
1204// CHECK_BTVER1_M64: #define __x86_64__ 1
Benjamin Kramer914d7e02013-05-03 10:47:15 +00001205// RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \
1206// RUN: -target i386-unknown-linux \
1207// RUN: | FileCheck %s -check-prefix=CHECK_BTVER2_M32
1208// CHECK_BTVER2_M32-NOT: #define __3dNOW_A__ 1
1209// CHECK_BTVER2_M32-NOT: #define __3dNOW__ 1
1210// CHECK_BTVER2_M32: #define __AES__ 1
1211// CHECK_BTVER2_M32: #define __AVX__ 1
1212// CHECK_BTVER2_M32: #define __LZCNT__ 1
1213// CHECK_BTVER2_M32: #define __MMX__ 1
1214// CHECK_BTVER2_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001215// CHECK_BTVER2_M32: #define __PRFCHW__ 1
Benjamin Kramer914d7e02013-05-03 10:47:15 +00001216// CHECK_BTVER2_M32: #define __SSE2_MATH__ 1
1217// CHECK_BTVER2_M32: #define __SSE2__ 1
1218// CHECK_BTVER2_M32: #define __SSE3__ 1
1219// CHECK_BTVER2_M32: #define __SSE4A__ 1
1220// CHECK_BTVER2_M32: #define __SSE_MATH__ 1
1221// CHECK_BTVER2_M32: #define __SSE__ 1
1222// CHECK_BTVER2_M32: #define __SSSE3__ 1
1223// CHECK_BTVER2_M32: #define __btver2 1
1224// CHECK_BTVER2_M32: #define __btver2__ 1
1225// CHECK_BTVER2_M32: #define __i386 1
1226// CHECK_BTVER2_M32: #define __i386__ 1
1227// CHECK_BTVER2_M32: #define __tune_btver2__ 1
1228// RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \
1229// RUN: -target i386-unknown-linux \
1230// RUN: | FileCheck %s -check-prefix=CHECK_BTVER2_M64
1231// CHECK_BTVER2_M64-NOT: #define __3dNOW_A__ 1
1232// CHECK_BTVER2_M64-NOT: #define __3dNOW__ 1
1233// CHECK_BTVER2_M64: #define __AES__ 1
1234// CHECK_BTVER2_M64: #define __AVX__ 1
1235// CHECK_BTVER2_M64: #define __LZCNT__ 1
1236// CHECK_BTVER2_M64: #define __MMX__ 1
1237// CHECK_BTVER2_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001238// CHECK_BTVER2_M64: #define __PRFCHW__ 1
Benjamin Kramer914d7e02013-05-03 10:47:15 +00001239// CHECK_BTVER2_M64: #define __SSE2_MATH__ 1
1240// CHECK_BTVER2_M64: #define __SSE2__ 1
1241// CHECK_BTVER2_M64: #define __SSE3__ 1
1242// CHECK_BTVER2_M64: #define __SSE4A__ 1
1243// CHECK_BTVER2_M64: #define __SSE_MATH__ 1
1244// CHECK_BTVER2_M64: #define __SSE__ 1
1245// CHECK_BTVER2_M64: #define __SSSE3__ 1
1246// CHECK_BTVER2_M64: #define __amd64 1
1247// CHECK_BTVER2_M64: #define __amd64__ 1
1248// CHECK_BTVER2_M64: #define __btver2 1
1249// CHECK_BTVER2_M64: #define __btver2__ 1
1250// CHECK_BTVER2_M64: #define __tune_btver2__ 1
1251// CHECK_BTVER2_M64: #define __x86_64 1
1252// CHECK_BTVER2_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001253// RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
1254// RUN: -target i386-unknown-linux \
1255// RUN: | FileCheck %s -check-prefix=CHECK_BDVER1_M32
1256// CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1
1257// CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1
1258// CHECK_BDVER1_M32: #define __AES__ 1
1259// CHECK_BDVER1_M32: #define __AVX__ 1
1260// CHECK_BDVER1_M32: #define __FMA4__ 1
1261// CHECK_BDVER1_M32: #define __LZCNT__ 1
1262// CHECK_BDVER1_M32: #define __MMX__ 1
1263// CHECK_BDVER1_M32: #define __PCLMUL__ 1
1264// CHECK_BDVER1_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001265// CHECK_BDVER1_M32: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001266// CHECK_BDVER1_M32: #define __SSE2_MATH__ 1
1267// CHECK_BDVER1_M32: #define __SSE2__ 1
1268// CHECK_BDVER1_M32: #define __SSE3__ 1
1269// CHECK_BDVER1_M32: #define __SSE4A__ 1
1270// CHECK_BDVER1_M32: #define __SSE4_1__ 1
1271// CHECK_BDVER1_M32: #define __SSE4_2__ 1
1272// CHECK_BDVER1_M32: #define __SSE_MATH__ 1
1273// CHECK_BDVER1_M32: #define __SSE__ 1
1274// CHECK_BDVER1_M32: #define __SSSE3__ 1
1275// CHECK_BDVER1_M32: #define __XOP__ 1
1276// CHECK_BDVER1_M32: #define __bdver1 1
1277// CHECK_BDVER1_M32: #define __bdver1__ 1
1278// CHECK_BDVER1_M32: #define __i386 1
1279// CHECK_BDVER1_M32: #define __i386__ 1
1280// CHECK_BDVER1_M32: #define __tune_bdver1__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001281// RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
1282// RUN: -target i386-unknown-linux \
1283// RUN: | FileCheck %s -check-prefix=CHECK_BDVER1_M64
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001284// CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
1285// CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001286// CHECK_BDVER1_M64: #define __AES__ 1
1287// CHECK_BDVER1_M64: #define __AVX__ 1
Craig Topperf561a9562012-06-09 22:24:14 +00001288// CHECK_BDVER1_M64: #define __FMA4__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001289// CHECK_BDVER1_M64: #define __LZCNT__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001290// CHECK_BDVER1_M64: #define __MMX__ 1
Craig Topperf561a9562012-06-09 22:24:14 +00001291// CHECK_BDVER1_M64: #define __PCLMUL__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001292// CHECK_BDVER1_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001293// CHECK_BDVER1_M64: #define __PRFCHW__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001294// CHECK_BDVER1_M64: #define __SSE2_MATH__ 1
1295// CHECK_BDVER1_M64: #define __SSE2__ 1
1296// CHECK_BDVER1_M64: #define __SSE3__ 1
1297// CHECK_BDVER1_M64: #define __SSE4A__ 1
1298// CHECK_BDVER1_M64: #define __SSE4_1__ 1
1299// CHECK_BDVER1_M64: #define __SSE4_2__ 1
1300// CHECK_BDVER1_M64: #define __SSE_MATH__ 1
1301// CHECK_BDVER1_M64: #define __SSE__ 1
1302// CHECK_BDVER1_M64: #define __SSSE3__ 1
Craig Topperf561a9562012-06-09 22:24:14 +00001303// CHECK_BDVER1_M64: #define __XOP__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001304// CHECK_BDVER1_M64: #define __amd64 1
1305// CHECK_BDVER1_M64: #define __amd64__ 1
1306// CHECK_BDVER1_M64: #define __bdver1 1
1307// CHECK_BDVER1_M64: #define __bdver1__ 1
1308// CHECK_BDVER1_M64: #define __tune_bdver1__ 1
1309// CHECK_BDVER1_M64: #define __x86_64 1
1310// CHECK_BDVER1_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001311// RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \
1312// RUN: -target i386-unknown-linux \
1313// RUN: | FileCheck %s -check-prefix=CHECK_BDVER2_M32
1314// CHECK_BDVER2_M32-NOT: #define __3dNOW_A__ 1
1315// CHECK_BDVER2_M32-NOT: #define __3dNOW__ 1
1316// CHECK_BDVER2_M32: #define __AES__ 1
1317// CHECK_BDVER2_M32: #define __AVX__ 1
1318// CHECK_BDVER2_M32: #define __BMI__ 1
1319// CHECK_BDVER2_M32: #define __F16C__ 1
1320// CHECK_BDVER2_M32: #define __FMA4__ 1
1321// CHECK_BDVER2_M32: #define __FMA__ 1
1322// CHECK_BDVER2_M32: #define __LZCNT__ 1
1323// CHECK_BDVER2_M32: #define __MMX__ 1
1324// CHECK_BDVER2_M32: #define __PCLMUL__ 1
1325// CHECK_BDVER2_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001326// CHECK_BDVER2_M32: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001327// CHECK_BDVER2_M32: #define __SSE2_MATH__ 1
1328// CHECK_BDVER2_M32: #define __SSE2__ 1
1329// CHECK_BDVER2_M32: #define __SSE3__ 1
1330// CHECK_BDVER2_M32: #define __SSE4A__ 1
1331// CHECK_BDVER2_M32: #define __SSE4_1__ 1
1332// CHECK_BDVER2_M32: #define __SSE4_2__ 1
1333// CHECK_BDVER2_M32: #define __SSE_MATH__ 1
1334// CHECK_BDVER2_M32: #define __SSE__ 1
1335// CHECK_BDVER2_M32: #define __SSSE3__ 1
Yunzhong Gao1f6aeeb2013-09-24 19:00:58 +00001336// CHECK_BDVER2_M32: #define __TBM__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001337// CHECK_BDVER2_M32: #define __XOP__ 1
1338// CHECK_BDVER2_M32: #define __bdver2 1
1339// CHECK_BDVER2_M32: #define __bdver2__ 1
1340// CHECK_BDVER2_M32: #define __i386 1
1341// CHECK_BDVER2_M32: #define __i386__ 1
1342// CHECK_BDVER2_M32: #define __tune_bdver2__ 1
1343// RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \
1344// RUN: -target i386-unknown-linux \
1345// RUN: | FileCheck %s -check-prefix=CHECK_BDVER2_M64
1346// CHECK_BDVER2_M64-NOT: #define __3dNOW_A__ 1
1347// CHECK_BDVER2_M64-NOT: #define __3dNOW__ 1
1348// CHECK_BDVER2_M64: #define __AES__ 1
1349// CHECK_BDVER2_M64: #define __AVX__ 1
1350// CHECK_BDVER2_M64: #define __BMI__ 1
1351// CHECK_BDVER2_M64: #define __F16C__ 1
1352// CHECK_BDVER2_M64: #define __FMA4__ 1
1353// CHECK_BDVER2_M64: #define __FMA__ 1
1354// CHECK_BDVER2_M64: #define __LZCNT__ 1
1355// CHECK_BDVER2_M64: #define __MMX__ 1
1356// CHECK_BDVER2_M64: #define __PCLMUL__ 1
1357// CHECK_BDVER2_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001358// CHECK_BDVER2_M64: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001359// CHECK_BDVER2_M64: #define __SSE2_MATH__ 1
1360// CHECK_BDVER2_M64: #define __SSE2__ 1
1361// CHECK_BDVER2_M64: #define __SSE3__ 1
1362// CHECK_BDVER2_M64: #define __SSE4A__ 1
1363// CHECK_BDVER2_M64: #define __SSE4_1__ 1
1364// CHECK_BDVER2_M64: #define __SSE4_2__ 1
1365// CHECK_BDVER2_M64: #define __SSE_MATH__ 1
1366// CHECK_BDVER2_M64: #define __SSE__ 1
1367// CHECK_BDVER2_M64: #define __SSSE3__ 1
Yunzhong Gao1f6aeeb2013-09-24 19:00:58 +00001368// CHECK_BDVER2_M64: #define __TBM__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001369// CHECK_BDVER2_M64: #define __XOP__ 1
1370// CHECK_BDVER2_M64: #define __amd64 1
1371// CHECK_BDVER2_M64: #define __amd64__ 1
1372// CHECK_BDVER2_M64: #define __bdver2 1
1373// CHECK_BDVER2_M64: #define __bdver2__ 1
1374// CHECK_BDVER2_M64: #define __tune_bdver2__ 1
1375// CHECK_BDVER2_M64: #define __x86_64 1
1376// CHECK_BDVER2_M64: #define __x86_64__ 1
Chandler Carruthe83c3d92011-09-28 10:17:41 +00001377//
1378// End X86/GCC/Linux tests ------------------