blob: 4430a79106895a36ca920bdf729f01b374a091d1 [file] [log] [blame]
Chandler Carruthe83c3d92011-09-28 10:17:41 +00001// Begin X86/GCC/Linux tests ----------------
2//
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00003// RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00004// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00005// RUN: | FileCheck %s -check-prefix=CHECK_I386_M32
6// CHECK_I386_M32: #define __i386 1
7// CHECK_I386_M32: #define __i386__ 1
8// CHECK_I386_M32: #define __tune_i386__ 1
9// CHECK_I386_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +000010// RUN: not %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000011// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000012// RUN: | FileCheck %s -check-prefix=CHECK_I386_M64
13// CHECK_I386_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000014//
15// RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000016// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000017// RUN: | FileCheck %s -check-prefix=CHECK_I486_M32
18// CHECK_I486_M32: #define __i386 1
19// CHECK_I486_M32: #define __i386__ 1
20// CHECK_I486_M32: #define __i486 1
21// CHECK_I486_M32: #define __i486__ 1
22// CHECK_I486_M32: #define __tune_i486__ 1
23// CHECK_I486_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +000024// RUN: not %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000025// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000026// RUN: | FileCheck %s -check-prefix=CHECK_I486_M64
27// CHECK_I486_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000028//
29// RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000030// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000031// RUN: | FileCheck %s -check-prefix=CHECK_I586_M32
32// CHECK_I586_M32: #define __i386 1
33// CHECK_I586_M32: #define __i386__ 1
34// CHECK_I586_M32: #define __i586 1
35// CHECK_I586_M32: #define __i586__ 1
36// CHECK_I586_M32: #define __pentium 1
37// CHECK_I586_M32: #define __pentium__ 1
38// CHECK_I586_M32: #define __tune_i586__ 1
39// CHECK_I586_M32: #define __tune_pentium__ 1
40// CHECK_I586_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +000041// RUN: not %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000042// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000043// RUN: | FileCheck %s -check-prefix=CHECK_I586_M64
44// CHECK_I586_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000045//
46// RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000047// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000048// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M32
49// CHECK_PENTIUM_M32: #define __i386 1
50// CHECK_PENTIUM_M32: #define __i386__ 1
51// CHECK_PENTIUM_M32: #define __i586 1
52// CHECK_PENTIUM_M32: #define __i586__ 1
53// CHECK_PENTIUM_M32: #define __pentium 1
54// CHECK_PENTIUM_M32: #define __pentium__ 1
55// CHECK_PENTIUM_M32: #define __tune_i586__ 1
56// CHECK_PENTIUM_M32: #define __tune_pentium__ 1
57// CHECK_PENTIUM_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +000058// RUN: not %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000059// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000060// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M64
61// CHECK_PENTIUM_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000062//
63// RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000064// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000065// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +000066// CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000067// CHECK_PENTIUM_MMX_M32: #define __i386 1
68// CHECK_PENTIUM_MMX_M32: #define __i386__ 1
69// CHECK_PENTIUM_MMX_M32: #define __i586 1
70// CHECK_PENTIUM_MMX_M32: #define __i586__ 1
71// CHECK_PENTIUM_MMX_M32: #define __pentium 1
72// CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
73// CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
74// CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
75// CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
76// CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
77// CHECK_PENTIUM_MMX_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +000078// RUN: not %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000079// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000080// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_MMX_M64
81// CHECK_PENTIUM_MMX_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000082//
83// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000084// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000085// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +000086// CHECK_WINCHIP_C6_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000087// CHECK_WINCHIP_C6_M32: #define __i386 1
88// CHECK_WINCHIP_C6_M32: #define __i386__ 1
89// CHECK_WINCHIP_C6_M32: #define __i486 1
90// CHECK_WINCHIP_C6_M32: #define __i486__ 1
91// CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
92// CHECK_WINCHIP_C6_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +000093// RUN: not %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000094// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +000095// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP_C6_M64
96// CHECK_WINCHIP_C6_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +000097//
98// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +000099// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000100// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000101// CHECK_WINCHIP2_M32: #define __3dNOW__ 1
102// CHECK_WINCHIP2_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000103// CHECK_WINCHIP2_M32: #define __i386 1
104// CHECK_WINCHIP2_M32: #define __i386__ 1
105// CHECK_WINCHIP2_M32: #define __i486 1
106// CHECK_WINCHIP2_M32: #define __i486__ 1
107// CHECK_WINCHIP2_M32: #define __tune_i486__ 1
108// CHECK_WINCHIP2_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000109// RUN: not %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000110// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000111// RUN: | FileCheck %s -check-prefix=CHECK_WINCHIP2_M64
112// CHECK_WINCHIP2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000113//
114// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000115// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000116// RUN: | FileCheck %s -check-prefix=CHECK_C3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000117// CHECK_C3_M32: #define __3dNOW__ 1
118// CHECK_C3_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000119// CHECK_C3_M32: #define __i386 1
120// CHECK_C3_M32: #define __i386__ 1
121// CHECK_C3_M32: #define __i486 1
122// CHECK_C3_M32: #define __i486__ 1
123// CHECK_C3_M32: #define __tune_i486__ 1
124// CHECK_C3_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000125// RUN: not %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000126// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000127// RUN: | FileCheck %s -check-prefix=CHECK_C3_M64
128// CHECK_C3_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000129//
130// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000131// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000132// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000133// CHECK_C3_2_M32: #define __MMX__ 1
134// CHECK_C3_2_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000135// CHECK_C3_2_M32: #define __i386 1
136// CHECK_C3_2_M32: #define __i386__ 1
137// CHECK_C3_2_M32: #define __i686 1
138// CHECK_C3_2_M32: #define __i686__ 1
139// CHECK_C3_2_M32: #define __pentiumpro 1
140// CHECK_C3_2_M32: #define __pentiumpro__ 1
141// CHECK_C3_2_M32: #define __tune_i686__ 1
142// CHECK_C3_2_M32: #define __tune_pentium2__ 1
143// CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
144// CHECK_C3_2_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000145// RUN: not %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000146// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000147// RUN: | FileCheck %s -check-prefix=CHECK_C3_2_M64
148// CHECK_C3_2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000149//
150// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000151// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000152// RUN: | FileCheck %s -check-prefix=CHECK_I686_M32
153// CHECK_I686_M32: #define __i386 1
154// CHECK_I686_M32: #define __i386__ 1
155// CHECK_I686_M32: #define __i686 1
156// CHECK_I686_M32: #define __i686__ 1
157// CHECK_I686_M32: #define __pentiumpro 1
158// CHECK_I686_M32: #define __pentiumpro__ 1
159// CHECK_I686_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000160// RUN: not %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000161// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000162// RUN: | FileCheck %s -check-prefix=CHECK_I686_M64
163// CHECK_I686_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000164//
165// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000166// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000167// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M32
168// CHECK_PENTIUMPRO_M32: #define __i386 1
169// CHECK_PENTIUMPRO_M32: #define __i386__ 1
170// CHECK_PENTIUMPRO_M32: #define __i686 1
171// CHECK_PENTIUMPRO_M32: #define __i686__ 1
172// CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
173// CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
174// CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
175// CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
176// CHECK_PENTIUMPRO_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000177// RUN: not %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000178// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000179// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUMPRO_M64
180// CHECK_PENTIUMPRO_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000181//
182// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000183// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000184// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000185// CHECK_PENTIUM2_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000186// CHECK_PENTIUM2_M32: #define __i386 1
187// CHECK_PENTIUM2_M32: #define __i386__ 1
188// CHECK_PENTIUM2_M32: #define __i686 1
189// CHECK_PENTIUM2_M32: #define __i686__ 1
190// CHECK_PENTIUM2_M32: #define __pentiumpro 1
191// CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
192// CHECK_PENTIUM2_M32: #define __tune_i686__ 1
193// CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
194// CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
195// CHECK_PENTIUM2_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000196// RUN: not %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000197// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000198// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM2_M64
199// CHECK_PENTIUM2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000200//
201// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000202// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000203// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000204// CHECK_PENTIUM3_M32: #define __MMX__ 1
205// CHECK_PENTIUM3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000206// CHECK_PENTIUM3_M32: #define __i386 1
207// CHECK_PENTIUM3_M32: #define __i386__ 1
208// CHECK_PENTIUM3_M32: #define __i686 1
209// CHECK_PENTIUM3_M32: #define __i686__ 1
210// CHECK_PENTIUM3_M32: #define __pentiumpro 1
211// CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
212// CHECK_PENTIUM3_M32: #define __tune_i686__ 1
213// CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
214// CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
215// CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
216// CHECK_PENTIUM3_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000217// RUN: not %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000218// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000219// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3_M64
220// CHECK_PENTIUM3_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000221//
222// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000223// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000224// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000225// CHECK_PENTIUM3M_M32: #define __MMX__ 1
226// CHECK_PENTIUM3M_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000227// CHECK_PENTIUM3M_M32: #define __i386 1
228// CHECK_PENTIUM3M_M32: #define __i386__ 1
229// CHECK_PENTIUM3M_M32: #define __i686 1
230// CHECK_PENTIUM3M_M32: #define __i686__ 1
231// CHECK_PENTIUM3M_M32: #define __pentiumpro 1
232// CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
233// CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
234// CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
235// CHECK_PENTIUM3M_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000236// RUN: not %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000237// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000238// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM3M_M64
239// CHECK_PENTIUM3M_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000240//
241// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000242// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000243// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000244// CHECK_PENTIUM_M_M32: #define __MMX__ 1
245// CHECK_PENTIUM_M_M32: #define __SSE2__ 1
246// CHECK_PENTIUM_M_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000247// CHECK_PENTIUM_M_M32: #define __i386 1
248// CHECK_PENTIUM_M_M32: #define __i386__ 1
249// CHECK_PENTIUM_M_M32: #define __i686 1
250// CHECK_PENTIUM_M_M32: #define __i686__ 1
251// CHECK_PENTIUM_M_M32: #define __pentiumpro 1
252// CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
253// CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
254// CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
255// CHECK_PENTIUM_M_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000256// RUN: not %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000257// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000258// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM_M_M64
259// CHECK_PENTIUM_M_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000260//
261// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000262// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000263// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000264// CHECK_PENTIUM4_M32: #define __MMX__ 1
265// CHECK_PENTIUM4_M32: #define __SSE2__ 1
266// CHECK_PENTIUM4_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000267// CHECK_PENTIUM4_M32: #define __i386 1
268// CHECK_PENTIUM4_M32: #define __i386__ 1
269// CHECK_PENTIUM4_M32: #define __pentium4 1
270// CHECK_PENTIUM4_M32: #define __pentium4__ 1
271// CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
272// CHECK_PENTIUM4_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000273// RUN: not %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000274// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000275// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4_M64
276// CHECK_PENTIUM4_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000277//
278// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000279// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000280// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000281// CHECK_PENTIUM4M_M32: #define __MMX__ 1
282// CHECK_PENTIUM4M_M32: #define __SSE2__ 1
283// CHECK_PENTIUM4M_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000284// CHECK_PENTIUM4M_M32: #define __i386 1
285// CHECK_PENTIUM4M_M32: #define __i386__ 1
286// CHECK_PENTIUM4M_M32: #define __pentium4 1
287// CHECK_PENTIUM4M_M32: #define __pentium4__ 1
288// CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
289// CHECK_PENTIUM4M_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000290// RUN: not %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000291// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000292// RUN: | FileCheck %s -check-prefix=CHECK_PENTIUM4M_M64
293// CHECK_PENTIUM4M_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000294//
295// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000296// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000297// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000298// CHECK_PRESCOTT_M32: #define __MMX__ 1
299// CHECK_PRESCOTT_M32: #define __SSE2__ 1
300// CHECK_PRESCOTT_M32: #define __SSE3__ 1
301// CHECK_PRESCOTT_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000302// CHECK_PRESCOTT_M32: #define __i386 1
303// CHECK_PRESCOTT_M32: #define __i386__ 1
304// CHECK_PRESCOTT_M32: #define __nocona 1
305// CHECK_PRESCOTT_M32: #define __nocona__ 1
306// CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
307// CHECK_PRESCOTT_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000308// RUN: not %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000309// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000310// RUN: | FileCheck %s -check-prefix=CHECK_PRESCOTT_M64
311// CHECK_PRESCOTT_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000312//
313// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000314// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000315// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000316// CHECK_NOCONA_M32: #define __MMX__ 1
317// CHECK_NOCONA_M32: #define __SSE2__ 1
318// CHECK_NOCONA_M32: #define __SSE3__ 1
319// CHECK_NOCONA_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000320// CHECK_NOCONA_M32: #define __i386 1
321// CHECK_NOCONA_M32: #define __i386__ 1
322// CHECK_NOCONA_M32: #define __nocona 1
323// CHECK_NOCONA_M32: #define __nocona__ 1
324// CHECK_NOCONA_M32: #define __tune_nocona__ 1
325// CHECK_NOCONA_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000326// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000327// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000328// RUN: | FileCheck %s -check-prefix=CHECK_NOCONA_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000329// CHECK_NOCONA_M64: #define __MMX__ 1
330// CHECK_NOCONA_M64: #define __SSE2_MATH__ 1
331// CHECK_NOCONA_M64: #define __SSE2__ 1
332// CHECK_NOCONA_M64: #define __SSE3__ 1
333// CHECK_NOCONA_M64: #define __SSE_MATH__ 1
334// CHECK_NOCONA_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000335// CHECK_NOCONA_M64: #define __amd64 1
336// CHECK_NOCONA_M64: #define __amd64__ 1
337// CHECK_NOCONA_M64: #define __nocona 1
338// CHECK_NOCONA_M64: #define __nocona__ 1
339// CHECK_NOCONA_M64: #define __tune_nocona__ 1
340// CHECK_NOCONA_M64: #define __x86_64 1
341// CHECK_NOCONA_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000342//
343// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000344// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000345// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000346// CHECK_CORE2_M32: #define __MMX__ 1
347// CHECK_CORE2_M32: #define __SSE2__ 1
348// CHECK_CORE2_M32: #define __SSE3__ 1
349// CHECK_CORE2_M32: #define __SSE__ 1
350// CHECK_CORE2_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000351// CHECK_CORE2_M32: #define __core2 1
352// CHECK_CORE2_M32: #define __core2__ 1
353// CHECK_CORE2_M32: #define __i386 1
354// CHECK_CORE2_M32: #define __i386__ 1
355// CHECK_CORE2_M32: #define __tune_core2__ 1
356// CHECK_CORE2_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000357// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000358// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000359// RUN: | FileCheck %s -check-prefix=CHECK_CORE2_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000360// CHECK_CORE2_M64: #define __MMX__ 1
361// CHECK_CORE2_M64: #define __SSE2_MATH__ 1
362// CHECK_CORE2_M64: #define __SSE2__ 1
363// CHECK_CORE2_M64: #define __SSE3__ 1
364// CHECK_CORE2_M64: #define __SSE_MATH__ 1
365// CHECK_CORE2_M64: #define __SSE__ 1
366// CHECK_CORE2_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000367// CHECK_CORE2_M64: #define __amd64 1
368// CHECK_CORE2_M64: #define __amd64__ 1
369// CHECK_CORE2_M64: #define __core2 1
370// CHECK_CORE2_M64: #define __core2__ 1
371// CHECK_CORE2_M64: #define __tune_core2__ 1
372// CHECK_CORE2_M64: #define __x86_64 1
373// CHECK_CORE2_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000374//
375// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000376// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000377// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000378// CHECK_COREI7_M32: #define __MMX__ 1
Craig Topperb644c972012-06-03 21:49:41 +0000379// CHECK_COREI7_M32: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000380// CHECK_COREI7_M32: #define __SSE2__ 1
381// CHECK_COREI7_M32: #define __SSE3__ 1
382// CHECK_COREI7_M32: #define __SSE4_1__ 1
383// CHECK_COREI7_M32: #define __SSE4_2__ 1
384// CHECK_COREI7_M32: #define __SSE__ 1
385// CHECK_COREI7_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000386// CHECK_COREI7_M32: #define __corei7 1
387// CHECK_COREI7_M32: #define __corei7__ 1
388// CHECK_COREI7_M32: #define __i386 1
389// CHECK_COREI7_M32: #define __i386__ 1
390// CHECK_COREI7_M32: #define __tune_corei7__ 1
391// CHECK_COREI7_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000392// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000393// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000394// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000395// CHECK_COREI7_M64: #define __MMX__ 1
Craig Topperb644c972012-06-03 21:49:41 +0000396// CHECK_COREI7_M64: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000397// CHECK_COREI7_M64: #define __SSE2_MATH__ 1
398// CHECK_COREI7_M64: #define __SSE2__ 1
399// CHECK_COREI7_M64: #define __SSE3__ 1
400// CHECK_COREI7_M64: #define __SSE4_1__ 1
401// CHECK_COREI7_M64: #define __SSE4_2__ 1
402// CHECK_COREI7_M64: #define __SSE_MATH__ 1
403// CHECK_COREI7_M64: #define __SSE__ 1
404// CHECK_COREI7_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000405// CHECK_COREI7_M64: #define __amd64 1
406// CHECK_COREI7_M64: #define __amd64__ 1
407// CHECK_COREI7_M64: #define __corei7 1
408// CHECK_COREI7_M64: #define __corei7__ 1
409// CHECK_COREI7_M64: #define __tune_corei7__ 1
410// CHECK_COREI7_M64: #define __x86_64 1
411// CHECK_COREI7_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000412//
413// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000414// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000415// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000416// CHECK_COREI7_AVX_M32: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000417// CHECK_COREI7_AVX_M32: #define __AVX__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000418// CHECK_COREI7_AVX_M32: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000419// CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000420// CHECK_COREI7_AVX_M32-NOT: __RDRND__
Craig Topperb644c972012-06-03 21:49:41 +0000421// CHECK_COREI7_AVX_M32: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000422// CHECK_COREI7_AVX_M32: #define __SSE2__ 1
423// CHECK_COREI7_AVX_M32: #define __SSE3__ 1
424// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
425// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
426// CHECK_COREI7_AVX_M32: #define __SSE__ 1
427// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000428// CHECK_COREI7_AVX_M32: #define __corei7 1
429// CHECK_COREI7_AVX_M32: #define __corei7__ 1
430// CHECK_COREI7_AVX_M32: #define __i386 1
431// CHECK_COREI7_AVX_M32: #define __i386__ 1
432// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
433// CHECK_COREI7_AVX_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000434// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000435// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000436// RUN: | FileCheck %s -check-prefix=CHECK_COREI7_AVX_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000437// CHECK_COREI7_AVX_M64: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000438// CHECK_COREI7_AVX_M64: #define __AVX__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000439// CHECK_COREI7_AVX_M64: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000440// CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000441// CHECK_COREI7_AVX_M64-NOT: __RDRND__
Craig Topperb644c972012-06-03 21:49:41 +0000442// CHECK_COREI7_AVX_M64: #define __POPCNT__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000443// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
444// CHECK_COREI7_AVX_M64: #define __SSE2__ 1
445// CHECK_COREI7_AVX_M64: #define __SSE3__ 1
446// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
447// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
448// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
449// CHECK_COREI7_AVX_M64: #define __SSE__ 1
450// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000451// CHECK_COREI7_AVX_M64: #define __amd64 1
452// CHECK_COREI7_AVX_M64: #define __amd64__ 1
453// CHECK_COREI7_AVX_M64: #define __corei7 1
454// CHECK_COREI7_AVX_M64: #define __corei7__ 1
455// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
456// CHECK_COREI7_AVX_M64: #define __x86_64 1
457// CHECK_COREI7_AVX_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000458//
459// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000460// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000461// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000462// CHECK_CORE_AVX_I_M32: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000463// CHECK_CORE_AVX_I_M32: #define __AVX__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000464// CHECK_CORE_AVX_I_M32: #define __F16C__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000465// CHECK_CORE_AVX_I_M32: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000466// CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000467// CHECK_CORE_AVX_I_M32: #define __RDRND__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000468// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
469// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
470// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
471// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
472// CHECK_CORE_AVX_I_M32: #define __SSE__ 1
473// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000474// CHECK_CORE_AVX_I_M32: #define __corei7 1
475// CHECK_CORE_AVX_I_M32: #define __corei7__ 1
476// CHECK_CORE_AVX_I_M32: #define __i386 1
477// CHECK_CORE_AVX_I_M32: #define __i386__ 1
478// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
479// CHECK_CORE_AVX_I_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000480// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000481// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000482// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX_I_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000483// CHECK_CORE_AVX_I_M64: #define __AES__ 1
Craig Topper5f365e92012-04-26 07:31:30 +0000484// CHECK_CORE_AVX_I_M64: #define __AVX__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000485// CHECK_CORE_AVX_I_M64: #define __F16C__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000486// CHECK_CORE_AVX_I_M64: #define __MMX__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000487// CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000488// CHECK_CORE_AVX_I_M64: #define __RDRND__ 1
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000489// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
490// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
491// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
492// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
493// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
494// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
495// CHECK_CORE_AVX_I_M64: #define __SSE__ 1
496// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000497// CHECK_CORE_AVX_I_M64: #define __amd64 1
498// CHECK_CORE_AVX_I_M64: #define __amd64__ 1
499// CHECK_CORE_AVX_I_M64: #define __corei7 1
500// CHECK_CORE_AVX_I_M64: #define __corei7__ 1
501// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
502// CHECK_CORE_AVX_I_M64: #define __x86_64 1
503// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000504//
Craig Topperbba778b2012-06-03 21:46:30 +0000505// RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \
506// RUN: -target i386-unknown-linux \
507// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M32
508// CHECK_CORE_AVX2_M32: #define __AES__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000509// CHECK_CORE_AVX2_M32: #define __AVX2__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000510// CHECK_CORE_AVX2_M32: #define __AVX__ 1
511// CHECK_CORE_AVX2_M32: #define __BMI2__ 1
512// CHECK_CORE_AVX2_M32: #define __BMI__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000513// CHECK_CORE_AVX2_M32: #define __F16C__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000514// CHECK_CORE_AVX2_M32: #define __FMA__ 1
515// CHECK_CORE_AVX2_M32: #define __LZCNT__ 1
516// CHECK_CORE_AVX2_M32: #define __MMX__ 1
517// CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1
518// CHECK_CORE_AVX2_M32: #define __POPCNT__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000519// CHECK_CORE_AVX2_M32: #define __RDRND__ 1
Michael Liao625a8752012-11-10 05:17:46 +0000520// CHECK_CORE_AVX2_M32: #define __RTM__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000521// CHECK_CORE_AVX2_M32: #define __SSE2__ 1
522// CHECK_CORE_AVX2_M32: #define __SSE3__ 1
523// CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1
524// CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1
525// CHECK_CORE_AVX2_M32: #define __SSE__ 1
526// CHECK_CORE_AVX2_M32: #define __SSSE3__ 1
527// CHECK_CORE_AVX2_M32: #define __corei7 1
528// CHECK_CORE_AVX2_M32: #define __corei7__ 1
529// CHECK_CORE_AVX2_M32: #define __i386 1
530// CHECK_CORE_AVX2_M32: #define __i386__ 1
531// CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1
532// CHECK_CORE_AVX2_M32: #define i386 1
533// RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \
534// RUN: -target i386-unknown-linux \
535// RUN: | FileCheck %s -check-prefix=CHECK_CORE_AVX2_M64
536// CHECK_CORE_AVX2_M64: #define __AES__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000537// CHECK_CORE_AVX2_M64: #define __AVX2__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000538// CHECK_CORE_AVX2_M64: #define __AVX__ 1
539// CHECK_CORE_AVX2_M64: #define __BMI2__ 1
540// CHECK_CORE_AVX2_M64: #define __BMI__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +0000541// CHECK_CORE_AVX2_M64: #define __F16C__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000542// CHECK_CORE_AVX2_M64: #define __FMA__ 1
543// CHECK_CORE_AVX2_M64: #define __LZCNT__ 1
544// CHECK_CORE_AVX2_M64: #define __MMX__ 1
545// CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1
546// CHECK_CORE_AVX2_M64: #define __POPCNT__ 1
Benjamin Kramer1e250392012-07-07 09:39:18 +0000547// CHECK_CORE_AVX2_M64: #define __RDRND__ 1
Michael Liao625a8752012-11-10 05:17:46 +0000548// CHECK_CORE_AVX2_M64: #define __RTM__ 1
Craig Topperbba778b2012-06-03 21:46:30 +0000549// CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1
550// CHECK_CORE_AVX2_M64: #define __SSE2__ 1
551// CHECK_CORE_AVX2_M64: #define __SSE3__ 1
552// CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1
553// CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1
554// CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1
555// CHECK_CORE_AVX2_M64: #define __SSE__ 1
556// CHECK_CORE_AVX2_M64: #define __SSSE3__ 1
557// CHECK_CORE_AVX2_M64: #define __amd64 1
558// CHECK_CORE_AVX2_M64: #define __amd64__ 1
559// CHECK_CORE_AVX2_M64: #define __corei7 1
560// CHECK_CORE_AVX2_M64: #define __corei7__ 1
561// CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1
562// CHECK_CORE_AVX2_M64: #define __x86_64 1
563// CHECK_CORE_AVX2_M64: #define __x86_64__ 1
564//
Craig Topper449314e2013-08-20 07:09:39 +0000565// RUN: %clang -march=knl -m32 -E -dM %s -o - 2>&1 \
566// RUN: -target i386-unknown-linux \
567// RUN: | FileCheck %s -check-prefix=CHECK_KNL_M32
568// CHECK_KNL_M32: #define __AES__ 1
569// CHECK_KNL_M32: #define __AVX2__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000570// CHECK_KNL_M32: #define __AVX512CD__ 1
571// CHECK_KNL_M32: #define __AVX512ER__ 1
Craig Topperaf0ca632013-08-20 07:52:37 +0000572// CHECK_KNL_M32: #define __AVX512F__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000573// CHECK_KNL_M32: #define __AVX512PF__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000574// CHECK_KNL_M32: #define __AVX__ 1
575// CHECK_KNL_M32: #define __BMI2__ 1
576// CHECK_KNL_M32: #define __BMI__ 1
577// CHECK_KNL_M32: #define __F16C__ 1
578// CHECK_KNL_M32: #define __FMA__ 1
579// CHECK_KNL_M32: #define __LZCNT__ 1
580// CHECK_KNL_M32: #define __MMX__ 1
581// CHECK_KNL_M32: #define __PCLMUL__ 1
582// CHECK_KNL_M32: #define __POPCNT__ 1
583// CHECK_KNL_M32: #define __RDRND__ 1
584// CHECK_KNL_M32: #define __RTM__ 1
585// CHECK_KNL_M32: #define __SSE2__ 1
586// CHECK_KNL_M32: #define __SSE3__ 1
587// CHECK_KNL_M32: #define __SSE4_1__ 1
588// CHECK_KNL_M32: #define __SSE4_2__ 1
589// CHECK_KNL_M32: #define __SSE__ 1
590// CHECK_KNL_M32: #define __SSSE3__ 1
591// CHECK_KNL_M32: #define __i386 1
592// CHECK_KNL_M32: #define __i386__ 1
593// CHECK_KNL_M32: #define __knl 1
594// CHECK_KNL_M32: #define __knl__ 1
595// CHECK_KNL_M32: #define __tune_knl__ 1
596// CHECK_KNL_M32: #define i386 1
597// RUN: %clang -march=knl -m64 -E -dM %s -o - 2>&1 \
598// RUN: -target i386-unknown-linux \
599// RUN: | FileCheck %s -check-prefix=CHECK_KNL_M64
600// CHECK_KNL_M64: #define __AES__ 1
601// CHECK_KNL_M64: #define __AVX2__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000602// CHECK_KNL_M64: #define __AVX512CD__ 1
603// CHECK_KNL_M64: #define __AVX512ER__ 1
Craig Topperaf0ca632013-08-20 07:52:37 +0000604// CHECK_KNL_M64: #define __AVX512F__ 1
Craig Topper679b53a2013-08-21 05:29:10 +0000605// CHECK_KNL_M64: #define __AVX512PF__ 1
Craig Topper449314e2013-08-20 07:09:39 +0000606// CHECK_KNL_M64: #define __AVX__ 1
607// CHECK_KNL_M64: #define __BMI2__ 1
608// CHECK_KNL_M64: #define __BMI__ 1
609// CHECK_KNL_M64: #define __F16C__ 1
610// CHECK_KNL_M64: #define __FMA__ 1
611// CHECK_KNL_M64: #define __LZCNT__ 1
612// CHECK_KNL_M64: #define __MMX__ 1
613// CHECK_KNL_M64: #define __PCLMUL__ 1
614// CHECK_KNL_M64: #define __POPCNT__ 1
615// CHECK_KNL_M64: #define __RDRND__ 1
616// CHECK_KNL_M64: #define __RTM__ 1
617// CHECK_KNL_M64: #define __SSE2_MATH__ 1
618// CHECK_KNL_M64: #define __SSE2__ 1
619// CHECK_KNL_M64: #define __SSE3__ 1
620// CHECK_KNL_M64: #define __SSE4_1__ 1
621// CHECK_KNL_M64: #define __SSE4_2__ 1
622// CHECK_KNL_M64: #define __SSE_MATH__ 1
623// CHECK_KNL_M64: #define __SSE__ 1
624// CHECK_KNL_M64: #define __SSSE3__ 1
625// CHECK_KNL_M64: #define __amd64 1
626// CHECK_KNL_M64: #define __amd64__ 1
627// CHECK_KNL_M64: #define __knl 1
628// CHECK_KNL_M64: #define __knl__ 1
629// CHECK_KNL_M64: #define __tune_knl__ 1
630// CHECK_KNL_M64: #define __x86_64 1
631// CHECK_KNL_M64: #define __x86_64__ 1
632//
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000633// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000634// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000635// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000636// CHECK_ATOM_M32: #define __MMX__ 1
637// CHECK_ATOM_M32: #define __SSE2__ 1
638// CHECK_ATOM_M32: #define __SSE3__ 1
639// CHECK_ATOM_M32: #define __SSE__ 1
640// CHECK_ATOM_M32: #define __SSSE3__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000641// CHECK_ATOM_M32: #define __atom 1
642// CHECK_ATOM_M32: #define __atom__ 1
643// CHECK_ATOM_M32: #define __i386 1
644// CHECK_ATOM_M32: #define __i386__ 1
645// CHECK_ATOM_M32: #define __tune_atom__ 1
646// CHECK_ATOM_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000647// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000648// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000649// RUN: | FileCheck %s -check-prefix=CHECK_ATOM_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000650// CHECK_ATOM_M64: #define __MMX__ 1
651// CHECK_ATOM_M64: #define __SSE2_MATH__ 1
652// CHECK_ATOM_M64: #define __SSE2__ 1
653// CHECK_ATOM_M64: #define __SSE3__ 1
654// CHECK_ATOM_M64: #define __SSE_MATH__ 1
655// CHECK_ATOM_M64: #define __SSE__ 1
656// CHECK_ATOM_M64: #define __SSSE3__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000657// CHECK_ATOM_M64: #define __amd64 1
658// CHECK_ATOM_M64: #define __amd64__ 1
659// CHECK_ATOM_M64: #define __atom 1
660// CHECK_ATOM_M64: #define __atom__ 1
661// CHECK_ATOM_M64: #define __tune_atom__ 1
662// CHECK_ATOM_M64: #define __x86_64 1
663// CHECK_ATOM_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000664//
Benjamin Kramerffecc842013-08-30 14:05:34 +0000665// RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \
666// RUN: -target i386-unknown-linux \
667// RUN: | FileCheck %s -check-prefix=CHECK_SLM_M32
668// CHECK_SLM_M32: #define __MMX__ 1
669// CHECK_SLM_M32: #define __SSE2__ 1
670// CHECK_SLM_M32: #define __SSE3__ 1
671// CHECK_SLM_M32: #define __SSE4_1__ 1
672// CHECK_SLM_M32: #define __SSE4_2__ 1
673// CHECK_SLM_M32: #define __SSE__ 1
674// CHECK_SLM_M32: #define __SSSE3__ 1
675// CHECK_SLM_M32: #define __i386 1
676// CHECK_SLM_M32: #define __i386__ 1
677// CHECK_SLM_M32: #define __slm 1
678// CHECK_SLM_M32: #define __slm__ 1
679// CHECK_SLM_M32: #define __tune_slm__ 1
680// CHECK_SLM_M32: #define i386 1
681// RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \
682// RUN: -target i386-unknown-linux \
683// RUN: | FileCheck %s -check-prefix=CHECK_SLM_M64
684// CHECK_SLM_M64: #define __MMX__ 1
685// CHECK_SLM_M64: #define __SSE2_MATH__ 1
686// CHECK_SLM_M64: #define __SSE2__ 1
687// CHECK_SLM_M64: #define __SSE3__ 1
688// CHECK_SLM_M64: #define __SSE4_1__ 1
689// CHECK_SLM_M64: #define __SSE4_2__ 1
690// CHECK_SLM_M64: #define __SSE_MATH__ 1
691// CHECK_SLM_M64: #define __SSE__ 1
692// CHECK_SLM_M64: #define __SSSE3__ 1
693// CHECK_SLM_M64: #define __amd64 1
694// CHECK_SLM_M64: #define __amd64__ 1
695// CHECK_SLM_M64: #define __slm 1
696// CHECK_SLM_M64: #define __slm__ 1
697// CHECK_SLM_M64: #define __tune_slm__ 1
698// CHECK_SLM_M64: #define __x86_64 1
699// CHECK_SLM_M64: #define __x86_64__ 1
700//
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000701// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000702// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000703// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000704// CHECK_GEODE_M32: #define __3dNOW_A__ 1
705// CHECK_GEODE_M32: #define __3dNOW__ 1
706// CHECK_GEODE_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000707// CHECK_GEODE_M32: #define __geode 1
708// CHECK_GEODE_M32: #define __geode__ 1
709// CHECK_GEODE_M32: #define __i386 1
710// CHECK_GEODE_M32: #define __i386__ 1
711// CHECK_GEODE_M32: #define __tune_geode__ 1
712// CHECK_GEODE_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000713// RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000714// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000715// RUN: | FileCheck %s -check-prefix=CHECK_GEODE_M64
716// CHECK_GEODE_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000717//
718// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000719// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000720// RUN: | FileCheck %s -check-prefix=CHECK_K6_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000721// CHECK_K6_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000722// CHECK_K6_M32: #define __i386 1
723// CHECK_K6_M32: #define __i386__ 1
724// CHECK_K6_M32: #define __k6 1
725// CHECK_K6_M32: #define __k6__ 1
726// CHECK_K6_M32: #define __tune_k6__ 1
727// CHECK_K6_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000728// RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000729// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000730// RUN: | FileCheck %s -check-prefix=CHECK_K6_M64
731// CHECK_K6_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000732//
733// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000734// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000735// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000736// CHECK_K6_2_M32: #define __3dNOW__ 1
737// CHECK_K6_2_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000738// CHECK_K6_2_M32: #define __i386 1
739// CHECK_K6_2_M32: #define __i386__ 1
740// CHECK_K6_2_M32: #define __k6 1
741// CHECK_K6_2_M32: #define __k6_2__ 1
742// CHECK_K6_2_M32: #define __k6__ 1
743// CHECK_K6_2_M32: #define __tune_k6_2__ 1
744// CHECK_K6_2_M32: #define __tune_k6__ 1
745// CHECK_K6_2_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000746// RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000747// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000748// RUN: | FileCheck %s -check-prefix=CHECK_K6_2_M64
749// CHECK_K6_2_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000750//
751// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000752// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000753// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000754// CHECK_K6_3_M32: #define __3dNOW__ 1
755// CHECK_K6_3_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000756// CHECK_K6_3_M32: #define __i386 1
757// CHECK_K6_3_M32: #define __i386__ 1
758// CHECK_K6_3_M32: #define __k6 1
759// CHECK_K6_3_M32: #define __k6_3__ 1
760// CHECK_K6_3_M32: #define __k6__ 1
761// CHECK_K6_3_M32: #define __tune_k6_3__ 1
762// CHECK_K6_3_M32: #define __tune_k6__ 1
763// CHECK_K6_3_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000764// RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000765// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000766// RUN: | FileCheck %s -check-prefix=CHECK_K6_3_M64
767// CHECK_K6_3_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000768//
769// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000770// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000771// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000772// CHECK_ATHLON_M32: #define __3dNOW_A__ 1
773// CHECK_ATHLON_M32: #define __3dNOW__ 1
774// CHECK_ATHLON_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000775// CHECK_ATHLON_M32: #define __athlon 1
776// CHECK_ATHLON_M32: #define __athlon__ 1
777// CHECK_ATHLON_M32: #define __i386 1
778// CHECK_ATHLON_M32: #define __i386__ 1
779// CHECK_ATHLON_M32: #define __tune_athlon__ 1
780// CHECK_ATHLON_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000781// RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000782// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000783// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_M64
784// CHECK_ATHLON_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000785//
786// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000787// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000788// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000789// CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
790// CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
791// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000792// CHECK_ATHLON_TBIRD_M32: #define __athlon 1
793// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
794// CHECK_ATHLON_TBIRD_M32: #define __i386 1
795// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
796// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
797// CHECK_ATHLON_TBIRD_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000798// RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000799// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000800// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_TBIRD_M64
801// CHECK_ATHLON_TBIRD_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000802//
803// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000804// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000805// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000806// CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
807// CHECK_ATHLON_4_M32: #define __3dNOW__ 1
808// CHECK_ATHLON_4_M32: #define __MMX__ 1
809// CHECK_ATHLON_4_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000810// CHECK_ATHLON_4_M32: #define __athlon 1
811// CHECK_ATHLON_4_M32: #define __athlon__ 1
812// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
813// CHECK_ATHLON_4_M32: #define __i386 1
814// CHECK_ATHLON_4_M32: #define __i386__ 1
815// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
Chandler Carruth5d0feef2011-09-28 09:54:11 +0000816// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000817// CHECK_ATHLON_4_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000818// RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000819// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000820// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_4_M64
821// CHECK_ATHLON_4_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000822//
823// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000824// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000825// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000826// CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
827// CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
828// CHECK_ATHLON_XP_M32: #define __MMX__ 1
829// CHECK_ATHLON_XP_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000830// CHECK_ATHLON_XP_M32: #define __athlon 1
831// CHECK_ATHLON_XP_M32: #define __athlon__ 1
832// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
833// CHECK_ATHLON_XP_M32: #define __i386 1
834// CHECK_ATHLON_XP_M32: #define __i386__ 1
835// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
Chandler Carruth5d0feef2011-09-28 09:54:11 +0000836// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000837// CHECK_ATHLON_XP_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000838// RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000839// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000840// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_XP_M64
841// CHECK_ATHLON_XP_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000842//
843// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000844// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000845// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000846// CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
847// CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
848// CHECK_ATHLON_MP_M32: #define __MMX__ 1
849// CHECK_ATHLON_MP_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000850// CHECK_ATHLON_MP_M32: #define __athlon 1
851// CHECK_ATHLON_MP_M32: #define __athlon__ 1
852// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
853// CHECK_ATHLON_MP_M32: #define __i386 1
854// CHECK_ATHLON_MP_M32: #define __i386__ 1
855// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
Chandler Carruth5d0feef2011-09-28 09:54:11 +0000856// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000857// CHECK_ATHLON_MP_M32: #define i386 1
Rafael Espindola925213b2013-07-04 16:16:58 +0000858// RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000859// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000860// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_MP_M64
861// CHECK_ATHLON_MP_M64: error:
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000862//
863// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000864// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000865// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000866// CHECK_X86_64_M32: #define __MMX__ 1
867// CHECK_X86_64_M32: #define __SSE2__ 1
868// CHECK_X86_64_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000869// CHECK_X86_64_M32: #define __i386 1
870// CHECK_X86_64_M32: #define __i386__ 1
871// CHECK_X86_64_M32: #define __k8 1
872// CHECK_X86_64_M32: #define __k8__ 1
873// CHECK_X86_64_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000874// RUN: %clang -march=x86-64 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000875// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000876// RUN: | FileCheck %s -check-prefix=CHECK_X86_64_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000877// CHECK_X86_64_M64: #define __MMX__ 1
878// CHECK_X86_64_M64: #define __SSE2_MATH__ 1
879// CHECK_X86_64_M64: #define __SSE2__ 1
880// CHECK_X86_64_M64: #define __SSE_MATH__ 1
881// CHECK_X86_64_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000882// CHECK_X86_64_M64: #define __amd64 1
883// CHECK_X86_64_M64: #define __amd64__ 1
884// CHECK_X86_64_M64: #define __k8 1
885// CHECK_X86_64_M64: #define __k8__ 1
886// CHECK_X86_64_M64: #define __x86_64 1
887// CHECK_X86_64_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000888//
889// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000890// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000891// RUN: | FileCheck %s -check-prefix=CHECK_K8_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000892// CHECK_K8_M32: #define __3dNOW_A__ 1
893// CHECK_K8_M32: #define __3dNOW__ 1
894// CHECK_K8_M32: #define __MMX__ 1
895// CHECK_K8_M32: #define __SSE2__ 1
896// CHECK_K8_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000897// CHECK_K8_M32: #define __i386 1
898// CHECK_K8_M32: #define __i386__ 1
899// CHECK_K8_M32: #define __k8 1
900// CHECK_K8_M32: #define __k8__ 1
901// CHECK_K8_M32: #define __tune_k8__ 1
902// CHECK_K8_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000903// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000904// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000905// RUN: | FileCheck %s -check-prefix=CHECK_K8_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000906// CHECK_K8_M64: #define __3dNOW_A__ 1
907// CHECK_K8_M64: #define __3dNOW__ 1
908// CHECK_K8_M64: #define __MMX__ 1
909// CHECK_K8_M64: #define __SSE2_MATH__ 1
910// CHECK_K8_M64: #define __SSE2__ 1
911// CHECK_K8_M64: #define __SSE_MATH__ 1
912// CHECK_K8_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000913// CHECK_K8_M64: #define __amd64 1
914// CHECK_K8_M64: #define __amd64__ 1
915// CHECK_K8_M64: #define __k8 1
916// CHECK_K8_M64: #define __k8__ 1
917// CHECK_K8_M64: #define __tune_k8__ 1
918// CHECK_K8_M64: #define __x86_64 1
919// CHECK_K8_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000920//
921// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000922// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000923// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000924// CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
925// CHECK_K8_SSE3_M32: #define __3dNOW__ 1
926// CHECK_K8_SSE3_M32: #define __MMX__ 1
927// CHECK_K8_SSE3_M32: #define __SSE2__ 1
928// CHECK_K8_SSE3_M32: #define __SSE3__ 1
929// CHECK_K8_SSE3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000930// CHECK_K8_SSE3_M32: #define __i386 1
931// CHECK_K8_SSE3_M32: #define __i386__ 1
932// CHECK_K8_SSE3_M32: #define __k8 1
933// CHECK_K8_SSE3_M32: #define __k8__ 1
934// CHECK_K8_SSE3_M32: #define __tune_k8__ 1
935// CHECK_K8_SSE3_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000936// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000937// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000938// RUN: | FileCheck %s -check-prefix=CHECK_K8_SSE3_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000939// CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
940// CHECK_K8_SSE3_M64: #define __3dNOW__ 1
941// CHECK_K8_SSE3_M64: #define __MMX__ 1
942// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
943// CHECK_K8_SSE3_M64: #define __SSE2__ 1
944// CHECK_K8_SSE3_M64: #define __SSE3__ 1
945// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
946// CHECK_K8_SSE3_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000947// CHECK_K8_SSE3_M64: #define __amd64 1
948// CHECK_K8_SSE3_M64: #define __amd64__ 1
949// CHECK_K8_SSE3_M64: #define __k8 1
950// CHECK_K8_SSE3_M64: #define __k8__ 1
951// CHECK_K8_SSE3_M64: #define __tune_k8__ 1
952// CHECK_K8_SSE3_M64: #define __x86_64 1
953// CHECK_K8_SSE3_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000954//
955// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000956// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000957// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000958// CHECK_OPTERON_M32: #define __3dNOW_A__ 1
959// CHECK_OPTERON_M32: #define __3dNOW__ 1
960// CHECK_OPTERON_M32: #define __MMX__ 1
961// CHECK_OPTERON_M32: #define __SSE2__ 1
962// CHECK_OPTERON_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000963// CHECK_OPTERON_M32: #define __i386 1
964// CHECK_OPTERON_M32: #define __i386__ 1
965// CHECK_OPTERON_M32: #define __k8 1
966// CHECK_OPTERON_M32: #define __k8__ 1
967// CHECK_OPTERON_M32: #define __tune_k8__ 1
968// CHECK_OPTERON_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000969// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000970// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000971// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000972// CHECK_OPTERON_M64: #define __3dNOW_A__ 1
973// CHECK_OPTERON_M64: #define __3dNOW__ 1
974// CHECK_OPTERON_M64: #define __MMX__ 1
975// CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
976// CHECK_OPTERON_M64: #define __SSE2__ 1
977// CHECK_OPTERON_M64: #define __SSE_MATH__ 1
978// CHECK_OPTERON_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +0000979// CHECK_OPTERON_M64: #define __amd64 1
980// CHECK_OPTERON_M64: #define __amd64__ 1
981// CHECK_OPTERON_M64: #define __k8 1
982// CHECK_OPTERON_M64: #define __k8__ 1
983// CHECK_OPTERON_M64: #define __tune_k8__ 1
984// CHECK_OPTERON_M64: #define __x86_64 1
985// CHECK_OPTERON_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000986//
987// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +0000988// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000989// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +0000990// CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
991// CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
992// CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
993// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
994// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
995// CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +0000996// CHECK_OPTERON_SSE3_M32: #define __i386 1
997// CHECK_OPTERON_SSE3_M32: #define __i386__ 1
998// CHECK_OPTERON_SSE3_M32: #define __k8 1
999// CHECK_OPTERON_SSE3_M32: #define __k8__ 1
1000// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
1001// CHECK_OPTERON_SSE3_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001002// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001003// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001004// RUN: | FileCheck %s -check-prefix=CHECK_OPTERON_SSE3_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001005// CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
1006// CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
1007// CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
1008// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
1009// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
1010// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
1011// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
1012// CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001013// CHECK_OPTERON_SSE3_M64: #define __amd64 1
1014// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
1015// CHECK_OPTERON_SSE3_M64: #define __k8 1
1016// CHECK_OPTERON_SSE3_M64: #define __k8__ 1
1017// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
1018// CHECK_OPTERON_SSE3_M64: #define __x86_64 1
1019// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001020//
1021// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001022// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001023// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001024// CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
1025// CHECK_ATHLON64_M32: #define __3dNOW__ 1
1026// CHECK_ATHLON64_M32: #define __MMX__ 1
1027// CHECK_ATHLON64_M32: #define __SSE2__ 1
1028// CHECK_ATHLON64_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001029// CHECK_ATHLON64_M32: #define __i386 1
1030// CHECK_ATHLON64_M32: #define __i386__ 1
1031// CHECK_ATHLON64_M32: #define __k8 1
1032// CHECK_ATHLON64_M32: #define __k8__ 1
1033// CHECK_ATHLON64_M32: #define __tune_k8__ 1
1034// CHECK_ATHLON64_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001035// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001036// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001037// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001038// CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
1039// CHECK_ATHLON64_M64: #define __3dNOW__ 1
1040// CHECK_ATHLON64_M64: #define __MMX__ 1
1041// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
1042// CHECK_ATHLON64_M64: #define __SSE2__ 1
1043// CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
1044// CHECK_ATHLON64_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001045// CHECK_ATHLON64_M64: #define __amd64 1
1046// CHECK_ATHLON64_M64: #define __amd64__ 1
1047// CHECK_ATHLON64_M64: #define __k8 1
1048// CHECK_ATHLON64_M64: #define __k8__ 1
1049// CHECK_ATHLON64_M64: #define __tune_k8__ 1
1050// CHECK_ATHLON64_M64: #define __x86_64 1
1051// CHECK_ATHLON64_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001052//
1053// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001054// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001055// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001056// CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
1057// CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
1058// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
1059// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
1060// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
1061// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001062// CHECK_ATHLON64_SSE3_M32: #define __i386 1
1063// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
1064// CHECK_ATHLON64_SSE3_M32: #define __k8 1
1065// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
1066// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
1067// CHECK_ATHLON64_SSE3_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001068// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001069// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001070// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON64_SSE3_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001071// CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
1072// CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
1073// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
1074// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
1075// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
1076// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
1077// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
1078// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001079// CHECK_ATHLON64_SSE3_M64: #define __amd64 1
1080// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
1081// CHECK_ATHLON64_SSE3_M64: #define __k8 1
1082// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
1083// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
1084// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
1085// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001086//
1087// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001088// RUN: -target i386-unknown-linux \
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001089// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M32
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001090// CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
1091// CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
1092// CHECK_ATHLON_FX_M32: #define __MMX__ 1
1093// CHECK_ATHLON_FX_M32: #define __SSE2__ 1
1094// CHECK_ATHLON_FX_M32: #define __SSE__ 1
Chandler Carruth5ac1e8e2011-09-28 02:59:25 +00001095// CHECK_ATHLON_FX_M32: #define __i386 1
1096// CHECK_ATHLON_FX_M32: #define __i386__ 1
1097// CHECK_ATHLON_FX_M32: #define __k8 1
1098// CHECK_ATHLON_FX_M32: #define __k8__ 1
1099// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
1100// CHECK_ATHLON_FX_M32: #define i386 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001101// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
Simon Atanasyance005eb2012-05-09 18:49:52 +00001102// RUN: -target i386-unknown-linux \
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001103// RUN: | FileCheck %s -check-prefix=CHECK_ATHLON_FX_M64
Chandler Carruthcd99bad2011-09-28 10:36:46 +00001104// CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
1105// CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
1106// CHECK_ATHLON_FX_M64: #define __MMX__ 1
1107// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
1108// CHECK_ATHLON_FX_M64: #define __SSE2__ 1
1109// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
1110// CHECK_ATHLON_FX_M64: #define __SSE__ 1
Chandler Carruth6e20c2b2011-09-28 09:45:08 +00001111// CHECK_ATHLON_FX_M64: #define __amd64 1
1112// CHECK_ATHLON_FX_M64: #define __amd64__ 1
1113// CHECK_ATHLON_FX_M64: #define __k8 1
1114// CHECK_ATHLON_FX_M64: #define __k8__ 1
1115// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
1116// CHECK_ATHLON_FX_M64: #define __x86_64 1
1117// CHECK_ATHLON_FX_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001118// RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \
1119// RUN: -target i386-unknown-linux \
1120// RUN: | FileCheck %s -check-prefix=CHECK_AMDFAM10_M32
1121// CHECK_AMDFAM10_M32: #define __3dNOW_A__ 1
1122// CHECK_AMDFAM10_M32: #define __3dNOW__ 1
1123// CHECK_AMDFAM10_M32: #define __LZCNT__ 1
1124// CHECK_AMDFAM10_M32: #define __MMX__ 1
1125// CHECK_AMDFAM10_M32: #define __POPCNT__ 1
1126// CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 1
1127// CHECK_AMDFAM10_M32: #define __SSE2__ 1
1128// CHECK_AMDFAM10_M32: #define __SSE3__ 1
1129// CHECK_AMDFAM10_M32: #define __SSE4A__ 1
1130// CHECK_AMDFAM10_M32: #define __SSE_MATH__ 1
1131// CHECK_AMDFAM10_M32: #define __SSE__ 1
1132// CHECK_AMDFAM10_M32: #define __amdfam10 1
1133// CHECK_AMDFAM10_M32: #define __amdfam10__ 1
1134// CHECK_AMDFAM10_M32: #define __i386 1
1135// CHECK_AMDFAM10_M32: #define __i386__ 1
1136// CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001137// RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \
1138// RUN: -target i386-unknown-linux \
1139// RUN: | FileCheck %s -check-prefix=CHECK_AMDFAM10_M64
1140// CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1
1141// CHECK_AMDFAM10_M64: #define __3dNOW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001142// CHECK_AMDFAM10_M64: #define __LZCNT__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001143// CHECK_AMDFAM10_M64: #define __MMX__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001144// CHECK_AMDFAM10_M64: #define __POPCNT__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001145// CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1
1146// CHECK_AMDFAM10_M64: #define __SSE2__ 1
1147// CHECK_AMDFAM10_M64: #define __SSE3__ 1
1148// CHECK_AMDFAM10_M64: #define __SSE4A__ 1
1149// CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1
1150// CHECK_AMDFAM10_M64: #define __SSE__ 1
1151// CHECK_AMDFAM10_M64: #define __amd64 1
1152// CHECK_AMDFAM10_M64: #define __amd64__ 1
1153// CHECK_AMDFAM10_M64: #define __amdfam10 1
1154// CHECK_AMDFAM10_M64: #define __amdfam10__ 1
1155// CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1
1156// CHECK_AMDFAM10_M64: #define __x86_64 1
1157// CHECK_AMDFAM10_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001158// RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \
1159// RUN: -target i386-unknown-linux \
1160// RUN: | FileCheck %s -check-prefix=CHECK_BTVER1_M32
1161// CHECK_BTVER1_M32-NOT: #define __3dNOW_A__ 1
1162// CHECK_BTVER1_M32-NOT: #define __3dNOW__ 1
1163// CHECK_BTVER1_M32: #define __LZCNT__ 1
1164// CHECK_BTVER1_M32: #define __MMX__ 1
1165// CHECK_BTVER1_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001166// CHECK_BTVER1_M32: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001167// CHECK_BTVER1_M32: #define __SSE2_MATH__ 1
1168// CHECK_BTVER1_M32: #define __SSE2__ 1
1169// CHECK_BTVER1_M32: #define __SSE3__ 1
1170// CHECK_BTVER1_M32: #define __SSE4A__ 1
1171// CHECK_BTVER1_M32: #define __SSE_MATH__ 1
1172// CHECK_BTVER1_M32: #define __SSE__ 1
1173// CHECK_BTVER1_M32: #define __SSSE3__ 1
1174// CHECK_BTVER1_M32: #define __btver1 1
1175// CHECK_BTVER1_M32: #define __btver1__ 1
1176// CHECK_BTVER1_M32: #define __i386 1
1177// CHECK_BTVER1_M32: #define __i386__ 1
1178// CHECK_BTVER1_M32: #define __tune_btver1__ 1
1179// RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \
1180// RUN: -target i386-unknown-linux \
1181// RUN: | FileCheck %s -check-prefix=CHECK_BTVER1_M64
1182// CHECK_BTVER1_M64-NOT: #define __3dNOW_A__ 1
1183// CHECK_BTVER1_M64-NOT: #define __3dNOW__ 1
1184// CHECK_BTVER1_M64: #define __LZCNT__ 1
1185// CHECK_BTVER1_M64: #define __MMX__ 1
1186// CHECK_BTVER1_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001187// CHECK_BTVER1_M64: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001188// CHECK_BTVER1_M64: #define __SSE2_MATH__ 1
1189// CHECK_BTVER1_M64: #define __SSE2__ 1
1190// CHECK_BTVER1_M64: #define __SSE3__ 1
1191// CHECK_BTVER1_M64: #define __SSE4A__ 1
1192// CHECK_BTVER1_M64: #define __SSE_MATH__ 1
1193// CHECK_BTVER1_M64: #define __SSE__ 1
1194// CHECK_BTVER1_M64: #define __SSSE3__ 1
1195// CHECK_BTVER1_M64: #define __amd64 1
1196// CHECK_BTVER1_M64: #define __amd64__ 1
1197// CHECK_BTVER1_M64: #define __btver1 1
1198// CHECK_BTVER1_M64: #define __btver1__ 1
1199// CHECK_BTVER1_M64: #define __tune_btver1__ 1
1200// CHECK_BTVER1_M64: #define __x86_64 1
1201// CHECK_BTVER1_M64: #define __x86_64__ 1
Benjamin Kramer914d7e02013-05-03 10:47:15 +00001202// RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \
1203// RUN: -target i386-unknown-linux \
1204// RUN: | FileCheck %s -check-prefix=CHECK_BTVER2_M32
1205// CHECK_BTVER2_M32-NOT: #define __3dNOW_A__ 1
1206// CHECK_BTVER2_M32-NOT: #define __3dNOW__ 1
1207// CHECK_BTVER2_M32: #define __AES__ 1
1208// CHECK_BTVER2_M32: #define __AVX__ 1
1209// CHECK_BTVER2_M32: #define __LZCNT__ 1
1210// CHECK_BTVER2_M32: #define __MMX__ 1
1211// CHECK_BTVER2_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001212// CHECK_BTVER2_M32: #define __PRFCHW__ 1
Benjamin Kramer914d7e02013-05-03 10:47:15 +00001213// CHECK_BTVER2_M32: #define __SSE2_MATH__ 1
1214// CHECK_BTVER2_M32: #define __SSE2__ 1
1215// CHECK_BTVER2_M32: #define __SSE3__ 1
1216// CHECK_BTVER2_M32: #define __SSE4A__ 1
1217// CHECK_BTVER2_M32: #define __SSE_MATH__ 1
1218// CHECK_BTVER2_M32: #define __SSE__ 1
1219// CHECK_BTVER2_M32: #define __SSSE3__ 1
1220// CHECK_BTVER2_M32: #define __btver2 1
1221// CHECK_BTVER2_M32: #define __btver2__ 1
1222// CHECK_BTVER2_M32: #define __i386 1
1223// CHECK_BTVER2_M32: #define __i386__ 1
1224// CHECK_BTVER2_M32: #define __tune_btver2__ 1
1225// RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \
1226// RUN: -target i386-unknown-linux \
1227// RUN: | FileCheck %s -check-prefix=CHECK_BTVER2_M64
1228// CHECK_BTVER2_M64-NOT: #define __3dNOW_A__ 1
1229// CHECK_BTVER2_M64-NOT: #define __3dNOW__ 1
1230// CHECK_BTVER2_M64: #define __AES__ 1
1231// CHECK_BTVER2_M64: #define __AVX__ 1
1232// CHECK_BTVER2_M64: #define __LZCNT__ 1
1233// CHECK_BTVER2_M64: #define __MMX__ 1
1234// CHECK_BTVER2_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001235// CHECK_BTVER2_M64: #define __PRFCHW__ 1
Benjamin Kramer914d7e02013-05-03 10:47:15 +00001236// CHECK_BTVER2_M64: #define __SSE2_MATH__ 1
1237// CHECK_BTVER2_M64: #define __SSE2__ 1
1238// CHECK_BTVER2_M64: #define __SSE3__ 1
1239// CHECK_BTVER2_M64: #define __SSE4A__ 1
1240// CHECK_BTVER2_M64: #define __SSE_MATH__ 1
1241// CHECK_BTVER2_M64: #define __SSE__ 1
1242// CHECK_BTVER2_M64: #define __SSSE3__ 1
1243// CHECK_BTVER2_M64: #define __amd64 1
1244// CHECK_BTVER2_M64: #define __amd64__ 1
1245// CHECK_BTVER2_M64: #define __btver2 1
1246// CHECK_BTVER2_M64: #define __btver2__ 1
1247// CHECK_BTVER2_M64: #define __tune_btver2__ 1
1248// CHECK_BTVER2_M64: #define __x86_64 1
1249// CHECK_BTVER2_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001250// RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
1251// RUN: -target i386-unknown-linux \
1252// RUN: | FileCheck %s -check-prefix=CHECK_BDVER1_M32
1253// CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1
1254// CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1
1255// CHECK_BDVER1_M32: #define __AES__ 1
1256// CHECK_BDVER1_M32: #define __AVX__ 1
1257// CHECK_BDVER1_M32: #define __FMA4__ 1
1258// CHECK_BDVER1_M32: #define __LZCNT__ 1
1259// CHECK_BDVER1_M32: #define __MMX__ 1
1260// CHECK_BDVER1_M32: #define __PCLMUL__ 1
1261// CHECK_BDVER1_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001262// CHECK_BDVER1_M32: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001263// CHECK_BDVER1_M32: #define __SSE2_MATH__ 1
1264// CHECK_BDVER1_M32: #define __SSE2__ 1
1265// CHECK_BDVER1_M32: #define __SSE3__ 1
1266// CHECK_BDVER1_M32: #define __SSE4A__ 1
1267// CHECK_BDVER1_M32: #define __SSE4_1__ 1
1268// CHECK_BDVER1_M32: #define __SSE4_2__ 1
1269// CHECK_BDVER1_M32: #define __SSE_MATH__ 1
1270// CHECK_BDVER1_M32: #define __SSE__ 1
1271// CHECK_BDVER1_M32: #define __SSSE3__ 1
1272// CHECK_BDVER1_M32: #define __XOP__ 1
1273// CHECK_BDVER1_M32: #define __bdver1 1
1274// CHECK_BDVER1_M32: #define __bdver1__ 1
1275// CHECK_BDVER1_M32: #define __i386 1
1276// CHECK_BDVER1_M32: #define __i386__ 1
1277// CHECK_BDVER1_M32: #define __tune_bdver1__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001278// RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
1279// RUN: -target i386-unknown-linux \
1280// RUN: | FileCheck %s -check-prefix=CHECK_BDVER1_M64
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001281// CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
1282// CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001283// CHECK_BDVER1_M64: #define __AES__ 1
1284// CHECK_BDVER1_M64: #define __AVX__ 1
Craig Topperf561a9562012-06-09 22:24:14 +00001285// CHECK_BDVER1_M64: #define __FMA4__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001286// CHECK_BDVER1_M64: #define __LZCNT__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001287// CHECK_BDVER1_M64: #define __MMX__ 1
Craig Topperf561a9562012-06-09 22:24:14 +00001288// CHECK_BDVER1_M64: #define __PCLMUL__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001289// CHECK_BDVER1_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001290// CHECK_BDVER1_M64: #define __PRFCHW__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001291// CHECK_BDVER1_M64: #define __SSE2_MATH__ 1
1292// CHECK_BDVER1_M64: #define __SSE2__ 1
1293// CHECK_BDVER1_M64: #define __SSE3__ 1
1294// CHECK_BDVER1_M64: #define __SSE4A__ 1
1295// CHECK_BDVER1_M64: #define __SSE4_1__ 1
1296// CHECK_BDVER1_M64: #define __SSE4_2__ 1
1297// CHECK_BDVER1_M64: #define __SSE_MATH__ 1
1298// CHECK_BDVER1_M64: #define __SSE__ 1
1299// CHECK_BDVER1_M64: #define __SSSE3__ 1
Craig Topperf561a9562012-06-09 22:24:14 +00001300// CHECK_BDVER1_M64: #define __XOP__ 1
Benjamin Kramer8ac9c222012-05-29 17:48:39 +00001301// CHECK_BDVER1_M64: #define __amd64 1
1302// CHECK_BDVER1_M64: #define __amd64__ 1
1303// CHECK_BDVER1_M64: #define __bdver1 1
1304// CHECK_BDVER1_M64: #define __bdver1__ 1
1305// CHECK_BDVER1_M64: #define __tune_bdver1__ 1
1306// CHECK_BDVER1_M64: #define __x86_64 1
1307// CHECK_BDVER1_M64: #define __x86_64__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001308// RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \
1309// RUN: -target i386-unknown-linux \
1310// RUN: | FileCheck %s -check-prefix=CHECK_BDVER2_M32
1311// CHECK_BDVER2_M32-NOT: #define __3dNOW_A__ 1
1312// CHECK_BDVER2_M32-NOT: #define __3dNOW__ 1
1313// CHECK_BDVER2_M32: #define __AES__ 1
1314// CHECK_BDVER2_M32: #define __AVX__ 1
1315// CHECK_BDVER2_M32: #define __BMI__ 1
1316// CHECK_BDVER2_M32: #define __F16C__ 1
1317// CHECK_BDVER2_M32: #define __FMA4__ 1
1318// CHECK_BDVER2_M32: #define __FMA__ 1
1319// CHECK_BDVER2_M32: #define __LZCNT__ 1
1320// CHECK_BDVER2_M32: #define __MMX__ 1
1321// CHECK_BDVER2_M32: #define __PCLMUL__ 1
1322// CHECK_BDVER2_M32: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001323// CHECK_BDVER2_M32: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001324// CHECK_BDVER2_M32: #define __SSE2_MATH__ 1
1325// CHECK_BDVER2_M32: #define __SSE2__ 1
1326// CHECK_BDVER2_M32: #define __SSE3__ 1
1327// CHECK_BDVER2_M32: #define __SSE4A__ 1
1328// CHECK_BDVER2_M32: #define __SSE4_1__ 1
1329// CHECK_BDVER2_M32: #define __SSE4_2__ 1
1330// CHECK_BDVER2_M32: #define __SSE_MATH__ 1
1331// CHECK_BDVER2_M32: #define __SSE__ 1
1332// CHECK_BDVER2_M32: #define __SSSE3__ 1
Yunzhong Gao1f6aeeb2013-09-24 19:00:58 +00001333// CHECK_BDVER2_M32: #define __TBM__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001334// CHECK_BDVER2_M32: #define __XOP__ 1
1335// CHECK_BDVER2_M32: #define __bdver2 1
1336// CHECK_BDVER2_M32: #define __bdver2__ 1
1337// CHECK_BDVER2_M32: #define __i386 1
1338// CHECK_BDVER2_M32: #define __i386__ 1
1339// CHECK_BDVER2_M32: #define __tune_bdver2__ 1
1340// RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \
1341// RUN: -target i386-unknown-linux \
1342// RUN: | FileCheck %s -check-prefix=CHECK_BDVER2_M64
1343// CHECK_BDVER2_M64-NOT: #define __3dNOW_A__ 1
1344// CHECK_BDVER2_M64-NOT: #define __3dNOW__ 1
1345// CHECK_BDVER2_M64: #define __AES__ 1
1346// CHECK_BDVER2_M64: #define __AVX__ 1
1347// CHECK_BDVER2_M64: #define __BMI__ 1
1348// CHECK_BDVER2_M64: #define __F16C__ 1
1349// CHECK_BDVER2_M64: #define __FMA4__ 1
1350// CHECK_BDVER2_M64: #define __FMA__ 1
1351// CHECK_BDVER2_M64: #define __LZCNT__ 1
1352// CHECK_BDVER2_M64: #define __MMX__ 1
1353// CHECK_BDVER2_M64: #define __PCLMUL__ 1
1354// CHECK_BDVER2_M64: #define __POPCNT__ 1
Yunzhong Gao61089362013-10-16 19:07:02 +00001355// CHECK_BDVER2_M64: #define __PRFCHW__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001356// CHECK_BDVER2_M64: #define __SSE2_MATH__ 1
1357// CHECK_BDVER2_M64: #define __SSE2__ 1
1358// CHECK_BDVER2_M64: #define __SSE3__ 1
1359// CHECK_BDVER2_M64: #define __SSE4A__ 1
1360// CHECK_BDVER2_M64: #define __SSE4_1__ 1
1361// CHECK_BDVER2_M64: #define __SSE4_2__ 1
1362// CHECK_BDVER2_M64: #define __SSE_MATH__ 1
1363// CHECK_BDVER2_M64: #define __SSE__ 1
1364// CHECK_BDVER2_M64: #define __SSSE3__ 1
Yunzhong Gao1f6aeeb2013-09-24 19:00:58 +00001365// CHECK_BDVER2_M64: #define __TBM__ 1
Eli Friedman3e94f572012-11-17 01:43:10 +00001366// CHECK_BDVER2_M64: #define __XOP__ 1
1367// CHECK_BDVER2_M64: #define __amd64 1
1368// CHECK_BDVER2_M64: #define __amd64__ 1
1369// CHECK_BDVER2_M64: #define __bdver2 1
1370// CHECK_BDVER2_M64: #define __bdver2__ 1
1371// CHECK_BDVER2_M64: #define __tune_bdver2__ 1
1372// CHECK_BDVER2_M64: #define __x86_64 1
1373// CHECK_BDVER2_M64: #define __x86_64__ 1
Chandler Carruthe83c3d92011-09-28 10:17:41 +00001374//
1375// End X86/GCC/Linux tests ------------------
Eric Christopher2fe3b4a2013-10-16 21:19:26 +00001376
1377// Begin PPC/GCC/Linux tests ----------------
1378// RUN: %clang -mvsx -E -dM %s -o - 2>&1 \
1379// RUN: -target powerpc64-unknown-linux \
1380// RUN: | FileCheck %s -check-prefix=CHECK_PPC_VSX_M64
1381//
1382// CHECK_PPC_VSX_M64: #define __VSX__