4580 lines · c
1// Begin X86/GCC/Linux tests ----------------2 3// RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \4// RUN: -target i386-unknown-linux \5// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I386_M326// CHECK_I386_M32: #define __LAHF_SAHF__ 17// CHECK_I386_M32: #define __i386 18// CHECK_I386_M32: #define __i386__ 19// CHECK_I386_M32: #define __tune_i386__ 110// CHECK_I386_M32: #define i386 111// RUN: not %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \12// RUN: -target i386-unknown-linux \13// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I386_M6414// CHECK_I386_M64: error: {{.*}}15 16// RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \17// RUN: -target i386-unknown-linux \18// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I486_M3219// CHECK_I486_M32: #define __i386 120// CHECK_I486_M32: #define __i386__ 121// CHECK_I486_M32: #define __i486 122// CHECK_I486_M32: #define __i486__ 123// CHECK_I486_M32: #define __tune_i486__ 124// CHECK_I486_M32: #define i386 125// RUN: not %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \26// RUN: -target i386-unknown-linux \27// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I486_M6428// CHECK_I486_M64: error: {{.*}}29 30// RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \31// RUN: -target i386-unknown-linux \32// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I586_M3233// CHECK_I586_M32: #define __i386 134// CHECK_I586_M32: #define __i386__ 135// CHECK_I586_M32: #define __i586 136// CHECK_I586_M32: #define __i586__ 137// CHECK_I586_M32: #define __pentium 138// CHECK_I586_M32: #define __pentium__ 139// CHECK_I586_M32: #define __tune_i586__ 140// CHECK_I586_M32: #define __tune_pentium__ 141// CHECK_I586_M32: #define i386 142// RUN: not %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \43// RUN: -target i386-unknown-linux \44// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I586_M6445// CHECK_I586_M64: error: {{.*}}46 47// RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \48// RUN: -target i386-unknown-linux \49// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M3250// CHECK_PENTIUM_M32: #define __i386 151// CHECK_PENTIUM_M32: #define __i386__ 152// CHECK_PENTIUM_M32: #define __i586 153// CHECK_PENTIUM_M32: #define __i586__ 154// CHECK_PENTIUM_M32: #define __pentium 155// CHECK_PENTIUM_M32: #define __pentium__ 156// CHECK_PENTIUM_M32: #define __tune_i586__ 157// CHECK_PENTIUM_M32: #define __tune_pentium__ 158// CHECK_PENTIUM_M32: #define i386 159// RUN: not %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \60// RUN: -target i386-unknown-linux \61// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M6462// CHECK_PENTIUM_M64: error: {{.*}}63 64// RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \65// RUN: -target i386-unknown-linux \66// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_MMX_M3267// CHECK_PENTIUM_MMX_M32: #define __MMX__ 168// CHECK_PENTIUM_MMX_M32: #define __i386 169// CHECK_PENTIUM_MMX_M32: #define __i386__ 170// CHECK_PENTIUM_MMX_M32: #define __i586 171// CHECK_PENTIUM_MMX_M32: #define __i586__ 172// CHECK_PENTIUM_MMX_M32: #define __pentium 173// CHECK_PENTIUM_MMX_M32: #define __pentium__ 174// CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 175// CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 176// CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 177// CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 178// CHECK_PENTIUM_MMX_M32: #define i386 179// RUN: not %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \80// RUN: -target i386-unknown-linux \81// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_MMX_M6482// CHECK_PENTIUM_MMX_M64: error: {{.*}}83 84// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \85// RUN: -target i386-unknown-linux \86// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP_C6_M3287// CHECK_WINCHIP_C6_M32: #define __MMX__ 188// CHECK_WINCHIP_C6_M32: #define __i386 189// CHECK_WINCHIP_C6_M32: #define __i386__ 190// CHECK_WINCHIP_C6_M32: #define __i486 191// CHECK_WINCHIP_C6_M32: #define __i486__ 192// CHECK_WINCHIP_C6_M32: #define __tune_i486__ 193// CHECK_WINCHIP_C6_M32: #define i386 194// RUN: not %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \95// RUN: -target i386-unknown-linux \96// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP_C6_M6497// CHECK_WINCHIP_C6_M64: error: {{.*}}98 99// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \100// RUN: -target i386-unknown-linux \101// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP2_M32102// CHECK_WINCHIP2_M32: #define __MMX__ 1103// CHECK_WINCHIP2_M32: #define __i386 1104// CHECK_WINCHIP2_M32: #define __i386__ 1105// CHECK_WINCHIP2_M32: #define __i486 1106// CHECK_WINCHIP2_M32: #define __i486__ 1107// CHECK_WINCHIP2_M32: #define __tune_i486__ 1108// CHECK_WINCHIP2_M32: #define i386 1109// RUN: not %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \110// RUN: -target i386-unknown-linux \111// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP2_M64112// CHECK_WINCHIP2_M64: error: {{.*}}113 114// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \115// RUN: -target i386-unknown-linux \116// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_M32117// CHECK_C3_M32: #define __MMX__ 1118// CHECK_C3_M32: #define __i386 1119// CHECK_C3_M32: #define __i386__ 1120// CHECK_C3_M32: #define __i486 1121// CHECK_C3_M32: #define __i486__ 1122// CHECK_C3_M32: #define __tune_i486__ 1123// CHECK_C3_M32: #define i386 1124// RUN: not %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \125// RUN: -target i386-unknown-linux \126// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_M64127// CHECK_C3_M64: error: {{.*}}128 129// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \130// RUN: -target i386-unknown-linux \131// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_2_M32132// CHECK_C3_2_M32: #define __MMX__ 1133// CHECK_C3_2_M32: #define __SSE__ 1134// CHECK_C3_2_M32: #define __i386 1135// CHECK_C3_2_M32: #define __i386__ 1136// CHECK_C3_2_M32: #define __i686 1137// CHECK_C3_2_M32: #define __i686__ 1138// CHECK_C3_2_M32: #define __pentiumpro 1139// CHECK_C3_2_M32: #define __pentiumpro__ 1140// CHECK_C3_2_M32: #define __tune_i686__ 1141// CHECK_C3_2_M32: #define __tune_pentium2__ 1142// CHECK_C3_2_M32: #define __tune_pentiumpro__ 1143// CHECK_C3_2_M32: #define i386 1144// RUN: not %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \145// RUN: -target i386-unknown-linux \146// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_2_M64147// CHECK_C3_2_M64: error: {{.*}}148 149// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \150// RUN: -target i386-unknown-linux \151// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I686_M32152// CHECK_I686_M32: #define __i386 1153// CHECK_I686_M32: #define __i386__ 1154// CHECK_I686_M32: #define __i686 1155// CHECK_I686_M32: #define __i686__ 1156// CHECK_I686_M32: #define __pentiumpro 1157// CHECK_I686_M32: #define __pentiumpro__ 1158// CHECK_I686_M32: #define __tune_i686__ 1159// CHECK_I686_M32: #define __tune_pentiumpro__ 1160// CHECK_I686_M32: #define i386 1161// RUN: not %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \162// RUN: -target i386-unknown-linux \163// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I686_M64164// CHECK_I686_M64: error: {{.*}}165 166// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \167// RUN: -target i386-unknown-linux \168// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUMPRO_M32169// CHECK_PENTIUMPRO_M32: #define __i386 1170// CHECK_PENTIUMPRO_M32: #define __i386__ 1171// CHECK_PENTIUMPRO_M32: #define __i686 1172// CHECK_PENTIUMPRO_M32: #define __i686__ 1173// CHECK_PENTIUMPRO_M32: #define __pentiumpro 1174// CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1175// CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1176// CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1177// CHECK_PENTIUMPRO_M32: #define i386 1178// RUN: not %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \179// RUN: -target i386-unknown-linux \180// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUMPRO_M64181// CHECK_PENTIUMPRO_M64: error: {{.*}}182 183// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \184// RUN: -target i386-unknown-linux \185// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM2_M32186// CHECK_PENTIUM2_M32: #define __FXSR__ 1187// CHECK_PENTIUM2_M32: #define __MMX__ 1188// CHECK_PENTIUM2_M32: #define __i386 1189// CHECK_PENTIUM2_M32: #define __i386__ 1190// CHECK_PENTIUM2_M32: #define __i686 1191// CHECK_PENTIUM2_M32: #define __i686__ 1192// CHECK_PENTIUM2_M32: #define __pentiumpro 1193// CHECK_PENTIUM2_M32: #define __pentiumpro__ 1194// CHECK_PENTIUM2_M32: #define __tune_i686__ 1195// CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1196// CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1197// CHECK_PENTIUM2_M32: #define i386 1198// RUN: not %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \199// RUN: -target i386-unknown-linux \200// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM2_M64201// CHECK_PENTIUM2_M64: error: {{.*}}202 203// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \204// RUN: -target i386-unknown-linux \205// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3_M32206// CHECK_PENTIUM3_M32: #define __MMX__ 1207// CHECK_PENTIUM3_M32: #define __SSE__ 1208// CHECK_PENTIUM3_M32: #define __i386 1209// CHECK_PENTIUM3_M32: #define __i386__ 1210// CHECK_PENTIUM3_M32: #define __i686 1211// CHECK_PENTIUM3_M32: #define __i686__ 1212// CHECK_PENTIUM3_M32: #define __pentiumpro 1213// CHECK_PENTIUM3_M32: #define __pentiumpro__ 1214// CHECK_PENTIUM3_M32: #define __tune_i686__ 1215// CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1216// CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1217// CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1218// CHECK_PENTIUM3_M32: #define i386 1219// RUN: not %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \220// RUN: -target i386-unknown-linux \221// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3_M64222// CHECK_PENTIUM3_M64: error: {{.*}}223 224// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \225// RUN: -target i386-unknown-linux \226// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3M_M32227// CHECK_PENTIUM3M_M32: #define __MMX__ 1228// CHECK_PENTIUM3M_M32: #define __SSE__ 1229// CHECK_PENTIUM3M_M32: #define __i386 1230// CHECK_PENTIUM3M_M32: #define __i386__ 1231// CHECK_PENTIUM3M_M32: #define __i686 1232// CHECK_PENTIUM3M_M32: #define __i686__ 1233// CHECK_PENTIUM3M_M32: #define __pentiumpro 1234// CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1235// CHECK_PENTIUM3M_M32: #define __tune_i686__ 1236// CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1237// CHECK_PENTIUM3M_M32: #define i386 1238// RUN: not %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \239// RUN: -target i386-unknown-linux \240// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3M_M64241// CHECK_PENTIUM3M_M64: error: {{.*}}242 243// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \244// RUN: -target i386-unknown-linux \245// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M_M32246// CHECK_PENTIUM_M_M32: #define __MMX__ 1247// CHECK_PENTIUM_M_M32: #define __SSE2__ 1248// CHECK_PENTIUM_M_M32: #define __SSE__ 1249// CHECK_PENTIUM_M_M32: #define __i386 1250// CHECK_PENTIUM_M_M32: #define __i386__ 1251// CHECK_PENTIUM_M_M32: #define __i686 1252// CHECK_PENTIUM_M_M32: #define __i686__ 1253// CHECK_PENTIUM_M_M32: #define __pentiumpro 1254// CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1255// CHECK_PENTIUM_M_M32: #define __tune_i686__ 1256// CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1257// CHECK_PENTIUM_M_M32: #define i386 1258// RUN: not %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \259// RUN: -target i386-unknown-linux \260// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M_M64261// CHECK_PENTIUM_M_M64: error: {{.*}}262 263// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \264// RUN: -target i386-unknown-linux \265// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4_M32266// CHECK_PENTIUM4_M32: #define __MMX__ 1267// CHECK_PENTIUM4_M32: #define __SSE2__ 1268// CHECK_PENTIUM4_M32: #define __SSE__ 1269// CHECK_PENTIUM4_M32: #define __i386 1270// CHECK_PENTIUM4_M32: #define __i386__ 1271// CHECK_PENTIUM4_M32: #define __pentium4 1272// CHECK_PENTIUM4_M32: #define __pentium4__ 1273// CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1274// CHECK_PENTIUM4_M32: #define i386 1275// RUN: not %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \276// RUN: -target i386-unknown-linux \277// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4_M64278// CHECK_PENTIUM4_M64: error: {{.*}}279 280// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \281// RUN: -target i386-unknown-linux \282// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4M_M32283// CHECK_PENTIUM4M_M32: #define __MMX__ 1284// CHECK_PENTIUM4M_M32: #define __SSE2__ 1285// CHECK_PENTIUM4M_M32: #define __SSE__ 1286// CHECK_PENTIUM4M_M32: #define __i386 1287// CHECK_PENTIUM4M_M32: #define __i386__ 1288// CHECK_PENTIUM4M_M32: #define __pentium4 1289// CHECK_PENTIUM4M_M32: #define __pentium4__ 1290// CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1291// CHECK_PENTIUM4M_M32: #define i386 1292// RUN: not %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \293// RUN: -target i386-unknown-linux \294// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4M_M64295// CHECK_PENTIUM4M_M64: error: {{.*}}296 297// RUN: %clang -march=yonah -m32 -E -dM %s -o - 2>&1 \298// RUN: -target i386-unknown-linux \299// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_YONAH_M32300// CHECK_YONAH_M32: #define __MMX__ 1301// CHECK_YONAH_M32: #define __SSE2__ 1302// CHECK_YONAH_M32: #define __SSE3__ 1303// CHECK_YONAH_M32: #define __SSE__ 1304// CHECK_YONAH_M32: #define __i386 1305// CHECK_YONAH_M32: #define __i386__ 1306// CHECK_YONAH_M32: #define __nocona 1307// CHECK_YONAH_M32: #define __nocona__ 1308// CHECK_YONAH_M32: #define __tune_nocona__ 1309// CHECK_YONAH_M32: #define i386 1310// RUN: not %clang -march=yonah -m64 -E -dM %s -o - 2>&1 \311// RUN: -target i386-unknown-linux \312// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_YONAH_M64313// CHECK_YONAH_M64: error: {{.*}}314 315// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \316// RUN: -target i386-unknown-linux \317// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PRESCOTT_M32318// CHECK_PRESCOTT_M32: #define __MMX__ 1319// CHECK_PRESCOTT_M32: #define __SSE2__ 1320// CHECK_PRESCOTT_M32: #define __SSE3__ 1321// CHECK_PRESCOTT_M32: #define __SSE__ 1322// CHECK_PRESCOTT_M32: #define __i386 1323// CHECK_PRESCOTT_M32: #define __i386__ 1324// CHECK_PRESCOTT_M32: #define __nocona 1325// CHECK_PRESCOTT_M32: #define __nocona__ 1326// CHECK_PRESCOTT_M32: #define __tune_nocona__ 1327// CHECK_PRESCOTT_M32: #define i386 1328// RUN: not %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \329// RUN: -target i386-unknown-linux \330// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PRESCOTT_M64331// CHECK_PRESCOTT_M64: error: {{.*}}332 333// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \334// RUN: -target i386-unknown-linux \335// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_NOCONA_M32336// CHECK_NOCONA_M32: #define __MMX__ 1337// CHECK_NOCONA_M32: #define __SSE2__ 1338// CHECK_NOCONA_M32: #define __SSE3__ 1339// CHECK_NOCONA_M32: #define __SSE__ 1340// CHECK_NOCONA_M32: #define __i386 1341// CHECK_NOCONA_M32: #define __i386__ 1342// CHECK_NOCONA_M32: #define __nocona 1343// CHECK_NOCONA_M32: #define __nocona__ 1344// CHECK_NOCONA_M32: #define __tune_nocona__ 1345// CHECK_NOCONA_M32: #define i386 1346// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \347// RUN: -target i386-unknown-linux \348// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_NOCONA_M64349// CHECK_NOCONA_M64: #define __MMX__ 1350// CHECK_NOCONA_M64: #define __SSE2_MATH__ 1351// CHECK_NOCONA_M64: #define __SSE2__ 1352// CHECK_NOCONA_M64: #define __SSE3__ 1353// CHECK_NOCONA_M64: #define __SSE_MATH__ 1354// CHECK_NOCONA_M64: #define __SSE__ 1355// CHECK_NOCONA_M64: #define __amd64 1356// CHECK_NOCONA_M64: #define __amd64__ 1357// CHECK_NOCONA_M64: #define __nocona 1358// CHECK_NOCONA_M64: #define __nocona__ 1359// CHECK_NOCONA_M64: #define __tune_nocona__ 1360// CHECK_NOCONA_M64: #define __x86_64 1361// CHECK_NOCONA_M64: #define __x86_64__ 1362 363// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \364// RUN: -target i386-unknown-linux \365// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE2_M32366// RUN: %clang -march=penryn -m32 -E -dM %s -o - 2>&1 \367// RUN: -target i386-unknown-linux \368// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_CORE2_M32,CHECK_PENRYN_M32369// CHECK_CORE2_M32: #define __MMX__ 1370// CHECK_CORE2_M32: #define __SSE2__ 1371// CHECK_CORE2_M32: #define __SSE3__ 1372// CHECK_PENRYN_M32: #define __SSE4_1__ 1373// CHECK_CORE2_M32: #define __SSE__ 1374// CHECK_CORE2_M32: #define __SSSE3__ 1375// CHECK_CORE2_M32: #define __core2 1376// CHECK_CORE2_M32: #define __core2__ 1377// CHECK_CORE2_M32: #define __i386 1378// CHECK_CORE2_M32: #define __i386__ 1379// CHECK_CORE2_M32: #define __tune_core2__ 1380// CHECK_CORE2_M32: #define i386 1381 382// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \383// RUN: -target i386-unknown-linux \384// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE2_M64385// RUN: %clang -march=penryn -m64 -E -dM %s -o - 2>&1 \386// RUN: -target i386-unknown-linux \387// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_CORE2_M64,CHECK_PENRYN_M64388// CHECK_CORE2_M64: #define __MMX__ 1389// CHECK_CORE2_M64: #define __SSE2_MATH__ 1390// CHECK_CORE2_M64: #define __SSE2__ 1391// CHECK_CORE2_M64: #define __SSE3__ 1392// CHECK_PENRYN_M64: #define __SSE4_1__ 1393// CHECK_CORE2_M64: #define __SSE_MATH__ 1394// CHECK_CORE2_M64: #define __SSE__ 1395// CHECK_CORE2_M64: #define __SSSE3__ 1396// CHECK_CORE2_M64: #define __amd64 1397// CHECK_CORE2_M64: #define __amd64__ 1398// CHECK_CORE2_M64: #define __core2 1399// CHECK_CORE2_M64: #define __core2__ 1400// CHECK_CORE2_M64: #define __tune_core2__ 1401// CHECK_CORE2_M64: #define __x86_64 1402// CHECK_CORE2_M64: #define __x86_64__ 1403 404// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \405// RUN: -target i386-unknown-linux \406// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M32407// RUN: %clang -march=nehalem -m32 -E -dM %s -o - 2>&1 \408// RUN: -target i386-unknown-linux \409// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M32410// RUN: %clang -march=westmere -m32 -E -dM %s -o - 2>&1 \411// RUN: -target i386-unknown-linux \412// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_COREI7_M32,CHECK_WESTMERE_M32413// CHECK_COREI7_M32: #define __CRC32__ 1414// CHECK_COREI7_M32: #define __MMX__ 1415// CHECK_WESTMERE_M32: #define __PCLMUL__ 1416// CHECK_COREI7_M32: #define __POPCNT__ 1417// CHECK_COREI7_M32: #define __SSE2__ 1418// CHECK_COREI7_M32: #define __SSE3__ 1419// CHECK_COREI7_M32: #define __SSE4_1__ 1420// CHECK_COREI7_M32: #define __SSE4_2__ 1421// CHECK_COREI7_M32: #define __SSE__ 1422// CHECK_COREI7_M32: #define __SSSE3__ 1423// CHECK_COREI7_M32: #define __corei7 1424// CHECK_COREI7_M32: #define __corei7__ 1425// CHECK_COREI7_M32: #define __i386 1426// CHECK_COREI7_M32: #define __i386__ 1427// CHECK_COREI7_M32: #define __tune_corei7__ 1428// CHECK_COREI7_M32: #define i386 1429 430// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \431// RUN: -target i386-unknown-linux \432// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M64433// RUN: %clang -march=nehalem -m64 -E -dM %s -o - 2>&1 \434// RUN: -target i386-unknown-linux \435// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M64436// RUN: %clang -march=westmere -m64 -E -dM %s -o - 2>&1 \437// RUN: -target i386-unknown-linux \438// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_COREI7_M64,CHECK_WESTMERE_M64439// CHECK_COREI7_M64: #define __CRC32__ 1440// CHECK_COREI7_M64: #define __MMX__ 1441// CHECK_WESTMERE_M64: #define __PCLMUL__ 1442// CHECK_COREI7_M64: #define __POPCNT__ 1443// CHECK_COREI7_M64: #define __SSE2_MATH__ 1444// CHECK_COREI7_M64: #define __SSE2__ 1445// CHECK_COREI7_M64: #define __SSE3__ 1446// CHECK_COREI7_M64: #define __SSE4_1__ 1447// CHECK_COREI7_M64: #define __SSE4_2__ 1448// CHECK_COREI7_M64: #define __SSE_MATH__ 1449// CHECK_COREI7_M64: #define __SSE__ 1450// CHECK_COREI7_M64: #define __SSSE3__ 1451// CHECK_COREI7_M64: #define __amd64 1452// CHECK_COREI7_M64: #define __amd64__ 1453// CHECK_COREI7_M64: #define __corei7 1454// CHECK_COREI7_M64: #define __corei7__ 1455// CHECK_COREI7_M64: #define __tune_corei7__ 1456// CHECK_COREI7_M64: #define __x86_64 1457// CHECK_COREI7_M64: #define __x86_64__ 1458 459// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \460// RUN: -target i386-unknown-linux \461// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M32462// RUN: %clang -march=sandybridge -m32 -E -dM %s -o - 2>&1 \463// RUN: -target i386-unknown-linux \464// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M32465// CHECK_COREI7_AVX_M32: #define __AVX__ 1466// CHECK_COREI7_AVX_M32: #define __MMX__ 1467// CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1468// CHECK_COREI7_AVX_M32-NOT: __RDRND__469// CHECK_COREI7_AVX_M32: #define __POPCNT__ 1470// CHECK_COREI7_AVX_M32: #define __SSE2__ 1471// CHECK_COREI7_AVX_M32: #define __SSE3__ 1472// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1473// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1474// CHECK_COREI7_AVX_M32: #define __SSE__ 1475// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1476// CHECK_COREI7_AVX_M32: #define __XSAVEOPT__ 1477// CHECK_COREI7_AVX_M32: #define __XSAVE__ 1478// CHECK_COREI7_AVX_M32: #define __corei7 1479// CHECK_COREI7_AVX_M32: #define __corei7__ 1480// CHECK_COREI7_AVX_M32: #define __i386 1481// CHECK_COREI7_AVX_M32: #define __i386__ 1482// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1483// CHECK_COREI7_AVX_M32: #define i386 1484 485// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \486// RUN: -target i386-unknown-linux \487// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M64488// RUN: %clang -march=sandybridge -m64 -E -dM %s -o - 2>&1 \489// RUN: -target i386-unknown-linux \490// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M64491// CHECK_COREI7_AVX_M64: #define __AVX__ 1492// CHECK_COREI7_AVX_M64: #define __MMX__ 1493// CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1494// CHECK_COREI7_AVX_M64-NOT: __RDRND__495// CHECK_COREI7_AVX_M64: #define __POPCNT__ 1496// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1497// CHECK_COREI7_AVX_M64: #define __SSE2__ 1498// CHECK_COREI7_AVX_M64: #define __SSE3__ 1499// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1500// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1501// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1502// CHECK_COREI7_AVX_M64: #define __SSE__ 1503// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1504// CHECK_COREI7_AVX_M64: #define __XSAVEOPT__ 1505// CHECK_COREI7_AVX_M64: #define __XSAVE__ 1506// CHECK_COREI7_AVX_M64: #define __amd64 1507// CHECK_COREI7_AVX_M64: #define __amd64__ 1508// CHECK_COREI7_AVX_M64: #define __corei7 1509// CHECK_COREI7_AVX_M64: #define __corei7__ 1510// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1511// CHECK_COREI7_AVX_M64: #define __x86_64 1512// CHECK_COREI7_AVX_M64: #define __x86_64__ 1513 514// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \515// RUN: -target i386-unknown-linux \516// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M32517// RUN: %clang -march=ivybridge -m32 -E -dM %s -o - 2>&1 \518// RUN: -target i386-unknown-linux \519// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M32520// CHECK_CORE_AVX_I_M32: #define __AVX__ 1521// CHECK_CORE_AVX_I_M32: #define __F16C__ 1522// CHECK_CORE_AVX_I_M32: #define __MMX__ 1523// CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1524// CHECK_CORE_AVX_I_M32: #define __RDRND__ 1525// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1526// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1527// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1528// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1529// CHECK_CORE_AVX_I_M32: #define __SSE__ 1530// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1531// CHECK_CORE_AVX_I_M32: #define __XSAVEOPT__ 1532// CHECK_CORE_AVX_I_M32: #define __XSAVE__ 1533// CHECK_CORE_AVX_I_M32: #define __corei7 1534// CHECK_CORE_AVX_I_M32: #define __corei7__ 1535// CHECK_CORE_AVX_I_M32: #define __i386 1536// CHECK_CORE_AVX_I_M32: #define __i386__ 1537// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1538// CHECK_CORE_AVX_I_M32: #define i386 1539 540// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \541// RUN: -target i386-unknown-linux \542// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M64543// RUN: %clang -march=ivybridge -m64 -E -dM %s -o - 2>&1 \544// RUN: -target i386-unknown-linux \545// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M64546// CHECK_CORE_AVX_I_M64: #define __AVX__ 1547// CHECK_CORE_AVX_I_M64: #define __F16C__ 1548// CHECK_CORE_AVX_I_M64: #define __MMX__ 1549// CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1550// CHECK_CORE_AVX_I_M64: #define __RDRND__ 1551// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1552// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1553// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1554// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1555// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1556// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1557// CHECK_CORE_AVX_I_M64: #define __SSE__ 1558// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1559// CHECK_CORE_AVX_I_M64: #define __XSAVEOPT__ 1560// CHECK_CORE_AVX_I_M64: #define __XSAVE__ 1561// CHECK_CORE_AVX_I_M64: #define __amd64 1562// CHECK_CORE_AVX_I_M64: #define __amd64__ 1563// CHECK_CORE_AVX_I_M64: #define __corei7 1564// CHECK_CORE_AVX_I_M64: #define __corei7__ 1565// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1566// CHECK_CORE_AVX_I_M64: #define __x86_64 1567// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1568 569// RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \570// RUN: -target i386-unknown-linux \571// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M32572// RUN: %clang -march=haswell -m32 -E -dM %s -o - 2>&1 \573// RUN: -target i386-unknown-linux \574// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M32575// CHECK_CORE_AVX2_M32: #define __AVX2__ 1576// CHECK_CORE_AVX2_M32: #define __AVX__ 1577// CHECK_CORE_AVX2_M32: #define __BMI2__ 1578// CHECK_CORE_AVX2_M32: #define __BMI__ 1579// CHECK_CORE_AVX2_M32: #define __F16C__ 1580// CHECK_CORE_AVX2_M32: #define __FMA__ 1581// CHECK_CORE_AVX2_M32: #define __INVPCID__ 1582// CHECK_CORE_AVX2_M32: #define __LAHF_SAHF__ 1583// CHECK_CORE_AVX2_M32: #define __LZCNT__ 1584// CHECK_CORE_AVX2_M32: #define __MMX__ 1585// CHECK_CORE_AVX2_M32: #define __MOVBE__ 1586// CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1587// CHECK_CORE_AVX2_M32: #define __POPCNT__ 1588// CHECK_CORE_AVX2_M32: #define __RDRND__ 1589// CHECK_CORE_AVX2_M32: #define __SSE2__ 1590// CHECK_CORE_AVX2_M32: #define __SSE3__ 1591// CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1592// CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1593// CHECK_CORE_AVX2_M32: #define __SSE__ 1594// CHECK_CORE_AVX2_M32: #define __SSSE3__ 1595// CHECK_CORE_AVX2_M32: #define __XSAVEOPT__ 1596// CHECK_CORE_AVX2_M32: #define __XSAVE__ 1597// CHECK_CORE_AVX2_M32: #define __corei7 1598// CHECK_CORE_AVX2_M32: #define __corei7__ 1599// CHECK_CORE_AVX2_M32: #define __i386 1600// CHECK_CORE_AVX2_M32: #define __i386__ 1601// CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1602// CHECK_CORE_AVX2_M32: #define i386 1603 604// RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \605// RUN: -target i386-unknown-linux \606// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M64607// RUN: %clang -march=haswell -m64 -E -dM %s -o - 2>&1 \608// RUN: -target i386-unknown-linux \609// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M64610// CHECK_CORE_AVX2_M64: #define __AVX2__ 1611// CHECK_CORE_AVX2_M64: #define __AVX__ 1612// CHECK_CORE_AVX2_M64: #define __BMI2__ 1613// CHECK_CORE_AVX2_M64: #define __BMI__ 1614// CHECK_CORE_AVX2_M64: #define __F16C__ 1615// CHECK_CORE_AVX2_M64: #define __FMA__ 1616// CHECK_CORE_AVX2_M64: #define __INVPCID__ 1617// CHECK_CORE_AVX2_M64: #define __LAHF_SAHF__ 1618// CHECK_CORE_AVX2_M64: #define __LZCNT__ 1619// CHECK_CORE_AVX2_M64: #define __MMX__ 1620// CHECK_CORE_AVX2_M64: #define __MOVBE__ 1621// CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1622// CHECK_CORE_AVX2_M64: #define __POPCNT__ 1623// CHECK_CORE_AVX2_M64: #define __RDRND__ 1624// CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1625// CHECK_CORE_AVX2_M64: #define __SSE2__ 1626// CHECK_CORE_AVX2_M64: #define __SSE3__ 1627// CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1628// CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1629// CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1630// CHECK_CORE_AVX2_M64: #define __SSE__ 1631// CHECK_CORE_AVX2_M64: #define __SSSE3__ 1632// CHECK_CORE_AVX2_M64: #define __XSAVEOPT__ 1633// CHECK_CORE_AVX2_M64: #define __XSAVE__ 1634// CHECK_CORE_AVX2_M64: #define __amd64 1635// CHECK_CORE_AVX2_M64: #define __amd64__ 1636// CHECK_CORE_AVX2_M64: #define __corei7 1637// CHECK_CORE_AVX2_M64: #define __corei7__ 1638// CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1639// CHECK_CORE_AVX2_M64: #define __x86_64 1640// CHECK_CORE_AVX2_M64: #define __x86_64__ 1641 642// RUN: %clang -march=broadwell -m32 -E -dM %s -o - 2>&1 \643// RUN: -target i386-unknown-linux \644// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BROADWELL_M32645// CHECK_BROADWELL_M32: #define __ADX__ 1646// CHECK_BROADWELL_M32: #define __AVX2__ 1647// CHECK_BROADWELL_M32: #define __AVX__ 1648// CHECK_BROADWELL_M32: #define __BMI2__ 1649// CHECK_BROADWELL_M32: #define __BMI__ 1650// CHECK_BROADWELL_M32: #define __F16C__ 1651// CHECK_BROADWELL_M32: #define __FMA__ 1652// CHECK_BROADWELL_M32: #define __INVPCID__ 1653// CHECK_BROADWELL_M32: #define __LAHF_SAHF__ 1654// CHECK_BROADWELL_M32: #define __LZCNT__ 1655// CHECK_BROADWELL_M32: #define __MMX__ 1656// CHECK_BROADWELL_M32: #define __MOVBE__ 1657// CHECK_BROADWELL_M32: #define __PCLMUL__ 1658// CHECK_BROADWELL_M32: #define __POPCNT__ 1659// CHECK_BROADWELL_M32: #define __PRFCHW__ 1660// CHECK_BROADWELL_M32: #define __RDRND__ 1661// CHECK_BROADWELL_M32: #define __RDSEED__ 1662// CHECK_BROADWELL_M32: #define __SSE2__ 1663// CHECK_BROADWELL_M32: #define __SSE3__ 1664// CHECK_BROADWELL_M32: #define __SSE4_1__ 1665// CHECK_BROADWELL_M32: #define __SSE4_2__ 1666// CHECK_BROADWELL_M32: #define __SSE__ 1667// CHECK_BROADWELL_M32: #define __SSSE3__ 1668// CHECK_BROADWELL_M32: #define __XSAVEOPT__ 1669// CHECK_BROADWELL_M32: #define __XSAVE__ 1670// CHECK_BROADWELL_M32: #define __corei7 1671// CHECK_BROADWELL_M32: #define __corei7__ 1672// CHECK_BROADWELL_M32: #define __i386 1673// CHECK_BROADWELL_M32: #define __i386__ 1674// CHECK_BROADWELL_M32: #define __tune_corei7__ 1675// CHECK_BROADWELL_M32: #define i386 1676 677// RUN: %clang -march=broadwell -m64 -E -dM %s -o - 2>&1 \678// RUN: -target i386-unknown-linux \679// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BROADWELL_M64680// CHECK_BROADWELL_M64: #define __ADX__ 1681// CHECK_BROADWELL_M64: #define __AVX2__ 1682// CHECK_BROADWELL_M64: #define __AVX__ 1683// CHECK_BROADWELL_M64: #define __BMI2__ 1684// CHECK_BROADWELL_M64: #define __BMI__ 1685// CHECK_BROADWELL_M64: #define __F16C__ 1686// CHECK_BROADWELL_M64: #define __FMA__ 1687// CHECK_BROADWELL_M64: #define __INVPCID__ 1688// CHECK_BROADWELL_M64: #define __LAHF_SAHF__ 1689// CHECK_BROADWELL_M64: #define __LZCNT__ 1690// CHECK_BROADWELL_M64: #define __MMX__ 1691// CHECK_BROADWELL_M64: #define __MOVBE__ 1692// CHECK_BROADWELL_M64: #define __PCLMUL__ 1693// CHECK_BROADWELL_M64: #define __POPCNT__ 1694// CHECK_BROADWELL_M64: #define __PRFCHW__ 1695// CHECK_BROADWELL_M64: #define __RDRND__ 1696// CHECK_BROADWELL_M64: #define __RDSEED__ 1697// CHECK_BROADWELL_M64: #define __SSE2_MATH__ 1698// CHECK_BROADWELL_M64: #define __SSE2__ 1699// CHECK_BROADWELL_M64: #define __SSE3__ 1700// CHECK_BROADWELL_M64: #define __SSE4_1__ 1701// CHECK_BROADWELL_M64: #define __SSE4_2__ 1702// CHECK_BROADWELL_M64: #define __SSE_MATH__ 1703// CHECK_BROADWELL_M64: #define __SSE__ 1704// CHECK_BROADWELL_M64: #define __SSSE3__ 1705// CHECK_BROADWELL_M64: #define __XSAVEOPT__ 1706// CHECK_BROADWELL_M64: #define __XSAVE__ 1707// CHECK_BROADWELL_M64: #define __amd64 1708// CHECK_BROADWELL_M64: #define __amd64__ 1709// CHECK_BROADWELL_M64: #define __corei7 1710// CHECK_BROADWELL_M64: #define __corei7__ 1711// CHECK_BROADWELL_M64: #define __tune_corei7__ 1712// CHECK_BROADWELL_M64: #define __x86_64 1713// CHECK_BROADWELL_M64: #define __x86_64__ 1714 715// RUN: %clang -march=skylake -m32 -E -dM %s -o - 2>&1 \716// RUN: -target i386-unknown-linux \717// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKL_M32718// CHECK_SKL_M32: #define __ADX__ 1719// CHECK_SKL_M32: #define __AES__ 1720// CHECK_SKL_M32: #define __AVX2__ 1721// CHECK_SKL_M32: #define __AVX__ 1722// CHECK_SKL_M32: #define __BMI2__ 1723// CHECK_SKL_M32: #define __BMI__ 1724// CHECK_SKL_M32: #define __CLFLUSHOPT__ 1725// CHECK_SKL_M32: #define __F16C__ 1726// CHECK_SKL_M32: #define __FMA__ 1727// CHECK_SKL_M32: #define __INVPCID__ 1728// CHECK_SKL_M32: #define __LZCNT__ 1729// CHECK_SKL_M32: #define __MMX__ 1730// CHECK_SKL_M32: #define __MOVBE__ 1731// CHECK_SKL_M32: #define __PCLMUL__ 1732// CHECK_SKL_M32: #define __POPCNT__ 1733// CHECK_SKL_M32: #define __PRFCHW__ 1734// CHECK_SKL_M32: #define __RDRND__ 1735// CHECK_SKL_M32: #define __RDSEED__ 1736// CHECK_SKL_M32: #define __SGX__ 1737// CHECK_SKL_M32: #define __SSE2__ 1738// CHECK_SKL_M32: #define __SSE3__ 1739// CHECK_SKL_M32: #define __SSE4_1__ 1740// CHECK_SKL_M32: #define __SSE4_2__ 1741// CHECK_SKL_M32: #define __SSE__ 1742// CHECK_SKL_M32: #define __SSSE3__ 1743// CHECK_SKL_M32: #define __XSAVEC__ 1744// CHECK_SKL_M32: #define __XSAVEOPT__ 1745// CHECK_SKL_M32: #define __XSAVES__ 1746// CHECK_SKL_M32: #define __XSAVE__ 1747// CHECK_SKL_M32: #define i386 1748 749// RUN: %clang -march=skylake -m64 -E -dM %s -o - 2>&1 \750// RUN: -target i386-unknown-linux \751// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKL_M64752// CHECK_SKL_M64: #define __ADX__ 1753// CHECK_SKL_M64: #define __AES__ 1754// CHECK_SKL_M64: #define __AVX2__ 1755// CHECK_SKL_M64: #define __AVX__ 1756// CHECK_SKL_M64: #define __BMI2__ 1757// CHECK_SKL_M64: #define __BMI__ 1758// CHECK_SKL_M64: #define __CLFLUSHOPT__ 1759// CHECK_SKL_M64: #define __F16C__ 1760// CHECK_SKL_M64: #define __FMA__ 1761// CHECK_SKL_M64: #define __INVPCID__ 1762// CHECK_SKL_M64: #define __LZCNT__ 1763// CHECK_SKL_M64: #define __MMX__ 1764// CHECK_SKL_M64: #define __MOVBE__ 1765// CHECK_SKL_M64: #define __PCLMUL__ 1766// CHECK_SKL_M64: #define __POPCNT__ 1767// CHECK_SKL_M64: #define __PRFCHW__ 1768// CHECK_SKL_M64: #define __RDRND__ 1769// CHECK_SKL_M64: #define __RDSEED__ 1770// CHECK_SKL_M64: #define __SGX__ 1771// CHECK_SKL_M64: #define __SSE2_MATH__ 1772// CHECK_SKL_M64: #define __SSE2__ 1773// CHECK_SKL_M64: #define __SSE3__ 1774// CHECK_SKL_M64: #define __SSE4_1__ 1775// CHECK_SKL_M64: #define __SSE4_2__ 1776// CHECK_SKL_M64: #define __SSE_MATH__ 1777// CHECK_SKL_M64: #define __SSE__ 1778// CHECK_SKL_M64: #define __SSSE3__ 1779// CHECK_SKL_M64: #define __XSAVEC__ 1780// CHECK_SKL_M64: #define __XSAVEOPT__ 1781// CHECK_SKL_M64: #define __XSAVES__ 1782// CHECK_SKL_M64: #define __XSAVE__ 1783// CHECK_SKL_M64: #define __amd64 1784// CHECK_SKL_M64: #define __amd64__ 1785// CHECK_SKL_M64: #define __x86_64 1786// CHECK_SKL_M64: #define __x86_64__ 1787 788// RUN: %clang -march=knl -m32 -E -dM %s -o - 2>&1 \789// RUN: -target i386-unknown-linux \790// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNL_M32791// CHECK_KNL_M32: #define __AES__ 1792// CHECK_KNL_M32: #define __AVX2__ 1793// CHECK_KNL_M32: #define __AVX512CD__ 1794// CHECK_KNL_M32: #define __AVX512F__ 1795// CHECK_KNL_M32: #define __AVX__ 1796// CHECK_KNL_M32: #define __BMI2__ 1797// CHECK_KNL_M32: #define __BMI__ 1798// CHECK_KNL_M32: #define __F16C__ 1799// CHECK_KNL_M32: #define __FMA__ 1800// CHECK_KNL_M32: #define __LZCNT__ 1801// CHECK_KNL_M32: #define __MMX__ 1802// CHECK_KNL_M32: #define __MOVBE__ 1803// CHECK_KNL_M32: #define __PCLMUL__ 1804// CHECK_KNL_M32: #define __POPCNT__ 1805// CHECK_KNL_M32: #define __PRFCHW__ 1806// CHECK_KNL_M32: #define __RDRND__ 1807// CHECK_KNL_M32: #define __SSE2__ 1808// CHECK_KNL_M32: #define __SSE3__ 1809// CHECK_KNL_M32: #define __SSE4_1__ 1810// CHECK_KNL_M32: #define __SSE4_2__ 1811// CHECK_KNL_M32: #define __SSE__ 1812// CHECK_KNL_M32: #define __SSSE3__ 1813// CHECK_KNL_M32: #define __XSAVEOPT__ 1814// CHECK_KNL_M32: #define __XSAVE__ 1815// CHECK_KNL_M32: #define __i386 1816// CHECK_KNL_M32: #define __i386__ 1817// CHECK_KNL_M32: #define __knl 1818// CHECK_KNL_M32: #define __knl__ 1819// CHECK_KNL_M32: #define __tune_knl__ 1820// CHECK_KNL_M32: #define i386 1821 822// RUN: %clang -march=knl -m64 -E -dM %s -o - 2>&1 \823// RUN: -target i386-unknown-linux \824// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNL_M64825// CHECK_KNL_M64: #define __AES__ 1826// CHECK_KNL_M64: #define __AVX2__ 1827// CHECK_KNL_M64: #define __AVX512CD__ 1828// CHECK_KNL_M64: #define __AVX512F__ 1829// CHECK_KNL_M64: #define __AVX__ 1830// CHECK_KNL_M64: #define __BMI2__ 1831// CHECK_KNL_M64: #define __BMI__ 1832// CHECK_KNL_M64: #define __F16C__ 1833// CHECK_KNL_M64: #define __FMA__ 1834// CHECK_KNL_M64: #define __LZCNT__ 1835// CHECK_KNL_M64: #define __MMX__ 1836// CHECK_KNL_M64: #define __MOVBE__ 1837// CHECK_KNL_M64: #define __PCLMUL__ 1838// CHECK_KNL_M64: #define __POPCNT__ 1839// CHECK_KNL_M64: #define __PRFCHW__ 1840// CHECK_KNL_M64: #define __RDRND__ 1841// CHECK_KNL_M64: #define __SSE2_MATH__ 1842// CHECK_KNL_M64: #define __SSE2__ 1843// CHECK_KNL_M64: #define __SSE3__ 1844// CHECK_KNL_M64: #define __SSE4_1__ 1845// CHECK_KNL_M64: #define __SSE4_2__ 1846// CHECK_KNL_M64: #define __SSE_MATH__ 1847// CHECK_KNL_M64: #define __SSE__ 1848// CHECK_KNL_M64: #define __SSSE3__ 1849// CHECK_KNL_M64: #define __XSAVEOPT__ 1850// CHECK_KNL_M64: #define __XSAVE__ 1851// CHECK_KNL_M64: #define __amd64 1852// CHECK_KNL_M64: #define __amd64__ 1853// CHECK_KNL_M64: #define __knl 1854// CHECK_KNL_M64: #define __knl__ 1855// CHECK_KNL_M64: #define __tune_knl__ 1856// CHECK_KNL_M64: #define __x86_64 1857// CHECK_KNL_M64: #define __x86_64__ 1858 859// RUN: %clang -march=knm -m32 -E -dM %s -o - 2>&1 \860// RUN: -target i386-unknown-linux \861// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNM_M32862// CHECK_KNM_M32: #define __AES__ 1863// CHECK_KNM_M32: #define __AVX2__ 1864// CHECK_KNM_M32: #define __AVX512CD__ 1865// CHECK_KNM_M32: #define __AVX512F__ 1866// CHECK_KNM_M32: #define __AVX512VPOPCNTDQ__ 1867// CHECK_KNM_M32: #define __AVX__ 1868// CHECK_KNM_M32: #define __BMI2__ 1869// CHECK_KNM_M32: #define __BMI__ 1870// CHECK_KNM_M32: #define __F16C__ 1871// CHECK_KNM_M32: #define __FMA__ 1872// CHECK_KNM_M32: #define __LZCNT__ 1873// CHECK_KNM_M32: #define __MMX__ 1874// CHECK_KNM_M32: #define __MOVBE__ 1875// CHECK_KNM_M32: #define __PCLMUL__ 1876// CHECK_KNM_M32: #define __POPCNT__ 1877// CHECK_KNM_M32: #define __PRFCHW__ 1878// CHECK_KNM_M32: #define __RDRND__ 1879// CHECK_KNM_M32: #define __SSE2__ 1880// CHECK_KNM_M32: #define __SSE3__ 1881// CHECK_KNM_M32: #define __SSE4_1__ 1882// CHECK_KNM_M32: #define __SSE4_2__ 1883// CHECK_KNM_M32: #define __SSE__ 1884// CHECK_KNM_M32: #define __SSSE3__ 1885// CHECK_KNM_M32: #define __XSAVEOPT__ 1886// CHECK_KNM_M32: #define __XSAVE__ 1887// CHECK_KNM_M32: #define __i386 1888// CHECK_KNM_M32: #define __i386__ 1889// CHECK_KNM_M32: #define i386 1890 891// RUN: %clang -march=knm -m64 -E -dM %s -o - 2>&1 \892// RUN: -target i386-unknown-linux \893// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNM_M64894// CHECK_KNM_M64: #define __AES__ 1895// CHECK_KNM_M64: #define __AVX2__ 1896// CHECK_KNM_M64: #define __AVX512CD__ 1897// CHECK_KNM_M64: #define __AVX512F__ 1898// CHECK_KNM_M64: #define __AVX512VPOPCNTDQ__ 1899// CHECK_KNM_M64: #define __AVX__ 1900// CHECK_KNM_M64: #define __BMI2__ 1901// CHECK_KNM_M64: #define __BMI__ 1902// CHECK_KNM_M64: #define __F16C__ 1903// CHECK_KNM_M64: #define __FMA__ 1904// CHECK_KNM_M64: #define __LZCNT__ 1905// CHECK_KNM_M64: #define __MMX__ 1906// CHECK_KNM_M64: #define __MOVBE__ 1907// CHECK_KNM_M64: #define __PCLMUL__ 1908// CHECK_KNM_M64: #define __POPCNT__ 1909// CHECK_KNM_M64: #define __PRFCHW__ 1910// CHECK_KNM_M64: #define __RDRND__ 1911// CHECK_KNM_M64: #define __SSE2_MATH__ 1912// CHECK_KNM_M64: #define __SSE2__ 1913// CHECK_KNM_M64: #define __SSE3__ 1914// CHECK_KNM_M64: #define __SSE4_1__ 1915// CHECK_KNM_M64: #define __SSE4_2__ 1916// CHECK_KNM_M64: #define __SSE_MATH__ 1917// CHECK_KNM_M64: #define __SSE__ 1918// CHECK_KNM_M64: #define __SSSE3__ 1919// CHECK_KNM_M64: #define __XSAVEOPT__ 1920// CHECK_KNM_M64: #define __XSAVE__ 1921// CHECK_KNM_M64: #define __amd64 1922// CHECK_KNM_M64: #define __amd64__ 1923// CHECK_KNM_M64: #define __x86_64 1924// CHECK_KNM_M64: #define __x86_64__ 1925 926// RUN: %clang -march=skylake-avx512 -m32 -E -dM %s -o - 2>&1 \927// RUN: -target i386-unknown-linux \928// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKX_M32929// CHECK_SKX_M32: #define __AES__ 1930// CHECK_SKX_M32: #define __AVX2__ 1931// CHECK_SKX_M32: #define __AVX512BW__ 1932// CHECK_SKX_M32: #define __AVX512CD__ 1933// CHECK_SKX_M32: #define __AVX512DQ__ 1934// CHECK_SKX_M32: #define __AVX512F__ 1935// CHECK_SKX_M32: #define __AVX512VL__ 1936// CHECK_SKX_M32: #define __AVX__ 1937// CHECK_SKX_M32: #define __BMI2__ 1938// CHECK_SKX_M32: #define __BMI__ 1939// CHECK_SKX_M32: #define __CLFLUSHOPT__ 1940// CHECK_SKX_M32: #define __CLWB__ 1941// CHECK_SKX_M32: #define __F16C__ 1942// CHECK_SKX_M32: #define __FMA__ 1943// CHECK_SKX_M32: #define __INVPCID__ 1944// CHECK_SKX_M32: #define __LZCNT__ 1945// CHECK_SKX_M32: #define __MMX__ 1946// CHECK_SKX_M32: #define __MOVBE__ 1947// CHECK_SKX_M32: #define __PCLMUL__ 1948// CHECK_SKX_M32: #define __PKU__ 1949// CHECK_SKX_M32: #define __POPCNT__ 1950// CHECK_SKX_M32: #define __PRFCHW__ 1951// CHECK_SKX_M32: #define __RDRND__ 1952// CHECK_SKX_M32: #define __RDSEED__ 1953// CHECK_SKX_M32-NOT: #define __SGX__ 1954// CHECK_SKX_M32: #define __SSE2__ 1955// CHECK_SKX_M32: #define __SSE3__ 1956// CHECK_SKX_M32: #define __SSE4_1__ 1957// CHECK_SKX_M32: #define __SSE4_2__ 1958// CHECK_SKX_M32: #define __SSE__ 1959// CHECK_SKX_M32: #define __SSSE3__ 1960// CHECK_SKX_M32: #define __XSAVEC__ 1961// CHECK_SKX_M32: #define __XSAVEOPT__ 1962// CHECK_SKX_M32: #define __XSAVES__ 1963// CHECK_SKX_M32: #define __XSAVE__ 1964// CHECK_SKX_M32: #define __corei7 1965// CHECK_SKX_M32: #define __corei7__ 1966// CHECK_SKX_M32: #define __i386 1967// CHECK_SKX_M32: #define __i386__ 1968// CHECK_SKX_M32: #define __tune_corei7__ 1969// CHECK_SKX_M32: #define i386 1970 971// RUN: %clang -march=skylake-avx512 -m64 -E -dM %s -o - 2>&1 \972// RUN: -target i386-unknown-linux \973// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKX_M64974// CHECK_SKX_M64: #define __AES__ 1975// CHECK_SKX_M64: #define __AVX2__ 1976// CHECK_SKX_M64: #define __AVX512BW__ 1977// CHECK_SKX_M64: #define __AVX512CD__ 1978// CHECK_SKX_M64: #define __AVX512DQ__ 1979// CHECK_SKX_M64: #define __AVX512F__ 1980// CHECK_SKX_M64: #define __AVX512VL__ 1981// CHECK_SKX_M64: #define __AVX__ 1982// CHECK_SKX_M64: #define __BMI2__ 1983// CHECK_SKX_M64: #define __BMI__ 1984// CHECK_SKX_M64: #define __CLFLUSHOPT__ 1985// CHECK_SKX_M64: #define __CLWB__ 1986// CHECK_SKX_M64: #define __F16C__ 1987// CHECK_SKX_M64: #define __FMA__ 1988// CHECK_SKX_M64: #define __INVPCID__ 1989// CHECK_SKX_M64: #define __LZCNT__ 1990// CHECK_SKX_M64: #define __MMX__ 1991// CHECK_SKX_M64: #define __MOVBE__ 1992// CHECK_SKX_M64: #define __PCLMUL__ 1993// CHECK_SKX_M64: #define __PKU__ 1994// CHECK_SKX_M64: #define __POPCNT__ 1995// CHECK_SKX_M64: #define __PRFCHW__ 1996// CHECK_SKX_M64: #define __RDRND__ 1997// CHECK_SKX_M64: #define __RDSEED__ 1998// CHECK_SKX_M64-NOT: #define __SGX__ 1999// CHECK_SKX_M64: #define __SSE2_MATH__ 11000// CHECK_SKX_M64: #define __SSE2__ 11001// CHECK_SKX_M64: #define __SSE3__ 11002// CHECK_SKX_M64: #define __SSE4_1__ 11003// CHECK_SKX_M64: #define __SSE4_2__ 11004// CHECK_SKX_M64: #define __SSE_MATH__ 11005// CHECK_SKX_M64: #define __SSE__ 11006// CHECK_SKX_M64: #define __SSSE3__ 11007// CHECK_SKX_M64: #define __XSAVEC__ 11008// CHECK_SKX_M64: #define __XSAVEOPT__ 11009// CHECK_SKX_M64: #define __XSAVES__ 11010// CHECK_SKX_M64: #define __XSAVE__ 11011// CHECK_SKX_M64: #define __amd64 11012// CHECK_SKX_M64: #define __amd64__ 11013// CHECK_SKX_M64: #define __corei7 11014// CHECK_SKX_M64: #define __corei7__ 11015// CHECK_SKX_M64: #define __tune_corei7__ 11016// CHECK_SKX_M64: #define __x86_64 11017// CHECK_SKX_M64: #define __x86_64__ 11018 1019// RUN: %clang -march=cascadelake -m32 -E -dM %s -o - 2>&1 \1020// RUN: -target i386-unknown-linux \1021// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CLX_M321022// CHECK_CLX_M32: #define __AES__ 11023// CHECK_CLX_M32: #define __AVX2__ 11024// CHECK_CLX_M32: #define __AVX512BW__ 11025// CHECK_CLX_M32: #define __AVX512CD__ 11026// CHECK_CLX_M32: #define __AVX512DQ__ 11027// CHECK_CLX_M32: #define __AVX512F__ 11028// CHECK_CLX_M32: #define __AVX512VL__ 11029// CHECK_CLX_M32: #define __AVX512VNNI__ 11030// CHECK_CLX_M32: #define __AVX__ 11031// CHECK_CLX_M32: #define __BMI2__ 11032// CHECK_CLX_M32: #define __BMI__ 11033// CHECK_CLX_M32: #define __CLFLUSHOPT__ 11034// CHECK_CLX_M32: #define __CLWB__ 11035// CHECK_CLX_M32: #define __F16C__ 11036// CHECK_CLX_M32: #define __FMA__ 11037// CHECK_CLX_M32: #define __INVPCID__ 11038// CHECK_CLX_M32: #define __LZCNT__ 11039// CHECK_CLX_M32: #define __MMX__ 11040// CHECK_CLX_M32: #define __MOVBE__ 11041// CHECK_CLX_M32: #define __PCLMUL__ 11042// CHECK_CLX_M32: #define __PKU__ 11043// CHECK_CLX_M32: #define __POPCNT__ 11044// CHECK_CLX_M32: #define __PRFCHW__ 11045// CHECK_CLX_M32: #define __RDRND__ 11046// CHECK_CLX_M32: #define __RDSEED__ 11047// CHECK_CLX_M32-NOT: #define __SGX__ 11048// CHECK_CLX_M32: #define __SSE2__ 11049// CHECK_CLX_M32: #define __SSE3__ 11050// CHECK_CLX_M32: #define __SSE4_1__ 11051// CHECK_CLX_M32: #define __SSE4_2__ 11052// CHECK_CLX_M32: #define __SSE__ 11053// CHECK_CLX_M32: #define __SSSE3__ 11054// CHECK_CLX_M32: #define __XSAVEC__ 11055// CHECK_CLX_M32: #define __XSAVEOPT__ 11056// CHECK_CLX_M32: #define __XSAVES__ 11057// CHECK_CLX_M32: #define __XSAVE__ 11058// CHECK_CLX_M32: #define __corei7 11059// CHECK_CLX_M32: #define __corei7__ 11060// CHECK_CLX_M32: #define __i386 11061// CHECK_CLX_M32: #define __i386__ 11062// CHECK_CLX_M32: #define __tune_corei7__ 11063// CHECK_CLX_M32: #define i386 11064 1065// RUN: %clang -march=cascadelake -m64 -E -dM %s -o - 2>&1 \1066// RUN: -target i386-unknown-linux \1067// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CLX_M641068// CHECK_CLX_M64: #define __AES__ 11069// CHECK_CLX_M64: #define __AVX2__ 11070// CHECK_CLX_M64: #define __AVX512BW__ 11071// CHECK_CLX_M64: #define __AVX512CD__ 11072// CHECK_CLX_M64: #define __AVX512DQ__ 11073// CHECK_CLX_M64: #define __AVX512F__ 11074// CHECK_CLX_M64: #define __AVX512VL__ 11075// CHECK_CLX_M64: #define __AVX512VNNI__ 11076// CHECK_CLX_M64: #define __AVX__ 11077// CHECK_CLX_M64: #define __BMI2__ 11078// CHECK_CLX_M64: #define __BMI__ 11079// CHECK_CLX_M64: #define __CLFLUSHOPT__ 11080// CHECK_CLX_M64: #define __CLWB__ 11081// CHECK_CLX_M64: #define __F16C__ 11082// CHECK_CLX_M64: #define __FMA__ 11083// CHECK_CLX_M64: #define __INVPCID__ 11084// CHECK_CLX_M64: #define __LZCNT__ 11085// CHECK_CLX_M64: #define __MMX__ 11086// CHECK_CLX_M64: #define __MOVBE__ 11087// CHECK_CLX_M64: #define __PCLMUL__ 11088// CHECK_CLX_M64: #define __PKU__ 11089// CHECK_CLX_M64: #define __POPCNT__ 11090// CHECK_CLX_M64: #define __PRFCHW__ 11091// CHECK_CLX_M64: #define __RDRND__ 11092// CHECK_CLX_M64: #define __RDSEED__ 11093// CHECK_CLX_M64-NOT: #define __SGX__ 11094// CHECK_CLX_M64: #define __SSE2_MATH__ 11095// CHECK_CLX_M64: #define __SSE2__ 11096// CHECK_CLX_M64: #define __SSE3__ 11097// CHECK_CLX_M64: #define __SSE4_1__ 11098// CHECK_CLX_M64: #define __SSE4_2__ 11099// CHECK_CLX_M64: #define __SSE_MATH__ 11100// CHECK_CLX_M64: #define __SSE__ 11101// CHECK_CLX_M64: #define __SSSE3__ 11102// CHECK_CLX_M64: #define __XSAVEC__ 11103// CHECK_CLX_M64: #define __XSAVEOPT__ 11104// CHECK_CLX_M64: #define __XSAVES__ 11105// CHECK_CLX_M64: #define __XSAVE__ 11106// CHECK_CLX_M64: #define __amd64 11107// CHECK_CLX_M64: #define __amd64__ 11108// CHECK_CLX_M64: #define __corei7 11109// CHECK_CLX_M64: #define __corei7__ 11110// CHECK_CLX_M64: #define __tune_corei7__ 11111// CHECK_CLX_M64: #define __x86_64 11112// CHECK_CLX_M64: #define __x86_64__ 11113 1114// RUN: %clang -march=cooperlake -m32 -E -dM %s -o - 2>&1 \1115// RUN: -target i386-unknown-linux \1116// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CPX_M321117// CHECK_CPX_M32: #define __AES__ 11118// CHECK_CPX_M32: #define __AVX2__ 11119// CHECK_CPX_M32: #define __AVX512BF16__ 11120// CHECK_CPX_M32: #define __AVX512BW__ 11121// CHECK_CPX_M32: #define __AVX512CD__ 11122// CHECK_CPX_M32: #define __AVX512DQ__ 11123// CHECK_CPX_M32: #define __AVX512F__ 11124// CHECK_CPX_M32: #define __AVX512VL__ 11125// CHECK_CPX_M32: #define __AVX512VNNI__ 11126// CHECK_CPX_M32: #define __AVX__ 11127// CHECK_CPX_M32: #define __BMI2__ 11128// CHECK_CPX_M32: #define __BMI__ 11129// CHECK_CPX_M32: #define __CLFLUSHOPT__ 11130// CHECK_CPX_M32: #define __CLWB__ 11131// CHECK_CPX_M32: #define __F16C__ 11132// CHECK_CPX_M32: #define __FMA__ 11133// CHECK_CPX_M32: #define __INVPCID__ 11134// CHECK_CPX_M32: #define __LZCNT__ 11135// CHECK_CPX_M32: #define __MMX__ 11136// CHECK_CPX_M32: #define __MOVBE__ 11137// CHECK_CPX_M32: #define __PCLMUL__ 11138// CHECK_CPX_M32: #define __PKU__ 11139// CHECK_CPX_M32: #define __POPCNT__ 11140// CHECK_CPX_M32: #define __PRFCHW__ 11141// CHECK_CPX_M32: #define __RDRND__ 11142// CHECK_CPX_M32: #define __RDSEED__ 11143// CHECK_CPX_M32-NOT: #define __SGX__ 11144// CHECK_CPX_M32: #define __SSE2__ 11145// CHECK_CPX_M32: #define __SSE3__ 11146// CHECK_CPX_M32: #define __SSE4_1__ 11147// CHECK_CPX_M32: #define __SSE4_2__ 11148// CHECK_CPX_M32: #define __SSE__ 11149// CHECK_CPX_M32: #define __SSSE3__ 11150// CHECK_CPX_M32: #define __XSAVEC__ 11151// CHECK_CPX_M32: #define __XSAVEOPT__ 11152// CHECK_CPX_M32: #define __XSAVES__ 11153// CHECK_CPX_M32: #define __XSAVE__ 11154// CHECK_CPX_M32: #define __corei7 11155// CHECK_CPX_M32: #define __corei7__ 11156// CHECK_CPX_M32: #define __i386 11157// CHECK_CPX_M32: #define __i386__ 11158// CHECK_CPX_M32: #define __tune_corei7__ 11159// CHECK_CPX_M32: #define i386 11160 1161// RUN: %clang -march=cooperlake -m64 -E -dM %s -o - 2>&1 \1162// RUN: -target i386-unknown-linux \1163// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CPX_M641164// CHECK_CPX_M64: #define __AES__ 11165// CHECK_CPX_M64: #define __AVX2__ 11166// CHECK_CPX_M64: #define __AVX512BF16__ 11167// CHECK_CPX_M64: #define __AVX512BW__ 11168// CHECK_CPX_M64: #define __AVX512CD__ 11169// CHECK_CPX_M64: #define __AVX512DQ__ 11170// CHECK_CPX_M64: #define __AVX512F__ 11171// CHECK_CPX_M64: #define __AVX512VL__ 11172// CHECK_CPX_M64: #define __AVX512VNNI__ 11173// CHECK_CPX_M64: #define __AVX__ 11174// CHECK_CPX_M64: #define __BMI2__ 11175// CHECK_CPX_M64: #define __BMI__ 11176// CHECK_CPX_M64: #define __CLFLUSHOPT__ 11177// CHECK_CPX_M64: #define __CLWB__ 11178// CHECK_CPX_M64: #define __F16C__ 11179// CHECK_CPX_M64: #define __FMA__ 11180// CHECK_CPX_M64: #define __INVPCID__ 11181// CHECK_CPX_M64: #define __LZCNT__ 11182// CHECK_CPX_M64: #define __MMX__ 11183// CHECK_CPX_M64: #define __MOVBE__ 11184// CHECK_CPX_M64: #define __PCLMUL__ 11185// CHECK_CPX_M64: #define __PKU__ 11186// CHECK_CPX_M64: #define __POPCNT__ 11187// CHECK_CPX_M64: #define __PRFCHW__ 11188// CHECK_CPX_M64: #define __RDRND__ 11189// CHECK_CPX_M64: #define __RDSEED__ 11190// CHECK_CPX_M64-NOT: #define __SGX__ 11191// CHECK_CPX_M64: #define __SSE2_MATH__ 11192// CHECK_CPX_M64: #define __SSE2__ 11193// CHECK_CPX_M64: #define __SSE3__ 11194// CHECK_CPX_M64: #define __SSE4_1__ 11195// CHECK_CPX_M64: #define __SSE4_2__ 11196// CHECK_CPX_M64: #define __SSE_MATH__ 11197// CHECK_CPX_M64: #define __SSE__ 11198// CHECK_CPX_M64: #define __SSSE3__ 11199// CHECK_CPX_M64: #define __XSAVEC__ 11200// CHECK_CPX_M64: #define __XSAVEOPT__ 11201// CHECK_CPX_M64: #define __XSAVES__ 11202// CHECK_CPX_M64: #define __XSAVE__ 11203// CHECK_CPX_M64: #define __amd64 11204// CHECK_CPX_M64: #define __amd64__ 11205// CHECK_CPX_M64: #define __corei7 11206// CHECK_CPX_M64: #define __corei7__ 11207// CHECK_CPX_M64: #define __tune_corei7__ 11208// CHECK_CPX_M64: #define __x86_64 11209// CHECK_CPX_M64: #define __x86_64__ 11210 1211// RUN: %clang -march=cannonlake -m32 -E -dM %s -o - 2>&1 \1212// RUN: -target i386-unknown-linux \1213// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CNL_M321214// CHECK_CNL_M32: #define __AES__ 11215// CHECK_CNL_M32: #define __AVX2__ 11216// CHECK_CNL_M32: #define __AVX512BW__ 11217// CHECK_CNL_M32: #define __AVX512CD__ 11218// CHECK_CNL_M32: #define __AVX512DQ__ 11219// CHECK_CNL_M32: #define __AVX512F__ 11220// CHECK_CNL_M32: #define __AVX512IFMA__ 11221// CHECK_CNL_M32: #define __AVX512VBMI__ 11222// CHECK_CNL_M32: #define __AVX512VL__ 11223// CHECK_CNL_M32: #define __AVX__ 11224// CHECK_CNL_M32: #define __BMI2__ 11225// CHECK_CNL_M32: #define __BMI__ 11226// CHECK_CNL_M32: #define __CLFLUSHOPT__ 11227// CHECK_CNL_M32-NOT: #define __CLWB__ 11228// CHECK_CNL_M32: #define __F16C__ 11229// CHECK_CNL_M32: #define __FMA__ 11230// CHECK_CNL_M32: #define __INVPCID__ 11231// CHECK_CNL_M32: #define __LZCNT__ 11232// CHECK_CNL_M32: #define __MMX__ 11233// CHECK_CNL_M32: #define __MOVBE__ 11234// CHECK_CNL_M32: #define __PCLMUL__ 11235// CHECK_CNL_M32: #define __PKU__ 11236// CHECK_CNL_M32: #define __POPCNT__ 11237// CHECK_CNL_M32: #define __PRFCHW__ 11238// CHECK_CNL_M32: #define __RDRND__ 11239// CHECK_CNL_M32: #define __RDSEED__ 11240// CHECK_CNL_M32: #define __SGX__ 11241// CHECK_CNL_M32: #define __SHA__ 11242// CHECK_CNL_M32: #define __SSE2__ 11243// CHECK_CNL_M32: #define __SSE3__ 11244// CHECK_CNL_M32: #define __SSE4_1__ 11245// CHECK_CNL_M32: #define __SSE4_2__ 11246// CHECK_CNL_M32: #define __SSE__ 11247// CHECK_CNL_M32: #define __SSSE3__ 11248// CHECK_CNL_M32: #define __XSAVEC__ 11249// CHECK_CNL_M32: #define __XSAVEOPT__ 11250// CHECK_CNL_M32: #define __XSAVES__ 11251// CHECK_CNL_M32: #define __XSAVE__ 11252// CHECK_CNL_M32: #define __corei7 11253// CHECK_CNL_M32: #define __corei7__ 11254// CHECK_CNL_M32: #define __i386 11255// CHECK_CNL_M32: #define __i386__ 11256// CHECK_CNL_M32: #define __tune_corei7__ 11257// CHECK_CNL_M32: #define i386 11258 1259// RUN: %clang -march=cannonlake -m64 -E -dM %s -o - 2>&1 \1260// RUN: -target i386-unknown-linux \1261// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CNL_M641262// CHECK_CNL_M64: #define __AES__ 11263// CHECK_CNL_M64: #define __AVX2__ 11264// CHECK_CNL_M64: #define __AVX512BW__ 11265// CHECK_CNL_M64: #define __AVX512CD__ 11266// CHECK_CNL_M64: #define __AVX512DQ__ 11267// CHECK_CNL_M64: #define __AVX512F__ 11268// CHECK_CNL_M64: #define __AVX512IFMA__ 11269// CHECK_CNL_M64: #define __AVX512VBMI__ 11270// CHECK_CNL_M64: #define __AVX512VL__ 11271// CHECK_CNL_M64: #define __AVX__ 11272// CHECK_CNL_M64: #define __BMI2__ 11273// CHECK_CNL_M64: #define __BMI__ 11274// CHECK_CNL_M64: #define __CLFLUSHOPT__ 11275// CHECK_CNL_M64-NOT: #define __CLWB__ 11276// CHECK_CNL_M64: #define __F16C__ 11277// CHECK_CNL_M64: #define __FMA__ 11278// CHECK_CNL_M64: #define __INVPCID__ 11279// CHECK_CNL_M64: #define __LZCNT__ 11280// CHECK_CNL_M64: #define __MMX__ 11281// CHECK_CNL_M64: #define __MOVBE__ 11282// CHECK_CNL_M64: #define __PCLMUL__ 11283// CHECK_CNL_M64: #define __PKU__ 11284// CHECK_CNL_M64: #define __POPCNT__ 11285// CHECK_CNL_M64: #define __PRFCHW__ 11286// CHECK_CNL_M64: #define __RDRND__ 11287// CHECK_CNL_M64: #define __RDSEED__ 11288// CHECK_CNL_M64: #define __SGX__ 11289// CHECK_CNL_M64: #define __SHA__ 11290// CHECK_CNL_M64: #define __SSE2__ 11291// CHECK_CNL_M64: #define __SSE3__ 11292// CHECK_CNL_M64: #define __SSE4_1__ 11293// CHECK_CNL_M64: #define __SSE4_2__ 11294// CHECK_CNL_M64: #define __SSE__ 11295// CHECK_CNL_M64: #define __SSSE3__ 11296// CHECK_CNL_M64: #define __XSAVEC__ 11297// CHECK_CNL_M64: #define __XSAVEOPT__ 11298// CHECK_CNL_M64: #define __XSAVES__ 11299// CHECK_CNL_M64: #define __XSAVE__ 11300// CHECK_CNL_M64: #define __amd64 11301// CHECK_CNL_M64: #define __amd64__ 11302// CHECK_CNL_M64: #define __corei7 11303// CHECK_CNL_M64: #define __corei7__ 11304// CHECK_CNL_M64: #define __tune_corei7__ 11305// CHECK_CNL_M64: #define __x86_64 11306// CHECK_CNL_M64: #define __x86_64__ 11307 1308// RUN: %clang -march=icelake-client -m32 -E -dM %s -o - 2>&1 \1309// RUN: -target i386-unknown-linux \1310// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ICL_M32,CHECK_ICL_M32S1311// RUN: %clang -march=rocketlake -m32 -E -dM %s -o - 2>&1 \1312// RUN: -target i386-unknown-linux \1313// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ICL_M32,CHECK_RKL_M32S1314// CHECK_ICL_M32: #define __AES__ 11315// CHECK_ICL_M32: #define __AVX2__ 11316// CHECK_ICL_M32: #define __AVX512BITALG__ 11317// CHECK_ICL_M32: #define __AVX512BW__ 11318// CHECK_ICL_M32: #define __AVX512CD__ 11319// CHECK_ICL_M32: #define __AVX512DQ__ 11320// CHECK_ICL_M32: #define __AVX512F__ 11321// CHECK_ICL_M32: #define __AVX512IFMA__ 11322// CHECK_ICL_M32: #define __AVX512VBMI2__ 11323// CHECK_ICL_M32: #define __AVX512VBMI__ 11324// CHECK_ICL_M32: #define __AVX512VL__ 11325// CHECK_ICL_M32: #define __AVX512VNNI__ 11326// CHECK_ICL_M32: #define __AVX512VPOPCNTDQ__ 11327// CHECK_ICL_M32: #define __AVX__ 11328// CHECK_ICL_M32: #define __BMI2__ 11329// CHECK_ICL_M32: #define __BMI__ 11330// CHECK_ICL_M32: #define __CLFLUSHOPT__ 11331// CHECK_ICL_M32-NOT: #define __CLWB__ 11332// CHECK_ICL_M32: #define __F16C__ 11333// CHECK_ICL_M32: #define __FMA__ 11334// CHECK_ICL_M32: #define __GFNI__ 11335// CHECK_ICL_M32: #define __INVPCID__ 11336// CHECK_ICL_M32: #define __LZCNT__ 11337// CHECK_ICL_M32: #define __MMX__ 11338// CHECK_ICL_M32: #define __MOVBE__ 11339// CHECK_ICL_M32: #define __PCLMUL__ 11340// CHECK_ICL_M32: #define __PKU__ 11341// CHECK_ICL_M32: #define __POPCNT__ 11342// CHECK_ICL_M32: #define __PRFCHW__ 11343// CHECK_ICL_M32: #define __RDPID__ 11344// CHECK_ICL_M32: #define __RDRND__ 11345// CHECK_ICL_M32: #define __RDSEED__ 11346// CHECK_ICL_M32S: #define __SGX__ 11347// CHECK_RKL_M32S-NOT: #define __SGX__ 11348// CHECK_ICL_M32: #define __SHA__ 11349// CHECK_ICL_M32: #define __SSE2__ 11350// CHECK_ICL_M32: #define __SSE3__ 11351// CHECK_ICL_M32: #define __SSE4_1__ 11352// CHECK_ICL_M32: #define __SSE4_2__ 11353// CHECK_ICL_M32: #define __SSE__ 11354// CHECK_ICL_M32: #define __SSSE3__ 11355// CHECK_ICL_M32: #define __VAES__ 11356// CHECK_ICL_M32: #define __VPCLMULQDQ__ 11357// CHECK_ICL_M32-NOT: #define __WBNOINVD__ 11358// CHECK_ICL_M32: #define __XSAVEC__ 11359// CHECK_ICL_M32: #define __XSAVEOPT__ 11360// CHECK_ICL_M32: #define __XSAVES__ 11361// CHECK_ICL_M32: #define __XSAVE__ 11362// CHECK_ICL_M32: #define __corei7 11363// CHECK_ICL_M32: #define __corei7__ 11364// CHECK_ICL_M32: #define __i386 11365// CHECK_ICL_M32: #define __i386__ 11366// CHECK_ICL_M32: #define __tune_corei7__ 11367// CHECK_ICL_M32: #define i386 11368 1369// RUN: %clang -march=icelake-client -m64 -E -dM %s -o - 2>&1 \1370// RUN: -target i386-unknown-linux \1371// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ICL_M64,CHECK_ICL_M64S1372// RUN: %clang -march=rocketlake -m64 -E -dM %s -o - 2>&1 \1373// RUN: -target i386-unknown-linux \1374// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ICL_M64,CHECK_RKL_M64S1375// CHECK_ICL_M64: #define __AES__ 11376// CHECK_ICL_M64: #define __AVX2__ 11377// CHECK_ICL_M64: #define __AVX512BITALG__ 11378// CHECK_ICL_M64: #define __AVX512BW__ 11379// CHECK_ICL_M64: #define __AVX512CD__ 11380// CHECK_ICL_M64: #define __AVX512DQ__ 11381// CHECK_ICL_M64: #define __AVX512F__ 11382// CHECK_ICL_M64: #define __AVX512IFMA__ 11383// CHECK_ICL_M64: #define __AVX512VBMI2__ 11384// CHECK_ICL_M64: #define __AVX512VBMI__ 11385// CHECK_ICL_M64: #define __AVX512VL__ 11386// CHECK_ICL_M64: #define __AVX512VNNI__ 11387// CHECK_ICL_M64: #define __AVX512VPOPCNTDQ__ 11388// CHECK_ICL_M64: #define __AVX__ 11389// CHECK_ICL_M64: #define __BMI2__ 11390// CHECK_ICL_M64: #define __BMI__ 11391// CHECK_ICL_M64: #define __CLFLUSHOPT__ 11392// CHECK_ICL_M64-NOT: #define __CLWB__ 11393// CHECK_ICL_M64: #define __F16C__ 11394// CHECK_ICL_M64: #define __FMA__ 11395// CHECK_ICL_M64: #define __GFNI__ 11396// CHECK_ICL_M64: #define __INVPCID__ 11397// CHECK_ICL_M64: #define __LZCNT__ 11398// CHECK_ICL_M64: #define __MMX__ 11399// CHECK_ICL_M64: #define __MOVBE__ 11400// CHECK_ICL_M64: #define __PCLMUL__ 11401// CHECK_ICL_M64: #define __PKU__ 11402// CHECK_ICL_M64: #define __POPCNT__ 11403// CHECK_ICL_M64: #define __PRFCHW__ 11404// CHECK_ICL_M64: #define __RDPID__ 11405// CHECK_ICL_M64: #define __RDRND__ 11406// CHECK_ICL_M64: #define __RDSEED__ 11407// CHECK_ICL_M64S: #define __SGX__ 11408// CHECK_RKL_M64S-NOT: #define __SGX__ 11409// CHECK_ICL_M64: #define __SHA__ 11410// CHECK_ICL_M64: #define __SSE2__ 11411// CHECK_ICL_M64: #define __SSE3__ 11412// CHECK_ICL_M64: #define __SSE4_1__ 11413// CHECK_ICL_M64: #define __SSE4_2__ 11414// CHECK_ICL_M64: #define __SSE__ 11415// CHECK_ICL_M64: #define __SSSE3__ 11416// CHECK_ICL_M64: #define __VAES__ 11417// CHECK_ICL_M64: #define __VPCLMULQDQ__ 11418// CHECK_ICL_M64-NOT: #define __WBNOINVD__ 11419// CHECK_ICL_M64: #define __XSAVEC__ 11420// CHECK_ICL_M64: #define __XSAVEOPT__ 11421// CHECK_ICL_M64: #define __XSAVES__ 11422// CHECK_ICL_M64: #define __XSAVE__ 11423// CHECK_ICL_M64: #define __amd64 11424// CHECK_ICL_M64: #define __amd64__ 11425// CHECK_ICL_M64: #define __corei7 11426// CHECK_ICL_M64: #define __corei7__ 11427// CHECK_ICL_M64: #define __tune_corei7__ 11428// CHECK_ICL_M64: #define __x86_64 11429// CHECK_ICL_M64: #define __x86_64__ 11430 1431// RUN: %clang -march=icelake-server -m32 -E -dM %s -o - 2>&1 \1432// RUN: -target i386-unknown-linux \1433// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ICX_M321434// CHECK_ICX_M32: #define __AES__ 11435// CHECK_ICX_M32: #define __AVX2__ 11436// CHECK_ICX_M32: #define __AVX512BITALG__ 11437// CHECK_ICX_M32: #define __AVX512BW__ 11438// CHECK_ICX_M32: #define __AVX512CD__ 11439// CHECK_ICX_M32: #define __AVX512DQ__ 11440// CHECK_ICX_M32: #define __AVX512F__ 11441// CHECK_ICX_M32: #define __AVX512IFMA__ 11442// CHECK_ICX_M32: #define __AVX512VBMI2__ 11443// CHECK_ICX_M32: #define __AVX512VBMI__ 11444// CHECK_ICX_M32: #define __AVX512VL__ 11445// CHECK_ICX_M32: #define __AVX512VNNI__ 11446// CHECK_ICX_M32: #define __AVX512VPOPCNTDQ__ 11447// CHECK_ICX_M32: #define __AVX__ 11448// CHECK_ICX_M32: #define __BMI2__ 11449// CHECK_ICX_M32: #define __BMI__ 11450// CHECK_ICX_M32: #define __CLFLUSHOPT__ 11451// CHECK_ICX_M32: #define __CLWB__ 11452// CHECK_ICX_M32: #define __F16C__ 11453// CHECK_ICX_M32: #define __FMA__ 11454// CHECK_ICX_M32: #define __GFNI__ 11455// CHECK_ICX_M32: #define __INVPCID__ 11456// CHECK_ICX_M32: #define __LZCNT__ 11457// CHECK_ICX_M32: #define __MMX__ 11458// CHECK_ICX_M32: #define __MOVBE__ 11459// CHECK_ICX_M32: #define __PCLMUL__ 11460// CHECK_ICX_M32: #define __PCONFIG__ 11461// CHECK_ICX_M32: #define __PKU__ 11462// CHECK_ICX_M32: #define __POPCNT__ 11463// CHECK_ICX_M32: #define __PRFCHW__ 11464// CHECK_ICX_M32: #define __RDPID__ 11465// CHECK_ICX_M32: #define __RDRND__ 11466// CHECK_ICX_M32: #define __RDSEED__ 11467// CHECK_ICX_M32: #define __SGX__ 11468// CHECK_ICX_M32: #define __SHA__ 11469// CHECK_ICX_M32: #define __SSE2__ 11470// CHECK_ICX_M32: #define __SSE3__ 11471// CHECK_ICX_M32: #define __SSE4_1__ 11472// CHECK_ICX_M32: #define __SSE4_2__ 11473// CHECK_ICX_M32: #define __SSE__ 11474// CHECK_ICX_M32: #define __SSSE3__ 11475// CHECK_ICX_M32: #define __VAES__ 11476// CHECK_ICX_M32: #define __VPCLMULQDQ__ 11477// CHECK_ICX_M32: #define __WBNOINVD__ 11478// CHECK_ICX_M32: #define __XSAVEC__ 11479// CHECK_ICX_M32: #define __XSAVEOPT__ 11480// CHECK_ICX_M32: #define __XSAVES__ 11481// CHECK_ICX_M32: #define __XSAVE__ 11482// CHECK_ICX_M32: #define __corei7 11483// CHECK_ICX_M32: #define __corei7__ 11484// CHECK_ICX_M32: #define __i386 11485// CHECK_ICX_M32: #define __i386__ 11486// CHECK_ICX_M32: #define __tune_corei7__ 11487// CHECK_ICX_M32: #define i386 11488 1489// RUN: %clang -march=icelake-server -m64 -E -dM %s -o - 2>&1 \1490// RUN: -target i386-unknown-linux \1491// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ICX_M641492// CHECK_ICX_M64: #define __AES__ 11493// CHECK_ICX_M64: #define __AVX2__ 11494// CHECK_ICX_M64: #define __AVX512BITALG__ 11495// CHECK_ICX_M64: #define __AVX512BW__ 11496// CHECK_ICX_M64: #define __AVX512CD__ 11497// CHECK_ICX_M64: #define __AVX512DQ__ 11498// CHECK_ICX_M64: #define __AVX512F__ 11499// CHECK_ICX_M64: #define __AVX512IFMA__ 11500// CHECK_ICX_M64: #define __AVX512VBMI2__ 11501// CHECK_ICX_M64: #define __AVX512VBMI__ 11502// CHECK_ICX_M64: #define __AVX512VL__ 11503// CHECK_ICX_M64: #define __AVX512VNNI__ 11504// CHECK_ICX_M64: #define __AVX512VPOPCNTDQ__ 11505// CHECK_ICX_M64: #define __AVX__ 11506// CHECK_ICX_M64: #define __BMI2__ 11507// CHECK_ICX_M64: #define __BMI__ 11508// CHECK_ICX_M64: #define __CLFLUSHOPT__ 11509// CHECK_ICX_M64: #define __CLWB__ 11510// CHECK_ICX_M64: #define __F16C__ 11511// CHECK_ICX_M64: #define __FMA__ 11512// CHECK_ICX_M64: #define __GFNI__ 11513// CHECK_ICX_M64: #define __INVPCID__ 11514// CHECK_ICX_M64: #define __LZCNT__ 11515// CHECK_ICX_M64: #define __MMX__ 11516// CHECK_ICX_M64: #define __MOVBE__ 11517// CHECK_ICX_M64: #define __PCLMUL__ 11518// CHECK_ICX_M64: #define __PCONFIG__ 11519// CHECK_ICX_M64: #define __PKU__ 11520// CHECK_ICX_M64: #define __POPCNT__ 11521// CHECK_ICX_M64: #define __PRFCHW__ 11522// CHECK_ICX_M64: #define __RDPID__ 11523// CHECK_ICX_M64: #define __RDRND__ 11524// CHECK_ICX_M64: #define __RDSEED__ 11525// CHECK_ICX_M64: #define __SGX__ 11526// CHECK_ICX_M64: #define __SHA__ 11527// CHECK_ICX_M64: #define __SSE2__ 11528// CHECK_ICX_M64: #define __SSE3__ 11529// CHECK_ICX_M64: #define __SSE4_1__ 11530// CHECK_ICX_M64: #define __SSE4_2__ 11531// CHECK_ICX_M64: #define __SSE__ 11532// CHECK_ICX_M64: #define __SSSE3__ 11533// CHECK_ICX_M64: #define __VAES__ 11534// CHECK_ICX_M64: #define __VPCLMULQDQ__ 11535// CHECK_ICX_M64: #define __WBNOINVD__ 11536// CHECK_ICX_M64: #define __XSAVEC__ 11537// CHECK_ICX_M64: #define __XSAVEOPT__ 11538// CHECK_ICX_M64: #define __XSAVES__ 11539// CHECK_ICX_M64: #define __XSAVE__ 11540// CHECK_ICX_M64: #define __amd64 11541// CHECK_ICX_M64: #define __amd64__ 11542// CHECK_ICX_M64: #define __corei7 11543// CHECK_ICX_M64: #define __corei7__ 11544// CHECK_ICX_M64: #define __tune_corei7__ 11545// CHECK_ICX_M64: #define __x86_64 11546// CHECK_ICX_M64: #define __x86_64__ 11547 1548// RUN: %clang -march=tigerlake -m32 -E -dM %s -o - 2>&1 \1549// RUN: -target i386-unknown-linux \1550// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_TGL_M321551// CHECK_TGL_M32: #define __AES__ 11552// CHECK_TGL_M32: #define __AVX2__ 11553// CHECK_TGL_M32: #define __AVX512BITALG__ 11554// CHECK_TGL_M32: #define __AVX512BW__ 11555// CHECK_TGL_M32: #define __AVX512CD__ 11556// CHECK_TGL_M32: #define __AVX512DQ__ 11557// CHECK_TGL_M32: #define __AVX512F__ 11558// CHECK_TGL_M32: #define __AVX512IFMA__ 11559// CHECK_TGL_M32: #define __AVX512VBMI2__ 11560// CHECK_TGL_M32: #define __AVX512VBMI__ 11561// CHECK_TGL_M32: #define __AVX512VL__ 11562// CHECK_TGL_M32: #define __AVX512VNNI__ 11563// CHECK_TGL_M32: #define __AVX512VP2INTERSECT__ 11564// CHECK_TGL_M32: #define __AVX512VPOPCNTDQ__ 11565// CHECK_TGL_M32: #define __AVX__ 11566// CHECK_TGL_M32: #define __BMI2__ 11567// CHECK_TGL_M32: #define __BMI__ 11568// CHECK_TGL_M32: #define __CLFLUSHOPT__ 11569// CHECK_TGL_M32: #define __CLWB__ 11570// CHECK_TGL_M32: #define __F16C__ 11571// CHECK_TGL_M32: #define __FMA__ 11572// CHECK_TGL_M32: #define __GFNI__ 11573// CHECK_TGL_M32: #define __INVPCID__ 11574// CHECK_TGL_M32: #define __LZCNT__ 11575// CHECK_TGL_M32: #define __MMX__ 11576// CHECK_TGL_M32: #define __MOVBE__ 11577// CHECK_TGL_M32: #define __MOVDIR64B__ 11578// CHECK_TGL_M32: #define __MOVDIRI__ 11579// CHECK_TGL_M32: #define __PCLMUL__ 11580// CHECK_TGL_M32-NOT: #define __PCONFIG__ 11581// CHECK_TGL_M32: #define __PKU__ 11582// CHECK_TGL_M32: #define __POPCNT__ 11583// CHECK_TGL_M32: #define __PRFCHW__ 11584// CHECK_TGL_M32: #define __RDPID__ 11585// CHECK_TGL_M32: #define __RDRND__ 11586// CHECK_TGL_M32: #define __RDSEED__ 11587// CHECK_TGL_M32: #define __SGX__ 11588// CHECK_TGL_M32: #define __SHA__ 11589// CHECK_TGL_M32: #define __SHSTK__ 11590// CHECK_TGL_M32: #define __SSE2__ 11591// CHECK_TGL_M32: #define __SSE3__ 11592// CHECK_TGL_M32: #define __SSE4_1__ 11593// CHECK_TGL_M32: #define __SSE4_2__ 11594// CHECK_TGL_M32: #define __SSE__ 11595// CHECK_TGL_M32: #define __SSSE3__ 11596// CHECK_TGL_M32: #define __VAES__ 11597// CHECK_TGL_M32: #define __VPCLMULQDQ__ 11598// CHECK_TGL_M32-NOT: #define __WBNOINVD__ 11599// CHECK_TGL_M32: #define __XSAVEC__ 11600// CHECK_TGL_M32: #define __XSAVEOPT__ 11601// CHECK_TGL_M32: #define __XSAVES__ 11602// CHECK_TGL_M32: #define __XSAVE__ 11603// CHECK_TGL_M32: #define __corei7 11604// CHECK_TGL_M32: #define __corei7__ 11605// CHECK_TGL_M32: #define __i386 11606// CHECK_TGL_M32: #define __i386__ 11607// CHECK_TGL_M32: #define __tune_corei7__ 11608// CHECK_TGL_M32: #define i386 11609 1610// RUN: %clang -march=tigerlake -m64 -E -dM %s -o - 2>&1 \1611// RUN: -target i386-unknown-linux \1612// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_TGL_M641613// CHECK_TGL_M64: #define __AES__ 11614// CHECK_TGL_M64: #define __AVX2__ 11615// CHECK_TGL_M64: #define __AVX512BITALG__ 11616// CHECK_TGL_M64: #define __AVX512BW__ 11617// CHECK_TGL_M64: #define __AVX512CD__ 11618// CHECK_TGL_M64: #define __AVX512DQ__ 11619// CHECK_TGL_M64: #define __AVX512F__ 11620// CHECK_TGL_M64: #define __AVX512IFMA__ 11621// CHECK_TGL_M64: #define __AVX512VBMI2__ 11622// CHECK_TGL_M64: #define __AVX512VBMI__ 11623// CHECK_TGL_M64: #define __AVX512VL__ 11624// CHECK_TGL_M64: #define __AVX512VNNI__ 11625// CHECK_TGL_M64: #define __AVX512VP2INTERSECT__ 11626// CHECK_TGL_M64: #define __AVX512VPOPCNTDQ__ 11627// CHECK_TGL_M64: #define __AVX__ 11628// CHECK_TGL_M64: #define __BMI2__ 11629// CHECK_TGL_M64: #define __BMI__ 11630// CHECK_TGL_M64: #define __CLFLUSHOPT__ 11631// CHECK_TGL_M64: #define __CLWB__ 11632// CHECK_TGL_M64: #define __F16C__ 11633// CHECK_TGL_M64: #define __FMA__ 11634// CHECK_TGL_M64: #define __GFNI__ 11635// CHECK_TGL_M64: #define __INVPCID__ 11636// CHECK_TGL_M64: #define __LZCNT__ 11637// CHECK_TGL_M64: #define __MMX__ 11638// CHECK_TGL_M64: #define __MOVBE__ 11639// CHECK_TGL_M64: #define __MOVDIR64B__ 11640// CHECK_TGL_M64: #define __MOVDIRI__ 11641// CHECK_TGL_M64: #define __PCLMUL__ 11642// CHECK_TGL_M64-NOT: #define __PCONFIG__ 11643// CHECK_TGL_M64: #define __PKU__ 11644// CHECK_TGL_M64: #define __POPCNT__ 11645// CHECK_TGL_M64: #define __PRFCHW__ 11646// CHECK_TGL_M64: #define __RDPID__ 11647// CHECK_TGL_M64: #define __RDRND__ 11648// CHECK_TGL_M64: #define __RDSEED__ 11649// CHECK_TGL_M64: #define __SGX__ 11650// CHECK_TGL_M64: #define __SHA__ 11651// CHECK_TGL_M64: #define __SHSTK__ 11652// CHECK_TGL_M64: #define __SSE2__ 11653// CHECK_TGL_M64: #define __SSE3__ 11654// CHECK_TGL_M64: #define __SSE4_1__ 11655// CHECK_TGL_M64: #define __SSE4_2__ 11656// CHECK_TGL_M64: #define __SSE__ 11657// CHECK_TGL_M64: #define __SSSE3__ 11658// CHECK_TGL_M64: #define __VAES__ 11659// CHECK_TGL_M64: #define __VPCLMULQDQ__ 11660// CHECK_TGL_M64-NOT: #define __WBNOINVD__ 11661// CHECK_TGL_M64: #define __XSAVEC__ 11662// CHECK_TGL_M64: #define __XSAVEOPT__ 11663// CHECK_TGL_M64: #define __XSAVES__ 11664// CHECK_TGL_M64: #define __XSAVE__ 11665// CHECK_TGL_M64: #define __amd64 11666// CHECK_TGL_M64: #define __amd64__ 11667// CHECK_TGL_M64: #define __corei7 11668// CHECK_TGL_M64: #define __corei7__ 11669// CHECK_TGL_M64: #define __tune_corei7__ 11670// CHECK_TGL_M64: #define __x86_64 11671// CHECK_TGL_M64: #define __x86_64__ 11672 1673// RUN: %clang -march=sapphirerapids -m32 -E -dM %s -o - 2>&1 \1674// RUN: -target i386-unknown-linux \1675// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M321676// RUN: %clang -march=emeraldrapids -m32 -E -dM %s -o - 2>&1 \1677// RUN: -target i386-unknown-linux \1678// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M321679// CHECK_SPR_M32: #define __AES__ 11680// CHECK_SPR_M32: #define __AMX_BF16__ 11681// CHECK_SPR_M32: #define __AMX_INT8__ 11682// CHECK_SPR_M32: #define __AMX_TILE__ 11683// CHECK_SPR_M32: #define __AVX2__ 11684// CHECK_SPR_M32: #define __AVX512BF16__ 11685// CHECK_SPR_M32: #define __AVX512BITALG__ 11686// CHECK_SPR_M32: #define __AVX512BW__ 11687// CHECK_SPR_M32: #define __AVX512CD__ 11688// CHECK_SPR_M32: #define __AVX512DQ__ 11689// CHECK_SPR_M32: #define __AVX512FP16__ 11690// CHECK_SPR_M32: #define __AVX512F__ 11691// CHECK_SPR_M32: #define __AVX512IFMA__ 11692// CHECK_SPR_M32: #define __AVX512VBMI2__ 11693// CHECK_SPR_M32: #define __AVX512VBMI__ 11694// CHECK_SPR_M32: #define __AVX512VL__ 11695// CHECK_SPR_M32: #define __AVX512VNNI__ 11696// CHECK_SPR_M32: #define __AVX512VPOPCNTDQ__ 11697// CHECK_SPR_M32: #define __AVXVNNI__ 11698// CHECK_SPR_M32: #define __AVX__ 11699// CHECK_SPR_M32: #define __BMI2__ 11700// CHECK_SPR_M32: #define __BMI__ 11701// CHECK_SPR_M32: #define __CLDEMOTE__ 11702// CHECK_SPR_M32: #define __CLFLUSHOPT__ 11703// CHECK_SPR_M32: #define __CLWB__ 11704// CHECK_SPR_M32: #define __ENQCMD__ 11705// CHECK_SPR_M32: #define __F16C__ 11706// CHECK_SPR_M32: #define __FMA__ 11707// CHECK_SPR_M32: #define __GFNI__ 11708// CHECK_SPR_M32: #define __INVPCID__ 11709// CHECK_SPR_M32: #define __LZCNT__ 11710// CHECK_SPR_M32: #define __MMX__ 11711// CHECK_SPR_M32: #define __MOVBE__ 11712// CHECK_SPR_M32: #define __PCLMUL__ 11713// CHECK_SPR_M32: #define __PCONFIG__ 11714// CHECK_SPR_M32: #define __PKU__ 11715// CHECK_SPR_M32: #define __POPCNT__ 11716// CHECK_SPR_M32: #define __PRFCHW__ 11717// CHECK_SPR_M32: #define __PTWRITE__ 11718// CHECK_SPR_M32: #define __RDPID__ 11719// CHECK_SPR_M32: #define __RDRND__ 11720// CHECK_SPR_M32: #define __RDSEED__ 11721// CHECK_SPR_M32: #define __SERIALIZE__ 11722// CHECK_SPR_M32: #define __SGX__ 11723// CHECK_SPR_M32: #define __SHA__ 11724// CHECK_SPR_M32: #define __SHSTK__ 11725// CHECK_SPR_M32: #define __SSE2__ 11726// CHECK_SPR_M32: #define __SSE3__ 11727// CHECK_SPR_M32: #define __SSE4_1__ 11728// CHECK_SPR_M32: #define __SSE4_2__ 11729// CHECK_SPR_M32: #define __SSE__ 11730// CHECK_SPR_M32: #define __SSSE3__ 11731// CHECK_SPR_M32: #define __TSXLDTRK__ 11732// CHECK_SPR_M32: #define __UINTR__ 11733// CHECK_SPR_M32: #define __VAES__ 11734// CHECK_SPR_M32: #define __VPCLMULQDQ__ 11735// CHECK_SPR_M32: #define __WAITPKG__ 11736// CHECK_SPR_M32: #define __WBNOINVD__ 11737// CHECK_SPR_M32: #define __XSAVEC__ 11738// CHECK_SPR_M32: #define __XSAVEOPT__ 11739// CHECK_SPR_M32: #define __XSAVES__ 11740// CHECK_SPR_M32: #define __XSAVE__ 11741// CHECK_SPR_M32: #define __corei7 11742// CHECK_SPR_M32: #define __corei7__ 11743// CHECK_SPR_M32: #define __i386 11744// CHECK_SPR_M32: #define __i386__ 11745// CHECK_SPR_M32: #define __tune_corei7__ 11746// CHECK_SPR_M32: #define i386 11747 1748// RUN: %clang -march=sapphirerapids -m64 -E -dM %s -o - 2>&1 \1749// RUN: -target i386-unknown-linux \1750// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M641751// RUN: %clang -march=emeraldrapids -m64 -E -dM %s -o - 2>&1 \1752// RUN: -target i386-unknown-linux \1753// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M641754// CHECK_SPR_M64: #define __AES__ 11755// CHECK_SPR_M64: #define __AMX_BF16__ 11756// CHECK_SPR_M64: #define __AMX_INT8__ 11757// CHECK_SPR_M64: #define __AMX_TILE__ 11758// CHECK_SPR_M64: #define __AVX2__ 11759// CHECK_SPR_M64: #define __AVX512BF16__ 11760// CHECK_SPR_M64: #define __AVX512BITALG__ 11761// CHECK_SPR_M64: #define __AVX512BW__ 11762// CHECK_SPR_M64: #define __AVX512CD__ 11763// CHECK_SPR_M64: #define __AVX512DQ__ 11764// CHECK_SPR_M64: #define __AVX512FP16__ 11765// CHECK_SPR_M64: #define __AVX512F__ 11766// CHECK_SPR_M64: #define __AVX512IFMA__ 11767// CHECK_SPR_M64: #define __AVX512VBMI2__ 11768// CHECK_SPR_M64: #define __AVX512VBMI__ 11769// CHECK_SPR_M64: #define __AVX512VL__ 11770// CHECK_SPR_M64: #define __AVX512VNNI__ 11771// CHECK_SPR_M64: #define __AVX512VPOPCNTDQ__ 11772// CHECK_SPR_M64: #define __AVXVNNI__ 11773// CHECK_SPR_M64: #define __AVX__ 11774// CHECK_SPR_M64: #define __BMI2__ 11775// CHECK_SPR_M64: #define __BMI__ 11776// CHECK_SPR_M64: #define __CLDEMOTE__ 11777// CHECK_SPR_M64: #define __CLFLUSHOPT__ 11778// CHECK_SPR_M64: #define __CLWB__ 11779// CHECK_SPR_M64: #define __ENQCMD__ 11780// CHECK_SPR_M64: #define __F16C__ 11781// CHECK_SPR_M64: #define __FMA__ 11782// CHECK_SPR_M64: #define __GFNI__ 11783// CHECK_SPR_M64: #define __INVPCID__ 11784// CHECK_SPR_M64: #define __LZCNT__ 11785// CHECK_SPR_M64: #define __MMX__ 11786// CHECK_SPR_M64: #define __MOVBE__ 11787// CHECK_SPR_M64: #define __PCLMUL__ 11788// CHECK_SPR_M64: #define __PCONFIG__ 11789// CHECK_SPR_M64: #define __PKU__ 11790// CHECK_SPR_M64: #define __POPCNT__ 11791// CHECK_SPR_M64: #define __PRFCHW__ 11792// CHECK_SPR_M64: #define __PTWRITE__ 11793// CHECK_SPR_M64: #define __RDPID__ 11794// CHECK_SPR_M64: #define __RDRND__ 11795// CHECK_SPR_M64: #define __RDSEED__ 11796// CHECK_SPR_M64: #define __SERIALIZE__ 11797// CHECK_SPR_M64: #define __SGX__ 11798// CHECK_SPR_M64: #define __SHA__ 11799// CHECK_SPR_M64: #define __SHSTK__ 11800// CHECK_SPR_M64: #define __SSE2__ 11801// CHECK_SPR_M64: #define __SSE3__ 11802// CHECK_SPR_M64: #define __SSE4_1__ 11803// CHECK_SPR_M64: #define __SSE4_2__ 11804// CHECK_SPR_M64: #define __SSE__ 11805// CHECK_SPR_M64: #define __SSSE3__ 11806// CHECK_SPR_M64: #define __TSXLDTRK__ 11807// CHECK_SPR_M64: #define __UINTR__ 11808// CHECK_SPR_M64: #define __VAES__ 11809// CHECK_SPR_M64: #define __VPCLMULQDQ__ 11810// CHECK_SPR_M64: #define __WAITPKG__ 11811// CHECK_SPR_M64: #define __WBNOINVD__ 11812// CHECK_SPR_M64: #define __XSAVEC__ 11813// CHECK_SPR_M64: #define __XSAVEOPT__ 11814// CHECK_SPR_M64: #define __XSAVES__ 11815// CHECK_SPR_M64: #define __XSAVE__ 11816// CHECK_SPR_M64: #define __amd64 11817// CHECK_SPR_M64: #define __amd64__ 11818// CHECK_SPR_M64: #define __corei7 11819// CHECK_SPR_M64: #define __corei7__ 11820// CHECK_SPR_M64: #define __tune_corei7__ 11821// CHECK_SPR_M64: #define __x86_64 11822// CHECK_SPR_M64: #define __x86_64__ 11823 1824// RUN: %clang -march=graniterapids -m32 -E -dM %s -o - 2>&1 \1825// RUN: --target=i386 \1826// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GNR_M321827// RUN: %clang -march=graniterapids-d -m32 -E -dM %s -o - 2>&1 \1828// RUN: --target=i386 \1829// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_GNR_M32,CHECK_GNRD_M321830// RUN: %clang -march=diamondrapids -m32 -E -dM %s -o - 2>&1 \1831// RUN: --target=i386 \1832// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_GNR_M32,CHECK_GNRD_M32,CHECK_DMR_M321833// CHECK_GNR_M32: #define __AES__ 11834// CHECK_DMR_M32: #define __AMX_AVX512__ 11835// CHECK_GNR_M32: #define __AMX_BF16__ 11836// CHECK_GNR_M32-NOT: #define __AMX_COMPLEX__ 11837// CHECK_GNRD_M32: #define __AMX_COMPLEX__ 11838// CHECK_GNR_M32: #define __AMX_FP16__ 11839// CHECK_DMR_M32: #define __AMX_FP8__ 11840// CHECK_GNR_M32: #define __AMX_INT8__ 11841// CHECK_DMR_M32: #define __AMX_MOVRS__ 11842// CHECK_DMR_M32: #define __AMX_TF32__ 11843// CHECK_GNR_M32: #define __AMX_TILE__ 11844// CHECK_DMR_M32: #define __AVX10_2_512__ 11845// CHECK_DMR_M32: #define __AVX10_2__ 11846// CHECK_GNR_M32: #define __AVX2__ 11847// CHECK_GNR_M32: #define __AVX512BF16__ 11848// CHECK_GNR_M32: #define __AVX512BITALG__ 11849// CHECK_GNR_M32: #define __AVX512BW__ 11850// CHECK_GNR_M32: #define __AVX512CD__ 11851// CHECK_GNR_M32: #define __AVX512DQ__ 11852// CHECK_GNR_M32: #define __AVX512FP16__ 11853// CHECK_GNR_M32: #define __AVX512F__ 11854// CHECK_GNR_M32: #define __AVX512IFMA__ 11855// CHECK_GNR_M32: #define __AVX512VBMI2__ 11856// CHECK_GNR_M32: #define __AVX512VBMI__ 11857// CHECK_GNR_M32: #define __AVX512VL__ 11858// CHECK_GNR_M32: #define __AVX512VNNI__ 11859// CHECK_GNR_M32: #define __AVX512VPOPCNTDQ__ 11860// CHECK_DMR_M32: #define __AVXIFMA__ 11861// CHECK_DMR_M32: #define __AVXNECONVERT__ 11862// CHECK_DMR_M32: #define __AVXVNNIINT16__ 11863// CHECK_DMR_M32: #define __AVXVNNIINT8__ 11864// CHECK_GNR_M32: #define __AVXVNNI__ 11865// CHECK_GNR_M32: #define __AVX__ 11866// CHECK_GNR_M32: #define __BMI2__ 11867// CHECK_GNR_M32: #define __BMI__ 11868// CHECK_DMR_M32: #define __CCMP__ 11869// CHECK_GNR_M32: #define __CLDEMOTE__ 11870// CHECK_GNR_M32: #define __CLFLUSHOPT__ 11871// CHECK_GNR_M32: #define __CLWB__ 11872// CHECK_DMR_M32: #define __CMPCCXADD__ 11873// CHECK_DMR_M32: #define __EGPR__ 11874// CHECK_GNR_M32: #define __ENQCMD__ 11875// CHECK_GNR_M32: #define __F16C__ 11876// CHECK_GNR_M32: #define __FMA__ 11877// CHECK_GNR_M32: #define __GFNI__ 11878// CHECK_GNR_M32: #define __INVPCID__ 11879// CHECK_GNR_M32: #define __LZCNT__ 11880// CHECK_GNR_M32: #define __MMX__ 11881// CHECK_GNR_M32: #define __MOVBE__ 11882// CHECK_DMR_M32: #define __MOVRS__ 11883// CHECK_DMR_M32: #define __NDD__ 11884// CHECK_DMR_M32: #define __NF__ 11885// CHECK_GNR_M32: #define __PCLMUL__ 11886// CHECK_GNR_M32: #define __PCONFIG__ 11887// CHECK_GNR_M32: #define __PKU__ 11888// CHECK_GNR_M32: #define __POPCNT__ 11889// CHECK_DMR_M32: #define __PPX__ 11890// CHECK_GNR_M32: #define __PREFETCHI__ 11891// CHECK_GNR_M32: #define __PRFCHW__ 11892// CHECK_GNR_M32: #define __PTWRITE__ 11893// CHECK_DMR_M32: #define __PUSH2POP2__ 11894// CHECK_GNR_M32: #define __RDPID__ 11895// CHECK_GNR_M32: #define __RDRND__ 11896// CHECK_GNR_M32: #define __RDSEED__ 11897// CHECK_GNR_M32: #define __SERIALIZE__ 11898// CHECK_GNR_M32: #define __SGX__ 11899// CHECK_DMR_M32: #define __SHA512__ 11900// CHECK_GNR_M32: #define __SHA__ 11901// CHECK_GNR_M32: #define __SHSTK__ 11902// CHECK_DMR_M32: #define __SM3__ 11903// CHECK_DMR_M32: #define __SM4__ 11904// CHECK_GNR_M32: #define __SSE2__ 11905// CHECK_GNR_M32: #define __SSE3__ 11906// CHECK_GNR_M32: #define __SSE4_1__ 11907// CHECK_GNR_M32: #define __SSE4_2__ 11908// CHECK_GNR_M32: #define __SSE__ 11909// CHECK_GNR_M32: #define __SSSE3__ 11910// CHECK_GNR_M32: #define __TSXLDTRK__ 11911// CHECK_GNR_M32: #define __UINTR__ 11912// CHECK_GNR_M32-NOT: #define __USERMSR__ 11913// CHECK_GNR_M32: #define __VAES__ 11914// CHECK_GNR_M32: #define __VPCLMULQDQ__ 11915// CHECK_GNR_M32: #define __WAITPKG__ 11916// CHECK_GNR_M32: #define __WBNOINVD__ 11917// CHECK_GNR_M32: #define __XSAVEC__ 11918// CHECK_GNR_M32: #define __XSAVEOPT__ 11919// CHECK_GNR_M32: #define __XSAVES__ 11920// CHECK_GNR_M32: #define __XSAVE__ 11921// CHECK_DMR_M32: #define __ZU__ 11922// CHECK_GNR_M32: #define __corei7 11923// CHECK_GNR_M32: #define __corei7__ 11924// CHECK_GNR_M32: #define __i386 11925// CHECK_GNR_M32: #define __i386__ 11926// CHECK_GNR_M32: #define __tune_corei7__ 11927// CHECK_GNR_M32: #define i386 11928 1929// RUN: %clang -march=graniterapids -m64 -E -dM %s -o - 2>&1 \1930// RUN: --target=x86_64 \1931// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GNR_M641932// RUN: %clang -march=graniterapids-d -m64 -E -dM %s -o - 2>&1 \1933// RUN: --target=x86_64 \1934// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_GNR_M64,CHECK_GNRD_M641935// RUN: %clang -march=diamondrapids -m64 -E -dM %s -o - 2>&1 \1936// RUN: --target=x86_64 \1937// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_GNR_M64,CHECK_GNRD_M64,CHECK_DMR_M641938// CHECK_GNR_M64: #define __AES__ 11939// CHECK_DMR_M64: #define __AMX_AVX512__ 11940// CHECK_GNR_M64: #define __AMX_BF16__ 11941// CHECK_GNR_M64-NOT: #define __AMX_COMPLEX__ 11942// CHECK_GNRD_M64: #define __AMX_COMPLEX__ 11943// CHECK_GNR_M64: #define __AMX_FP16__ 11944// CHECK_DMR_M64: #define __AMX_FP8__ 11945// CHECK_GNR_M64: #define __AMX_INT8__ 11946// CHECK_DMR_M64: #define __AMX_MOVRS__ 11947// CHECK_DMR_M64: #define __AMX_TF32__ 11948// CHECK_GNR_M64: #define __AMX_TILE__ 11949// CHECK_DMR_M64: #define __AVX10_2_512__ 11950// CHECK_DMR_M64: #define __AVX10_2__ 11951// CHECK_GNR_M64: #define __AVX2__ 11952// CHECK_GNR_M64: #define __AVX512BF16__ 11953// CHECK_GNR_M64: #define __AVX512BITALG__ 11954// CHECK_GNR_M64: #define __AVX512BW__ 11955// CHECK_GNR_M64: #define __AVX512CD__ 11956// CHECK_GNR_M64: #define __AVX512DQ__ 11957// CHECK_GNR_M64: #define __AVX512FP16__ 11958// CHECK_GNR_M64: #define __AVX512F__ 11959// CHECK_GNR_M64: #define __AVX512IFMA__ 11960// CHECK_GNR_M64: #define __AVX512VBMI2__ 11961// CHECK_GNR_M64: #define __AVX512VBMI__ 11962// CHECK_GNR_M64: #define __AVX512VL__ 11963// CHECK_GNR_M64: #define __AVX512VNNI__ 11964// CHECK_GNR_M64: #define __AVX512VPOPCNTDQ__ 11965// CHECK_DMR_M64: #define __AVXIFMA__ 11966// CHECK_DMR_M64: #define __AVXNECONVERT__ 11967// CHECK_DMR_M64: #define __AVXVNNIINT16__ 11968// CHECK_DMR_M64: #define __AVXVNNIINT8__ 11969// CHECK_GNR_M64: #define __AVXVNNI__ 11970// CHECK_GNR_M64: #define __AVX__ 11971// CHECK_GNR_M64: #define __BMI2__ 11972// CHECK_GNR_M64: #define __BMI__ 11973// CHECK_DMR_M64: #define __CCMP__ 11974// CHECK_GNR_M64: #define __CLDEMOTE__ 11975// CHECK_GNR_M64: #define __CLFLUSHOPT__ 11976// CHECK_GNR_M64: #define __CLWB__ 11977// CHECK_DMR_M64: #define __CMPCCXADD__ 11978// CHECK_DMR_M64: #define __EGPR__ 11979// CHECK_GNR_M64: #define __ENQCMD__ 11980// CHECK_GNR_M64: #define __F16C__ 11981// CHECK_GNR_M64: #define __FMA__ 11982// CHECK_GNR_M64: #define __GFNI__ 11983// CHECK_GNR_M64: #define __INVPCID__ 11984// CHECK_GNR_M64: #define __LZCNT__ 11985// CHECK_GNR_M64: #define __MMX__ 11986// CHECK_GNR_M64: #define __MOVBE__ 11987// CHECK_DMR_M64: #define __MOVRS__ 11988// CHECK_DMR_M64: #define __NDD__ 11989// CHECK_DMR_M64: #define __NF__ 11990// CHECK_GNR_M64: #define __PCLMUL__ 11991// CHECK_GNR_M64: #define __PCONFIG__ 11992// CHECK_GNR_M64: #define __PKU__ 11993// CHECK_GNR_M64: #define __POPCNT__ 11994// CHECK_DMR_M64: #define __PPX__ 11995// CHECK_GNR_M64: #define __PREFETCHI__ 11996// CHECK_GNR_M64: #define __PRFCHW__ 11997// CHECK_GNR_M64: #define __PTWRITE__ 11998// CHECK_DMR_M64: #define __PUSH2POP2__ 11999// CHECK_GNR_M64: #define __RDPID__ 12000// CHECK_GNR_M64: #define __RDRND__ 12001// CHECK_GNR_M64: #define __RDSEED__ 12002// CHECK_GNR_M64: #define __SERIALIZE__ 12003// CHECK_GNR_M64: #define __SGX__ 12004// CHECK_DMR_M64: #define __SHA512__ 12005// CHECK_GNR_M64: #define __SHA__ 12006// CHECK_GNR_M64: #define __SHSTK__ 12007// CHECK_DMR_M64: #define __SM3__ 12008// CHECK_DMR_M64: #define __SM4__ 12009// CHECK_GNR_M64: #define __SSE2__ 12010// CHECK_GNR_M64: #define __SSE3__ 12011// CHECK_GNR_M64: #define __SSE4_1__ 12012// CHECK_GNR_M64: #define __SSE4_2__ 12013// CHECK_GNR_M64: #define __SSE__ 12014// CHECK_GNR_M64: #define __SSSE3__ 12015// CHECK_GNR_M64: #define __TSXLDTRK__ 12016// CHECK_GNR_M64: #define __UINTR__ 12017// CHECK_GNR_M64-NOT: #define __USERMSR__ 12018// CHECK_GNR_M64: #define __VAES__ 12019// CHECK_GNR_M64: #define __VPCLMULQDQ__ 12020// CHECK_GNR_M64: #define __WAITPKG__ 12021// CHECK_GNR_M64: #define __WBNOINVD__ 12022// CHECK_GNR_M64: #define __XSAVEC__ 12023// CHECK_GNR_M64: #define __XSAVEOPT__ 12024// CHECK_GNR_M64: #define __XSAVES__ 12025// CHECK_GNR_M64: #define __XSAVE__ 12026// CHECK_DMR_M64: #define __ZU__ 12027// CHECK_GNR_M64: #define __amd64 12028// CHECK_GNR_M64: #define __amd64__ 12029// CHECK_GNR_M64: #define __corei7 12030// CHECK_GNR_M64: #define __corei7__ 12031// CHECK_GNR_M64: #define __tune_corei7__ 12032// CHECK_GNR_M64: #define __x86_64 12033// CHECK_GNR_M64: #define __x86_64__ 12034 2035// RUN: %clang -march=alderlake -m32 -E -dM %s -o - 2>&1 \2036// RUN: -target i386-unknown-linux \2037// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M322038// RUN: %clang -march=raptorlake -m32 -E -dM %s -o - 2>&1 \2039// RUN: -target i386-unknown-linux \2040// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M322041// RUN: %clang -march=meteorlake -m32 -E -dM %s -o - 2>&1 \2042// RUN: -target i386-unknown-linux \2043// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M322044// RUN: %clang -march=gracemont -m32 -E -dM %s -o - 2>&1 \2045// RUN: -target i386-unknown-linux \2046// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M322047// CHECK_ADL_M32: #define __ADX__ 12048// CHECK_ADL_M32: #define __AES__ 12049// CHECK_ADL_M32: #define __AVX2__ 12050// CHECK_ADL_M32-NOT: AVX5122051// CHECK_ADL_M32: #define __AVXVNNI__ 12052// CHECK_ADL_M32: #define __AVX__ 12053// CHECK_ADL_M32: #define __BMI2__ 12054// CHECK_ADL_M32: #define __BMI__ 12055// CHECK_ADL_M32-NOT: #define __CLDEMOTE__ 12056// CHECK_ADL_M32: #define __CLFLUSHOPT__ 12057// CHECK_ADL_M32: #define __CLWB__ 12058// CHECK_ADL_M32: #define __F16C__ 12059// CHECK_ADL_M32: #define __FMA__ 12060// CHECK_ADL_M32: #define __FSGSBASE__ 12061// CHECK_ADL_M32: #define __FXSR__ 12062// CHECK_ADL_M32: #define __GFNI__ 12063// CHECK_ADL_M32: #define __HRESET__ 12064// CHECK_ADL_M32: #define __INVPCID__ 12065// CHECK_ADL_M32: #define __KL__ 12066// CHECK_ADL_M32: #define __LZCNT__ 12067// CHECK_ADL_M32: #define __MMX__ 12068// CHECK_ADL_M32: #define __MOVBE__ 12069// CHECK_ADL_M32: #define __MOVDIR64B__ 12070// CHECK_ADL_M32: #define __MOVDIRI__ 12071// CHECK_ADL_M32: #define __PCLMUL__ 12072// CHECK_ADL_M32: #define __PCONFIG__ 12073// CHECK_ADL_M32: #define __PKU__ 12074// CHECK_ADL_M32: #define __POPCNT__ 12075// CHECK_ADL_M32: #define __PRFCHW__ 12076// CHECK_ADL_M32: #define __PTWRITE__ 12077// CHECK_ADL_M32: #define __RDPID__ 12078// CHECK_ADL_M32: #define __RDRND__ 12079// CHECK_ADL_M32: #define __RDSEED__ 12080// CHECK_ADL_M32: #define __SERIALIZE__ 12081// CHECK_ADL_M32: #define __SGX__ 12082// CHECK_ADL_M32: #define __SHA__ 12083// CHECK_ADL_M32: #define __SHSTK__ 12084// CHECK_ADL_M32: #define __SSE2__ 12085// CHECK_ADL_M32: #define __SSE3__ 12086// CHECK_ADL_M32: #define __SSE4_1__ 12087// CHECK_ADL_M32: #define __SSE4_2__ 12088// CHECK_ADL_M32: #define __SSE_MATH__ 12089// CHECK_ADL_M32: #define __SSE__ 12090// CHECK_ADL_M32: #define __SSSE3__ 12091// CHECK_ADL_M32: #define __VAES__ 12092// CHECK_ADL_M32: #define __VPCLMULQDQ__ 12093// CHECK_ADL_M32: #define __WAITPKG__ 12094// CHECK_ADL_M32: #define __WIDEKL__ 12095// CHECK_ADL_M32: #define __XSAVEC__ 12096// CHECK_ADL_M32: #define __XSAVEOPT__ 12097// CHECK_ADL_M32: #define __XSAVES__ 12098// CHECK_ADL_M32: #define __XSAVE__ 12099// CHECK_ADL_M32: #define __corei7 12100// CHECK_ADL_M32: #define __corei7__ 12101// CHECK_ADL_M32: #define __i386 12102// CHECK_ADL_M32: #define __i386__ 12103// CHECK_ADL_M32: #define __tune_corei7__ 12104// CHECK_ADL_M32: #define i386 12105 2106// RUN: %clang -march=alderlake -m64 -E -dM %s -o - 2>&1 \2107// RUN: -target i386-unknown-linux \2108// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M642109// RUN: %clang -march=raptorlake -m64 -E -dM %s -o - 2>&1 \2110// RUN: -target i386-unknown-linux \2111// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M642112// RUN: %clang -march=meteorlake -m64 -E -dM %s -o - 2>&1 \2113// RUN: -target i386-unknown-linux \2114// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M642115// RUN: %clang -march=gracemont -m64 -E -dM %s -o - 2>&1 \2116// RUN: -target i386-unknown-linux \2117// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M642118// CHECK_ADL_M64: #define __ADX__ 12119// CHECK_ADL_M64: #define __AES__ 12120// CHECK_ADL_M64: #define __AVX2__ 12121// CHECK_ADL_M64-NOT: AVX5122122// CHECK_ADL_M64: #define __AVXVNNI__ 12123// CHECK_ADL_M64: #define __AVX__ 12124// CHECK_ADL_M64: #define __BMI2__ 12125// CHECK_ADL_M64: #define __BMI__ 12126// CHECK_ADL_M64-NOT: #define __CLDEMOTE__ 12127// CHECK_ADL_M64: #define __CLFLUSHOPT__ 12128// CHECK_ADL_M64: #define __CLWB__ 12129// CHECK_ADL_M64: #define __F16C__ 12130// CHECK_ADL_M64: #define __FMA__ 12131// CHECK_ADL_M64: #define __FSGSBASE__ 12132// CHECK_ADL_M64: #define __FXSR__ 12133// CHECK_ADL_M64: #define __GFNI__ 12134// CHECK_ADL_M64: #define __HRESET__ 12135// CHECK_ADL_M64: #define __INVPCID__ 12136// CHECK_ADL_M64: #define __KL__ 12137// CHECK_ADL_M64: #define __LZCNT__ 12138// CHECK_ADL_M64: #define __MMX__ 12139// CHECK_ADL_M64: #define __MOVBE__ 12140// CHECK_ADL_M64: #define __MOVDIR64B__ 12141// CHECK_ADL_M64: #define __MOVDIRI__ 12142// CHECK_ADL_M64: #define __PCLMUL__ 12143// CHECK_ADL_M64: #define __PCONFIG__ 12144// CHECK_ADL_M64: #define __PKU__ 12145// CHECK_ADL_M64: #define __POPCNT__ 12146// CHECK_ADL_M64: #define __PRFCHW__ 12147// CHECK_ADL_M64: #define __PTWRITE__ 12148// CHECK_ADL_M64: #define __RDPID__ 12149// CHECK_ADL_M64: #define __RDRND__ 12150// CHECK_ADL_M64: #define __RDSEED__ 12151// CHECK_ADL_M64: #define __SERIALIZE__ 12152// CHECK_ADL_M64: #define __SGX__ 12153// CHECK_ADL_M64: #define __SHA__ 12154// CHECK_ADL_M64: #define __SHSTK__ 12155// CHECK_ADL_M64: #define __SSE2_MATH__ 12156// CHECK_ADL_M64: #define __SSE2__ 12157// CHECK_ADL_M64: #define __SSE3__ 12158// CHECK_ADL_M64: #define __SSE4_1__ 12159// CHECK_ADL_M64: #define __SSE4_2__ 12160// CHECK_ADL_M64: #define __SSE_MATH__ 12161// CHECK_ADL_M64: #define __SSE__ 12162// CHECK_ADL_M64: #define __SSSE3__ 12163// CHECK_ADL_M64: #define __VAES__ 12164// CHECK_ADL_M64: #define __VPCLMULQDQ__ 12165// CHECK_ADL_M64: #define __WAITPKG__ 12166// CHECK_ADL_M64: #define __WIDEKL__ 12167// CHECK_ADL_M64: #define __XSAVEC__ 12168// CHECK_ADL_M64: #define __XSAVEOPT__ 12169// CHECK_ADL_M64: #define __XSAVES__ 12170// CHECK_ADL_M64: #define __XSAVE__ 12171// CHECK_ADL_M64: #define __amd64 12172// CHECK_ADL_M64: #define __amd64__ 12173// CHECK_ADL_M64: #define __corei7 12174// CHECK_ADL_M64: #define __corei7__ 12175// CHECK_ADL_M64: #define __tune_corei7__ 12176// CHECK_ADL_M64: #define __x86_64 12177// CHECK_ADL_M64: #define __x86_64__ 12178 2179// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \2180// RUN: -target i386-unknown-linux \2181// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M322182// RUN: %clang -march=bonnell -m32 -E -dM %s -o - 2>&1 \2183// RUN: -target i386-unknown-linux \2184// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M322185// CHECK_ATOM_M32: #define __MMX__ 12186// CHECK_ATOM_M32: #define __MOVBE__ 12187// CHECK_ATOM_M32: #define __SSE2__ 12188// CHECK_ATOM_M32: #define __SSE3__ 12189// CHECK_ATOM_M32: #define __SSE__ 12190// CHECK_ATOM_M32: #define __SSSE3__ 12191// CHECK_ATOM_M32: #define __atom 12192// CHECK_ATOM_M32: #define __atom__ 12193// CHECK_ATOM_M32: #define __i386 12194// CHECK_ATOM_M32: #define __i386__ 12195// CHECK_ATOM_M32: #define __tune_atom__ 12196// CHECK_ATOM_M32: #define i386 12197 2198// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \2199// RUN: -target i386-unknown-linux \2200// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M642201// RUN: %clang -march=bonnell -m64 -E -dM %s -o - 2>&1 \2202// RUN: -target i386-unknown-linux \2203// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M642204// CHECK_ATOM_M64: #define __MMX__ 12205// CHECK_ATOM_M64: #define __MOVBE__ 12206// CHECK_ATOM_M64: #define __SSE2_MATH__ 12207// CHECK_ATOM_M64: #define __SSE2__ 12208// CHECK_ATOM_M64: #define __SSE3__ 12209// CHECK_ATOM_M64: #define __SSE_MATH__ 12210// CHECK_ATOM_M64: #define __SSE__ 12211// CHECK_ATOM_M64: #define __SSSE3__ 12212// CHECK_ATOM_M64: #define __amd64 12213// CHECK_ATOM_M64: #define __amd64__ 12214// CHECK_ATOM_M64: #define __atom 12215// CHECK_ATOM_M64: #define __atom__ 12216// CHECK_ATOM_M64: #define __tune_atom__ 12217// CHECK_ATOM_M64: #define __x86_64 12218// CHECK_ATOM_M64: #define __x86_64__ 12219 2220// RUN: %clang -march=goldmont -m32 -E -dM %s -o - 2>&1 \2221// RUN: -target i386-unknown-linux \2222// RUN: | FileCheck %s -check-prefix=CHECK_GLM_M322223// CHECK_GLM_M32: #define __AES__ 12224// CHECK_GLM_M32: #define __CLFLUSHOPT__ 12225// CHECK_GLM_M32: #define __FSGSBASE__ 12226// CHECK_GLM_M32: #define __FXSR__ 12227// CHECK_GLM_M32: #define __MMX__ 12228// CHECK_GLM_M32: #define __MOVBE__ 12229// CHECK_GLM_M32: #define __PCLMUL__ 12230// CHECK_GLM_M32: #define __POPCNT__ 12231// CHECK_GLM_M32: #define __PRFCHW__ 12232// CHECK_GLM_M32: #define __RDRND__ 12233// CHECK_GLM_M32: #define __RDSEED__ 12234// CHECK_GLM_M32: #define __SHA__ 12235// CHECK_GLM_M32: #define __SSE2__ 12236// CHECK_GLM_M32: #define __SSE3__ 12237// CHECK_GLM_M32: #define __SSE4_1__ 12238// CHECK_GLM_M32: #define __SSE4_2__ 12239// CHECK_GLM_M32: #define __SSE_MATH__ 12240// CHECK_GLM_M32: #define __SSE__ 12241// CHECK_GLM_M32: #define __SSSE3__ 12242// CHECK_GLM_M32: #define __XSAVEC__ 12243// CHECK_GLM_M32: #define __XSAVEOPT__ 12244// CHECK_GLM_M32: #define __XSAVES__ 12245// CHECK_GLM_M32: #define __XSAVE__ 12246// CHECK_GLM_M32: #define __goldmont 12247// CHECK_GLM_M32: #define __goldmont__ 12248// CHECK_GLM_M32: #define __i386 12249// CHECK_GLM_M32: #define __i386__ 12250// CHECK_GLM_M32: #define __tune_goldmont__ 12251// CHECK_GLM_M32: #define i386 12252 2253// RUN: %clang -march=goldmont -m64 -E -dM %s -o - 2>&1 \2254// RUN: -target i386-unknown-linux \2255// RUN: | FileCheck %s -check-prefix=CHECK_GLM_M642256// CHECK_GLM_M64: #define __AES__ 12257// CHECK_GLM_M64: #define __CLFLUSHOPT__ 12258// CHECK_GLM_M64: #define __FSGSBASE__ 12259// CHECK_GLM_M64: #define __FXSR__ 12260// CHECK_GLM_M64: #define __MMX__ 12261// CHECK_GLM_M64: #define __MOVBE__ 12262// CHECK_GLM_M64: #define __PCLMUL__ 12263// CHECK_GLM_M64: #define __POPCNT__ 12264// CHECK_GLM_M64: #define __PRFCHW__ 12265// CHECK_GLM_M64: #define __RDRND__ 12266// CHECK_GLM_M64: #define __RDSEED__ 12267// CHECK_GLM_M64: #define __SHA__ 12268// CHECK_GLM_M64: #define __SSE2__ 12269// CHECK_GLM_M64: #define __SSE3__ 12270// CHECK_GLM_M64: #define __SSE4_1__ 12271// CHECK_GLM_M64: #define __SSE4_2__ 12272// CHECK_GLM_M64: #define __SSE__ 12273// CHECK_GLM_M64: #define __SSSE3__ 12274// CHECK_GLM_M64: #define __XSAVEC__ 12275// CHECK_GLM_M64: #define __XSAVEOPT__ 12276// CHECK_GLM_M64: #define __XSAVES__ 12277// CHECK_GLM_M64: #define __XSAVE__ 12278// CHECK_GLM_M64: #define __goldmont 12279// CHECK_GLM_M64: #define __goldmont__ 12280// CHECK_GLM_M64: #define __tune_goldmont__ 12281// CHECK_GLM_M64: #define __x86_64 12282// CHECK_GLM_M64: #define __x86_64__ 12283 2284// RUN: %clang -march=goldmont-plus -m32 -E -dM %s -o - 2>&1 \2285// RUN: -target i386-unknown-linux \2286// RUN: | FileCheck %s -check-prefix=CHECK_GLMP_M322287// CHECK_GLMP_M32: #define __AES__ 12288// CHECK_GLMP_M32: #define __CLFLUSHOPT__ 12289// CHECK_GLMP_M32: #define __FSGSBASE__ 12290// CHECK_GLMP_M32: #define __FXSR__ 12291// CHECK_GLMP_M32: #define __MMX__ 12292// CHECK_GLMP_M32: #define __MOVBE__ 12293// CHECK_GLMP_M32: #define __PCLMUL__ 12294// CHECK_GLMP_M32: #define __POPCNT__ 12295// CHECK_GLMP_M32: #define __PRFCHW__ 12296// CHECK_GLMP_M32: #define __PTWRITE__ 12297// CHECK_GLMP_M32: #define __RDPID__ 12298// CHECK_GLMP_M32: #define __RDRND__ 12299// CHECK_GLMP_M32: #define __RDSEED__ 12300// CHECK_GLMP_M32: #define __SGX__ 12301// CHECK_GLMP_M32: #define __SHA__ 12302// CHECK_GLMP_M32: #define __SSE2__ 12303// CHECK_GLMP_M32: #define __SSE3__ 12304// CHECK_GLMP_M32: #define __SSE4_1__ 12305// CHECK_GLMP_M32: #define __SSE4_2__ 12306// CHECK_GLMP_M32: #define __SSE_MATH__ 12307// CHECK_GLMP_M32: #define __SSE__ 12308// CHECK_GLMP_M32: #define __SSSE3__ 12309// CHECK_GLMP_M32: #define __XSAVEC__ 12310// CHECK_GLMP_M32: #define __XSAVEOPT__ 12311// CHECK_GLMP_M32: #define __XSAVES__ 12312// CHECK_GLMP_M32: #define __XSAVE__ 12313// CHECK_GLMP_M32: #define __goldmont_plus 12314// CHECK_GLMP_M32: #define __goldmont_plus__ 12315// CHECK_GLMP_M32: #define __i386 12316// CHECK_GLMP_M32: #define __i386__ 12317// CHECK_GLMP_M32: #define __tune_goldmont_plus__ 12318// CHECK_GLMP_M32: #define i386 12319 2320// RUN: %clang -march=goldmont-plus -m64 -E -dM %s -o - 2>&1 \2321// RUN: -target i386-unknown-linux \2322// RUN: | FileCheck %s -check-prefix=CHECK_GLMP_M642323// CHECK_GLMP_M64: #define __AES__ 12324// CHECK_GLMP_M64: #define __CLFLUSHOPT__ 12325// CHECK_GLMP_M64: #define __FSGSBASE__ 12326// CHECK_GLMP_M64: #define __FXSR__ 12327// CHECK_GLMP_M64: #define __MMX__ 12328// CHECK_GLMP_M64: #define __MOVBE__ 12329// CHECK_GLMP_M64: #define __PCLMUL__ 12330// CHECK_GLMP_M64: #define __POPCNT__ 12331// CHECK_GLMP_M64: #define __PRFCHW__ 12332// CHECK_GLMP_M64: #define __PTWRITE__ 12333// CHECK_GLMP_M64: #define __RDPID__ 12334// CHECK_GLMP_M64: #define __RDRND__ 12335// CHECK_GLMP_M64: #define __RDSEED__ 12336// CHECK_GLMP_M64: #define __SGX__ 12337// CHECK_GLMP_M64: #define __SHA__ 12338// CHECK_GLMP_M64: #define __SSE2__ 12339// CHECK_GLMP_M64: #define __SSE3__ 12340// CHECK_GLMP_M64: #define __SSE4_1__ 12341// CHECK_GLMP_M64: #define __SSE4_2__ 12342// CHECK_GLMP_M64: #define __SSE__ 12343// CHECK_GLMP_M64: #define __SSSE3__ 12344// CHECK_GLMP_M64: #define __XSAVEC__ 12345// CHECK_GLMP_M64: #define __XSAVEOPT__ 12346// CHECK_GLMP_M64: #define __XSAVES__ 12347// CHECK_GLMP_M64: #define __XSAVE__ 12348// CHECK_GLMP_M64: #define __goldmont_plus 12349// CHECK_GLMP_M64: #define __goldmont_plus__ 12350// CHECK_GLMP_M64: #define __tune_goldmont_plus__ 12351// CHECK_GLMP_M64: #define __x86_64 12352// CHECK_GLMP_M64: #define __x86_64__ 12353 2354// RUN: %clang -march=tremont -m32 -E -dM %s -o - 2>&1 \2355// RUN: -target i386-unknown-linux \2356// RUN: | FileCheck %s -check-prefix=CHECK_TRM_M322357// CHECK_TRM_M32: #define __AES__ 12358// CHECK_TRM_M32-NOT: #define __CLDEMOTE__ 12359// CHECK_TRM_M32: #define __CLFLUSHOPT__ 12360// CHECK_TRM_M32: #define __CLWB__ 12361// CHECK_TRM_M32: #define __FSGSBASE__ 12362// CHECK_TRM_M32: #define __FXSR__ 12363// CHECK_TRM_M32: #define __GFNI__ 12364// CHECK_TRM_M32: #define __MMX__ 12365// CHECK_TRM_M32: #define __MOVBE__ 12366// CHECK_TRM_M32-NOT: #define __MOVDIR64B__ 12367// CHECK_TRM_M32-NOT: #define __MOVDIRI__ 12368// CHECK_TRM_M32: #define __PCLMUL__ 12369// CHECK_TRM_M32: #define __POPCNT__ 12370// CHECK_TRM_M32: #define __PRFCHW__ 12371// CHECK_TRM_M32: #define __PTWRITE__ 12372// CHECK_TRM_M32: #define __RDPID__ 12373// CHECK_TRM_M32: #define __RDRND__ 12374// CHECK_TRM_M32: #define __RDSEED__ 12375// CHECK_TRM_M32: #define __SGX__ 12376// CHECK_TRM_M32: #define __SHA__ 12377// CHECK_TRM_M32: #define __SSE2__ 12378// CHECK_TRM_M32: #define __SSE3__ 12379// CHECK_TRM_M32: #define __SSE4_1__ 12380// CHECK_TRM_M32: #define __SSE4_2__ 12381// CHECK_TRM_M32: #define __SSE_MATH__ 12382// CHECK_TRM_M32: #define __SSE__ 12383// CHECK_TRM_M32: #define __SSSE3__ 12384// CHECK_TRM_M32-NOT: #define __WAITPKG__ 12385// CHECK_TRM_M32: #define __XSAVEC__ 12386// CHECK_TRM_M32: #define __XSAVEOPT__ 12387// CHECK_TRM_M32: #define __XSAVES__ 12388// CHECK_TRM_M32: #define __XSAVE__ 12389// CHECK_TRM_M32: #define __i386 12390// CHECK_TRM_M32: #define __i386__ 12391// CHECK_TRM_M32: #define __tremont 12392// CHECK_TRM_M32: #define __tremont__ 12393// CHECK_TRM_M32: #define __tune_tremont__ 12394// CHECK_TRM_M32: #define i386 12395 2396// RUN: %clang -march=tremont -m64 -E -dM %s -o - 2>&1 \2397// RUN: -target i386-unknown-linux \2398// RUN: | FileCheck %s -check-prefix=CHECK_TRM_M642399// CHECK_TRM_M64: #define __AES__ 12400// CHECK_TRM_M64-NOT: #define __CLDEMOTE__ 12401// CHECK_TRM_M64: #define __CLFLUSHOPT__ 12402// CHECK_TRM_M64: #define __CLWB__ 12403// CHECK_TRM_M64: #define __FSGSBASE__ 12404// CHECK_TRM_M64: #define __FXSR__ 12405// CHECK_TRM_M64: #define __GFNI__ 12406// CHECK_TRM_M64: #define __MMX__ 12407// CHECK_TRM_M64: #define __MOVBE__ 12408// CHECK_TRM_M64-NOT: #define __MOVDIR64B__ 12409// CHECK_TRM_M64-NOT: #define __MOVDIRI__ 12410// CHECK_TRM_M64: #define __PCLMUL__ 12411// CHECK_TRM_M64: #define __POPCNT__ 12412// CHECK_TRM_M64: #define __PRFCHW__ 12413// CHECK_TRM_M64: #define __PTWRITE__ 12414// CHECK_TRM_M64: #define __RDPID__ 12415// CHECK_TRM_M64: #define __RDRND__ 12416// CHECK_TRM_M64: #define __RDSEED__ 12417// CHECK_TRM_M64: #define __SGX__ 12418// CHECK_TRM_M64: #define __SHA__ 12419// CHECK_TRM_M64: #define __SSE2__ 12420// CHECK_TRM_M64: #define __SSE3__ 12421// CHECK_TRM_M64: #define __SSE4_1__ 12422// CHECK_TRM_M64: #define __SSE4_2__ 12423// CHECK_TRM_M64: #define __SSE__ 12424// CHECK_TRM_M64: #define __SSSE3__ 12425// CHECK_TRM_M64-NOT: #define __WAITPKG__ 12426// CHECK_TRM_M64: #define __XSAVEC__ 12427// CHECK_TRM_M64: #define __XSAVEOPT__ 12428// CHECK_TRM_M64: #define __XSAVES__ 12429// CHECK_TRM_M64: #define __XSAVE__ 12430// CHECK_TRM_M64: #define __tremont 12431// CHECK_TRM_M64: #define __tremont__ 12432// CHECK_TRM_M64: #define __tune_tremont__ 12433// CHECK_TRM_M64: #define __x86_64 12434// CHECK_TRM_M64: #define __x86_64__ 12435 2436// RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \2437// RUN: -target i386-unknown-linux \2438// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M322439// RUN: %clang -march=silvermont -m32 -E -dM %s -o - 2>&1 \2440// RUN: -target i386-unknown-linux \2441// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M322442// CHECK_SLM_M32: #define __FXSR__ 12443// CHECK_SLM_M32: #define __MMX__ 12444// CHECK_SLM_M32: #define __MOVBE__ 12445// CHECK_SLM_M32: #define __PCLMUL__ 12446// CHECK_SLM_M32: #define __POPCNT__ 12447// CHECK_SLM_M32: #define __PRFCHW__ 12448// CHECK_SLM_M32: #define __RDRND__ 12449// CHECK_SLM_M32: #define __SSE2__ 12450// CHECK_SLM_M32: #define __SSE3__ 12451// CHECK_SLM_M32: #define __SSE4_1__ 12452// CHECK_SLM_M32: #define __SSE4_2__ 12453// CHECK_SLM_M32: #define __SSE__ 12454// CHECK_SLM_M32: #define __SSSE3__ 12455// CHECK_SLM_M32: #define __i386 12456// CHECK_SLM_M32: #define __i386__ 12457// CHECK_SLM_M32: #define __slm 12458// CHECK_SLM_M32: #define __slm__ 12459// CHECK_SLM_M32: #define __tune_slm__ 12460// CHECK_SLM_M32: #define i386 12461 2462// RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \2463// RUN: -target i386-unknown-linux \2464// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M642465// RUN: %clang -march=silvermont -m64 -E -dM %s -o - 2>&1 \2466// RUN: -target i386-unknown-linux \2467// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M642468// CHECK_SLM_M64: #define __FXSR__ 12469// CHECK_SLM_M64: #define __MMX__ 12470// CHECK_SLM_M64: #define __MOVBE__ 12471// CHECK_SLM_M64: #define __PCLMUL__ 12472// CHECK_SLM_M64: #define __POPCNT__ 12473// CHECK_SLM_M64: #define __PRFCHW__ 12474// CHECK_SLM_M64: #define __RDRND__ 12475// CHECK_SLM_M64: #define __SSE2_MATH__ 12476// CHECK_SLM_M64: #define __SSE2__ 12477// CHECK_SLM_M64: #define __SSE3__ 12478// CHECK_SLM_M64: #define __SSE4_1__ 12479// CHECK_SLM_M64: #define __SSE4_2__ 12480// CHECK_SLM_M64: #define __SSE_MATH__ 12481// CHECK_SLM_M64: #define __SSE__ 12482// CHECK_SLM_M64: #define __SSSE3__ 12483// CHECK_SLM_M64: #define __amd64 12484// CHECK_SLM_M64: #define __amd64__ 12485// CHECK_SLM_M64: #define __slm 12486// CHECK_SLM_M64: #define __slm__ 12487// CHECK_SLM_M64: #define __tune_slm__ 12488// CHECK_SLM_M64: #define __x86_64 12489// CHECK_SLM_M64: #define __x86_64__ 12490 2491// RUN: %clang -march=lakemont -m32 -E -dM %s -o - 2>&1 \2492// RUN: -target i386-unknown-linux \2493// RUN: | FileCheck %s -check-prefix=CHECK_LAKEMONT_M322494// CHECK_LAKEMONT_M32: #define __i386 12495// CHECK_LAKEMONT_M32: #define __i386__ 12496// CHECK_LAKEMONT_M32: #define __i586 12497// CHECK_LAKEMONT_M32: #define __i586__ 12498// CHECK_LAKEMONT_M32: #define __pentium 12499// CHECK_LAKEMONT_M32: #define __pentium__ 12500// CHECK_LAKEMONT_M32: #define __tune_lakemont__ 12501// CHECK_LAKEMONT_M32: #define i386 12502// RUN: not %clang -march=lakemont -m64 -E -dM %s -o - 2>&1 \2503// RUN: -target i386-unknown-linux \2504// RUN: | FileCheck %s -check-prefix=CHECK_LAKEMONT_M642505// CHECK_LAKEMONT_M64: error:2506 2507// RUN: %clang -march=sierraforest -m32 -E -dM %s -o - 2>&1 \2508// RUN: --target=i386 \2509// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_SRF_M32,CHECK_KL_M322510// RUN: %clang -march=grandridge -m32 -E -dM %s -o - 2>&1 \2511// RUN: --target=i386 \2512// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_SRF_M32,CHECK_KL_M322513// RUN: %clang -march=arrowlake -m32 -E -dM %s -o - 2>&1 \2514// RUN: -target i386-unknown-linux \2515// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_KL_M322516// RUN: %clang -march=arrowlake-s -m32 -E -dM %s -o - 2>&1 \2517// RUN: -target i386-unknown-linux \2518// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_ARLS_M32,CHECK_KL_M322519// RUN: %clang -march=lunarlake -m32 -E -dM %s -o - 2>&1 \2520// RUN: -target i386-unknown-linux \2521// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_ARLS_M32,CHECK_KL_M322522// RUN: %clang -march=pantherlake -m32 -E -dM %s -o - 2>&1 \2523// RUN: -target i386-unknown-linux \2524// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_ARLS_M32,CHECK_NKL_M322525// RUN: %clang -march=wildcatlake -m32 -E -dM %s -o - 2>&1 \2526// RUN: -target i386-unknown-linux \2527// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_ARLS_M32,CHECK_NKL_M322528// RUN: %clang -march=clearwaterforest -m32 -E -dM %s -o - 2>&1 \2529// RUN: -target i386-unknown-linux \2530// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_SRF_M32,CHECK_ARLS_M32,CHECK_UMSR_M32,CHECK_CWF_M32,CHECK_NKL_M322531// RUN: %clang -march=novalake -m32 -E -dM %s -o - 2>&1 \2532// RUN: -target i386-unknown-linux \2533// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M32,CHECK_ARLS_M32,CHECK_CWF_M32,CHECK_NVL_M32,CHECK_NKL_M322534// CHECK_ARL_M32: #define __ADX__ 12535// CHECK_ARL_M32: #define __AES__ 12536// CHECK_NVL_M32: #define __AVX10_1__ 12537// CHECK_NVL_M32: #define __AVX10_2__ 12538// CHECK_ARL_M32: #define __AVX2__ 12539// CHECK_NVL_M32: #define __AVX512BF16__ 12540// CHECK_NVL_M32: #define __AVX512BITALG__ 12541// CHECK_NVL_M32: #define __AVX512BW__ 12542// CHECK_NVL_M32: #define __AVX512CD__ 12543// CHECK_NVL_M32: #define __AVX512DQ__ 12544// CHECK_NVL_M32: #define __AVX512FP16__ 12545// CHECK_NVL_M32: #define __AVX512F__ 12546// CHECK_NVL_M32: #define __AVX512IFMA__ 12547// CHECK_NVL_M32: #define __AVX512VBMI2__ 12548// CHECK_NVL_M32: #define __AVX512VBMI__ 12549// CHECK_NVL_M32: #define __AVX512VL__ 12550// CHECK_NVL_M32: #define __AVX512VNNI__ 12551// CHECK_NVL_M32: #define __AVX512VPOPCNTDQ__ 12552// We check for NOT AVX512 after all checks for AVX512, so 2553// if we missed some check on NVL, the test will fail.2554// CHECK_ARL_M32-NOT: AVX5122555// CHECK_ARL_M32: #define __AVXIFMA__ 12556// CHECK_ARL_M32: #define __AVXNECONVERT__ 12557// CHECK_ARL_M32-NOT: #define __AVXVNNIINT16__ 12558// CHECK_ARLS_M32: #define __AVXVNNIINT16__ 12559// CHECK_ARL_M32: #define __AVXVNNIINT8__ 12560// CHECK_ARL_M32: #define __AVXVNNI__ 12561// CHECK_ARL_M32: #define __AVX__ 12562// CHECK_ARL_M32: #define __BMI2__ 12563// CHECK_ARL_M32: #define __BMI__ 12564// CHECK_NVL_M32: #define __CCMP__ 12565// CHECK_ARLS_M32-NOT: __CLDEMOTE__2566// CHECK_SRF_M32: #define __CLDEMOTE__ 12567// CHECK_ARL_M32: #define __CLFLUSHOPT__ 12568// CHECK_ARL_M32: #define __CLWB__ 12569// CHECK_ARL_M32: #define __CMPCCXADD__ 12570// CHECK_NVL_M32: #define __EGPR__ 12571// CHECK_ARL_M32: #define __ENQCMD__ 12572// CHECK_ARL_M32: #define __F16C__ 12573// CHECK_ARL_M32: #define __FMA__ 12574// CHECK_ARL_M32: #define __FSGSBASE__ 12575// CHECK_ARL_M32: #define __FXSR__ 12576// CHECK_ARL_M32: #define __GFNI__ 12577// CHECK_ARL_M32: #define __HRESET__ 12578// CHECK_ARL_M32: #define __INVPCID__ 12579// CHECK_KL_M32: #define __KL__ 12580// CHECK_NKL_M32-NOT: __KL__2581// CHECK_ARL_M32: #define __LZCNT__ 12582// CHECK_ARL_M32: #define __MMX__ 12583// CHECK_ARL_M32: #define __MOVBE__ 12584// CHECK_ARL_M32: #define __MOVDIR64B__ 12585// CHECK_ARL_M32: #define __MOVDIRI__ 12586// CHECK_NVL_M32: #define __MOVRS__ 12587// CHECK_NVL_M32: #define __NDD__ 12588// CHECK_NVL_M32: #define __NF__ 12589// CHECK_ARL_M32: #define __PCLMUL__ 12590// CHECK_ARL_M32: #define __PCONFIG__ 12591// CHECK_ARL_M32: #define __PKU__ 12592// CHECK_ARL_M32: #define __POPCNT__ 12593// CHECK_NVL_M32: #define __PPX__ 12594// CHECK_ARL_M32-NOT: #define __PREFETCHI__ 12595// CHECK_ARLS_M32-NOT: #define __PREFETCHI__ 12596// CHECK_CWF_M32: #define __PREFETCHI__ 12597// CHECK_ARL_M32: #define __PRFCHW__ 12598// CHECK_ARL_M32: #define __PTWRITE__ 12599// CHECK_NVL_M32: #define __PUSH2POP2__ 12600// CHECK_ARL_M32-NOT: #define __RAOINT__ 12601// CHECK_ARL_M32: #define __RDPID__ 12602// CHECK_ARL_M32: #define __RDRND__ 12603// CHECK_ARL_M32: #define __RDSEED__ 12604// CHECK_ARL_M32: #define __SERIALIZE__ 12605// CHECK_ARL_M32: #define __SGX__ 12606// CHECK_ARL_M32-NOT: #define __SHA512__ 12607// CHECK_ARLS_M32: #define __SHA512__ 12608// CHECK_ARL_M32: #define __SHA__ 12609// CHECK_ARL_M32: #define __SHSTK__ 12610// CHECK_ARL_M32-NOT: #define __SM3__ 12611// CHECK_ARLS_M32: #define __SM3__ 12612// CHECK_ARL_M32-NOT: #define __SM4__ 12613// CHECK_ARLS_M32: #define __SM4__ 12614// CHECK_ARL_M32: #define __SSE2__ 12615// CHECK_ARL_M32: #define __SSE3__ 12616// CHECK_ARL_M32: #define __SSE4_1__ 12617// CHECK_ARL_M32: #define __SSE4_2__ 12618// CHECK_ARL_M32: #define __SSE_MATH__ 12619// CHECK_ARL_M32: #define __SSE__ 12620// CHECK_ARL_M32: #define __SSSE3__ 12621// CHECK_ARL_M32: #define __UINTR__ 12622// CHECK_ARL_M32-NOT: #define __USERMSR__ 12623// CHECK_ARLS_M32-NOT: #define __USERMSR__ 12624// CHECK_UMSR_M32: #define __USERMSR__ 12625// CHECK_ARL_M32: #define __VAES__ 12626// CHECK_ARL_M32: #define __VPCLMULQDQ__ 12627// CHECK_ARL_M32: #define __WAITPKG__ 12628// CHECK_KL_M32: #define __WIDEKL__ 12629// CHECK_NKL_M32-NOT: __WIDEKL__2630// CHECK_ARL_M32: #define __XSAVEC__ 12631// CHECK_ARL_M32: #define __XSAVEOPT__ 12632// CHECK_ARL_M32: #define __XSAVES__ 12633// CHECK_ARL_M32: #define __XSAVE__ 12634// CHECK_NVL_M32: #define __ZU__ 12635// CHECK_ARL_M32: #define __corei7 12636// CHECK_ARL_M32: #define __corei7__ 12637// CHECK_ARL_M32: #define __i386 12638// CHECK_ARL_M32: #define __i386__ 12639// CHECK_ARL_M32: #define __tune_corei7__ 12640// CHECK_ARL_M32: #define i386 12641 2642// RUN: %clang -march=sierraforest -m64 -E -dM %s -o - 2>&1 \2643// RUN: --target=i386 \2644// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_SRF_M64,CHECK_KL_M642645// RUN: %clang -march=grandridge -m64 -E -dM %s -o - 2>&1 \2646// RUN: --target=i386 \2647// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_SRF_M64,CHECK_KL_M642648// RUN: %clang -march=arrowlake -m64 -E -dM %s -o - 2>&1 \2649// RUN: -target i386-unknown-linux \2650// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_KL_M642651// RUN: %clang -march=arrowlake-s -m64 -E -dM %s -o - 2>&1 \2652// RUN: -target i386-unknown-linux \2653// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_ARLS_M64,CHECK_KL_M642654// RUN: %clang -march=lunarlake -m64 -E -dM %s -o - 2>&1 \2655// RUN: -target i386-unknown-linux \2656// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_ARLS_M64,CHECK_KL_M642657// RUN: %clang -march=pantherlake -m64 -E -dM %s -o - 2>&1 \2658// RUN: -target i386-unknown-linux \2659// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_ARLS_M64,CHECK_NKL_M642660// RUN: %clang -march=wildcatlake -m64 -E -dM %s -o - 2>&1 \2661// RUN: -target i386-unknown-linux \2662// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_ARLS_M64,CHECK_NKL_M642663// RUN: %clang -march=clearwaterforest -m64 -E -dM %s -o - 2>&1 \2664// RUN: -target i386-unknown-linux \2665// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_SRF_M64,CHECK_ARLS_M64,CHECK_UMSR_M64,CHECK_CWF_M64,CHECK_NKL_M642666// RUN: %clang -march=novalake -m64 -E -dM %s -o - 2>&1 \2667// RUN: -target i386-unknown-linux \2668// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_ARL_M64,CHECK_ARLS_M64,CHECK_CWF_M64,CHECK_NVL_M64,CHECK_NKL_M642669// CHECK_ARL_M64: #define __ADX__ 12670// CHECK_ARL_M64: #define __AES__ 12671// CHECK_NVL_M64: #define __AVX10_1__ 12672// CHECK_NVL_M64: #define __AVX10_2__ 12673// CHECK_ARL_M64: #define __AVX2__ 12674// CHECK_NVL_M64: #define __AVX512BF16__ 12675// CHECK_NVL_M64: #define __AVX512BITALG__ 12676// CHECK_NVL_M64: #define __AVX512BW__ 12677// CHECK_NVL_M64: #define __AVX512CD__ 12678// CHECK_NVL_M64: #define __AVX512DQ__ 12679// CHECK_NVL_M64: #define __AVX512FP16__ 12680// CHECK_NVL_M64: #define __AVX512F__ 12681// CHECK_NVL_M64: #define __AVX512IFMA__ 12682// CHECK_NVL_M64: #define __AVX512VBMI2__ 12683// CHECK_NVL_M64: #define __AVX512VBMI__ 12684// CHECK_NVL_M64: #define __AVX512VL__ 12685// CHECK_NVL_M64: #define __AVX512VNNI__ 12686// CHECK_NVL_M64: #define __AVX512VPOPCNTDQ__ 12687// CHECK_ARL_M64-NOT: AVX5122688// CHECK_ARL_M64: #define __AVXIFMA__ 12689// CHECK_ARL_M64: #define __AVXNECONVERT__ 12690// CHECK_ARL_M64-NOT: #define __AVXVNNIINT16__ 12691// CHECK_ARLS_M64: #define __AVXVNNIINT16__ 12692// CHECK_ARL_M64: #define __AVXVNNIINT8__ 12693// CHECK_ARL_M64: #define __AVXVNNI__ 12694// CHECK_ARL_M64: #define __AVX__ 12695// CHECK_ARL_M64: #define __BMI2__ 12696// CHECK_ARL_M64: #define __BMI__ 12697// CHECK_NVL_M64: #define __CCMP__ 12698// CHECK_ARLS_M64-NOT: __CLDEMOTE__2699// CHECK_SRF_M64: #define __CLDEMOTE__ 12700// CHECK_ARL_M64: #define __CLFLUSHOPT__ 12701// CHECK_ARL_M64: #define __CLWB__ 12702// CHECK_ARL_M64: #define __CMPCCXADD__ 12703// CHECK_NVL_M64: #define __EGPR__ 12704// CHECK_ARL_M64: #define __ENQCMD__ 12705// CHECK_ARL_M64: #define __F16C__ 12706// CHECK_ARL_M64: #define __FMA__ 12707// CHECK_ARL_M64: #define __FSGSBASE__ 12708// CHECK_ARL_M64: #define __FXSR__ 12709// CHECK_ARL_M64: #define __GFNI__ 12710// CHECK_ARL_M64: #define __HRESET__ 12711// CHECK_ARL_M64: #define __INVPCID__ 12712// CHECK_KL_M64: #define __KL__ 12713// CHECK_NKL_M64-NOT: __KL__2714// CHECK_ARL_M64: #define __LZCNT__ 12715// CHECK_ARL_M64: #define __MMX__ 12716// CHECK_ARL_M64: #define __MOVBE__ 12717// CHECK_ARL_M64: #define __MOVDIR64B__ 12718// CHECK_ARL_M64: #define __MOVDIRI__ 12719// CHECK_NVL_M64: #define __MOVRS__ 12720// CHECK_NVL_M64: #define __NDD__ 12721// CHECK_NVL_M64: #define __NF__ 12722// CHECK_ARL_M64: #define __PCLMUL__ 12723// CHECK_ARL_M64: #define __PCONFIG__ 12724// CHECK_ARL_M64: #define __PKU__ 12725// CHECK_ARL_M64: #define __POPCNT__ 12726// CHECK_NVL_M64: #define __PPX__ 12727// CHECK_ARL_M64-NOT: #define __PREFETCHI__ 12728// CHECK_ARLS_M64-NOT: #define __PREFETCHI__ 12729// CHECK_CWF_M64: #define __PREFETCHI__ 12730// CHECK_ARL_M64: #define __PRFCHW__ 12731// CHECK_ARL_M64: #define __PTWRITE__ 12732// CHECK_NVL_M64: #define __PUSH2POP2__ 12733// CHECK_ARL_M64-NOT: #define __RAOINT__ 12734// CHECK_ARL_M64: #define __RDPID__ 12735// CHECK_ARL_M64: #define __RDRND__ 12736// CHECK_ARL_M64: #define __RDSEED__ 12737// CHECK_ARL_M64: #define __SERIALIZE__ 12738// CHECK_ARL_M64: #define __SGX__ 12739// CHECK_ARL_M64-NOT: #define __SHA512__ 12740// CHECK_ARLS_M64: #define __SHA512__ 12741// CHECK_ARL_M64: #define __SHA__ 12742// CHECK_ARL_M64: #define __SHSTK__ 12743// CHECK_ARL_M64-NOT: #define __SM3__ 12744// CHECK_ARLS_M64: #define __SM3__ 12745// CHECK_ARL_M64-NOT: #define __SM4__ 12746// CHECK_ARLS_M64: #define __SM4__ 12747// CHECK_ARL_M64: #define __SSE2_MATH__ 12748// CHECK_ARL_M64: #define __SSE2__ 12749// CHECK_ARL_M64: #define __SSE3__ 12750// CHECK_ARL_M64: #define __SSE4_1__ 12751// CHECK_ARL_M64: #define __SSE4_2__ 12752// CHECK_ARL_M64: #define __SSE_MATH__ 12753// CHECK_ARL_M64: #define __SSE__ 12754// CHECK_ARL_M64: #define __SSSE3__ 12755// CHECK_ARL_M64: #define __UINTR__ 12756// CHECK_ARL_M64-NOT: #define __USERMSR__ 12757// CHECK_ARLS_M64-NOT: #define __USERMSR__ 12758// CHECK_UMSR_M64: #define __USERMSR__ 12759// CHECK_ARL_M64: #define __VAES__ 12760// CHECK_ARL_M64: #define __VPCLMULQDQ__ 12761// CHECK_ARL_M64: #define __WAITPKG__ 12762// CHECK_KL_M64: #define __WIDEKL__ 12763// CHECK_NKL_M64-NOT: __WIDEKL__2764// CHECK_ARL_M64: #define __XSAVEC__ 12765// CHECK_ARL_M64: #define __XSAVEOPT__ 12766// CHECK_ARL_M64: #define __XSAVES__ 12767// CHECK_ARL_M64: #define __XSAVE__ 12768// CHECK_NVL_M64: #define __ZU__ 12769// CHECK_ARL_M64: #define __amd64 12770// CHECK_ARL_M64: #define __amd64__ 12771// CHECK_ARL_M64: #define __corei7 12772// CHECK_ARL_M64: #define __corei7__ 12773// CHECK_ARL_M64: #define __tune_corei7__ 12774// CHECK_ARL_M64: #define __x86_64 12775// CHECK_ARL_M64: #define __x86_64__ 12776 2777// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \2778// RUN: -target i386-unknown-linux \2779// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GEODE_M322780// CHECK_GEODE_M32: #define __MMX__ 12781// CHECK_GEODE_M32: #define __geode 12782// CHECK_GEODE_M32: #define __geode__ 12783// CHECK_GEODE_M32: #define __i386 12784// CHECK_GEODE_M32: #define __i386__ 12785// CHECK_GEODE_M32: #define __tune_geode__ 12786// CHECK_GEODE_M32: #define i386 12787// RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \2788// RUN: -target i386-unknown-linux \2789// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GEODE_M642790// CHECK_GEODE_M64: error: {{.*}}2791 2792// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \2793// RUN: -target i386-unknown-linux \2794// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_M322795// CHECK_K6_M32: #define __MMX__ 12796// CHECK_K6_M32: #define __i386 12797// CHECK_K6_M32: #define __i386__ 12798// CHECK_K6_M32: #define __k6 12799// CHECK_K6_M32: #define __k6__ 12800// CHECK_K6_M32: #define __tune_k6__ 12801// CHECK_K6_M32: #define i386 12802// RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \2803// RUN: -target i386-unknown-linux \2804// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_M642805// CHECK_K6_M64: error: {{.*}}2806 2807// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \2808// RUN: -target i386-unknown-linux \2809// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_2_M322810// CHECK_K6_2_M32: #define __MMX__ 12811// CHECK_K6_2_M32: #define __i386 12812// CHECK_K6_2_M32: #define __i386__ 12813// CHECK_K6_2_M32: #define __k6 12814// CHECK_K6_2_M32: #define __k6_2__ 12815// CHECK_K6_2_M32: #define __k6__ 12816// CHECK_K6_2_M32: #define __tune_k6_2__ 12817// CHECK_K6_2_M32: #define __tune_k6__ 12818// CHECK_K6_2_M32: #define i386 12819// RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \2820// RUN: -target i386-unknown-linux \2821// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_2_M642822// CHECK_K6_2_M64: error: {{.*}}2823 2824// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \2825// RUN: -target i386-unknown-linux \2826// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_3_M322827// CHECK_K6_3_M32: #define __MMX__ 12828// CHECK_K6_3_M32: #define __i386 12829// CHECK_K6_3_M32: #define __i386__ 12830// CHECK_K6_3_M32: #define __k6 12831// CHECK_K6_3_M32: #define __k6_3__ 12832// CHECK_K6_3_M32: #define __k6__ 12833// CHECK_K6_3_M32: #define __tune_k6_3__ 12834// CHECK_K6_3_M32: #define __tune_k6__ 12835// CHECK_K6_3_M32: #define i386 12836// RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \2837// RUN: -target i386-unknown-linux \2838// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_3_M642839// CHECK_K6_3_M64: error: {{.*}}2840 2841// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \2842// RUN: -target i386-unknown-linux \2843// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_M322844// CHECK_ATHLON_M32: #define __MMX__ 12845// CHECK_ATHLON_M32: #define __athlon 12846// CHECK_ATHLON_M32: #define __athlon__ 12847// CHECK_ATHLON_M32: #define __i386 12848// CHECK_ATHLON_M32: #define __i386__ 12849// CHECK_ATHLON_M32: #define __tune_athlon__ 12850// CHECK_ATHLON_M32: #define i386 12851// RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \2852// RUN: -target i386-unknown-linux \2853// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_M642854// CHECK_ATHLON_M64: error: {{.*}}2855 2856// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \2857// RUN: -target i386-unknown-linux \2858// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_TBIRD_M322859// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 12860// CHECK_ATHLON_TBIRD_M32: #define __athlon 12861// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 12862// CHECK_ATHLON_TBIRD_M32: #define __i386 12863// CHECK_ATHLON_TBIRD_M32: #define __i386__ 12864// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 12865// CHECK_ATHLON_TBIRD_M32: #define i386 12866// RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \2867// RUN: -target i386-unknown-linux \2868// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_TBIRD_M642869// CHECK_ATHLON_TBIRD_M64: error: {{.*}}2870 2871// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \2872// RUN: -target i386-unknown-linux \2873// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_4_M322874// CHECK_ATHLON_4_M32: #define __MMX__ 12875// CHECK_ATHLON_4_M32: #define __SSE__ 12876// CHECK_ATHLON_4_M32: #define __athlon 12877// CHECK_ATHLON_4_M32: #define __athlon__ 12878// CHECK_ATHLON_4_M32: #define __athlon_sse__ 12879// CHECK_ATHLON_4_M32: #define __i386 12880// CHECK_ATHLON_4_M32: #define __i386__ 12881// CHECK_ATHLON_4_M32: #define __tune_athlon__ 12882// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 12883// CHECK_ATHLON_4_M32: #define i386 12884// RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \2885// RUN: -target i386-unknown-linux \2886// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_4_M642887// CHECK_ATHLON_4_M64: error: {{.*}}2888 2889// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \2890// RUN: -target i386-unknown-linux \2891// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_XP_M322892// CHECK_ATHLON_XP_M32: #define __MMX__ 12893// CHECK_ATHLON_XP_M32: #define __SSE__ 12894// CHECK_ATHLON_XP_M32: #define __athlon 12895// CHECK_ATHLON_XP_M32: #define __athlon__ 12896// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 12897// CHECK_ATHLON_XP_M32: #define __i386 12898// CHECK_ATHLON_XP_M32: #define __i386__ 12899// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 12900// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 12901// CHECK_ATHLON_XP_M32: #define i386 12902// RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \2903// RUN: -target i386-unknown-linux \2904// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_XP_M642905// CHECK_ATHLON_XP_M64: error: {{.*}}2906 2907// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \2908// RUN: -target i386-unknown-linux \2909// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_MP_M322910// CHECK_ATHLON_MP_M32: #define __MMX__ 12911// CHECK_ATHLON_MP_M32: #define __SSE__ 12912// CHECK_ATHLON_MP_M32: #define __athlon 12913// CHECK_ATHLON_MP_M32: #define __athlon__ 12914// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 12915// CHECK_ATHLON_MP_M32: #define __i386 12916// CHECK_ATHLON_MP_M32: #define __i386__ 12917// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 12918// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 12919// CHECK_ATHLON_MP_M32: #define i386 12920// RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \2921// RUN: -target i386-unknown-linux \2922// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_MP_M642923// CHECK_ATHLON_MP_M64: error: {{.*}}2924 2925// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \2926// RUN: -target i386-unknown-linux \2927// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_X86_64_M322928// CHECK_X86_64_M32: #define __MMX__ 12929// CHECK_X86_64_M32: #define __SSE2__ 12930// CHECK_X86_64_M32: #define __SSE__ 12931// CHECK_X86_64_M32: #define __i386 12932// CHECK_X86_64_M32: #define __i386__ 12933// CHECK_X86_64_M32: #define __k8 12934// CHECK_X86_64_M32: #define __k8__ 12935// CHECK_X86_64_M32: #define i386 12936 2937// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \2938// RUN: -target i386-unknown-linux \2939// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_M322940// CHECK_K8_M32: #define __MMX__ 12941// CHECK_K8_M32: #define __SSE2__ 12942// CHECK_K8_M32: #define __SSE__ 12943// CHECK_K8_M32: #define __i386 12944// CHECK_K8_M32: #define __i386__ 12945// CHECK_K8_M32: #define __k8 12946// CHECK_K8_M32: #define __k8__ 12947// CHECK_K8_M32: #define __tune_k8__ 12948// CHECK_K8_M32: #define i386 12949 2950// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \2951// RUN: -target i386-unknown-linux \2952// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_M642953// CHECK_K8_M64: #define __MMX__ 12954// CHECK_K8_M64: #define __SSE2_MATH__ 12955// CHECK_K8_M64: #define __SSE2__ 12956// CHECK_K8_M64: #define __SSE_MATH__ 12957// CHECK_K8_M64: #define __SSE__ 12958// CHECK_K8_M64: #define __amd64 12959// CHECK_K8_M64: #define __amd64__ 12960// CHECK_K8_M64: #define __k8 12961// CHECK_K8_M64: #define __k8__ 12962// CHECK_K8_M64: #define __tune_k8__ 12963// CHECK_K8_M64: #define __x86_64 12964// CHECK_K8_M64: #define __x86_64__ 12965 2966// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \2967// RUN: -target i386-unknown-linux \2968// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_SSE3_M322969// CHECK_K8_SSE3_M32: #define __MMX__ 12970// CHECK_K8_SSE3_M32: #define __SSE2__ 12971// CHECK_K8_SSE3_M32: #define __SSE3__ 12972// CHECK_K8_SSE3_M32: #define __SSE__ 12973// CHECK_K8_SSE3_M32: #define __i386 12974// CHECK_K8_SSE3_M32: #define __i386__ 12975// CHECK_K8_SSE3_M32: #define __k8 12976// CHECK_K8_SSE3_M32: #define __k8__ 12977// CHECK_K8_SSE3_M32: #define __tune_k8__ 12978// CHECK_K8_SSE3_M32: #define i386 12979 2980// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \2981// RUN: -target i386-unknown-linux \2982// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_SSE3_M642983// CHECK_K8_SSE3_M64: #define __MMX__ 12984// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 12985// CHECK_K8_SSE3_M64: #define __SSE2__ 12986// CHECK_K8_SSE3_M64: #define __SSE3__ 12987// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 12988// CHECK_K8_SSE3_M64: #define __SSE__ 12989// CHECK_K8_SSE3_M64: #define __amd64 12990// CHECK_K8_SSE3_M64: #define __amd64__ 12991// CHECK_K8_SSE3_M64: #define __k8 12992// CHECK_K8_SSE3_M64: #define __k8__ 12993// CHECK_K8_SSE3_M64: #define __tune_k8__ 12994// CHECK_K8_SSE3_M64: #define __x86_64 12995// CHECK_K8_SSE3_M64: #define __x86_64__ 12996 2997// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \2998// RUN: -target i386-unknown-linux \2999// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_M323000// CHECK_OPTERON_M32: #define __MMX__ 13001// CHECK_OPTERON_M32: #define __SSE2__ 13002// CHECK_OPTERON_M32: #define __SSE__ 13003// CHECK_OPTERON_M32: #define __i386 13004// CHECK_OPTERON_M32: #define __i386__ 13005// CHECK_OPTERON_M32: #define __k8 13006// CHECK_OPTERON_M32: #define __k8__ 13007// CHECK_OPTERON_M32: #define __tune_k8__ 13008// CHECK_OPTERON_M32: #define i386 13009 3010// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \3011// RUN: -target i386-unknown-linux \3012// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_M643013// CHECK_OPTERON_M64: #define __MMX__ 13014// CHECK_OPTERON_M64: #define __SSE2_MATH__ 13015// CHECK_OPTERON_M64: #define __SSE2__ 13016// CHECK_OPTERON_M64: #define __SSE_MATH__ 13017// CHECK_OPTERON_M64: #define __SSE__ 13018// CHECK_OPTERON_M64: #define __amd64 13019// CHECK_OPTERON_M64: #define __amd64__ 13020// CHECK_OPTERON_M64: #define __k8 13021// CHECK_OPTERON_M64: #define __k8__ 13022// CHECK_OPTERON_M64: #define __tune_k8__ 13023// CHECK_OPTERON_M64: #define __x86_64 13024// CHECK_OPTERON_M64: #define __x86_64__ 13025 3026// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \3027// RUN: -target i386-unknown-linux \3028// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_SSE3_M323029// CHECK_OPTERON_SSE3_M32: #define __MMX__ 13030// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 13031// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 13032// CHECK_OPTERON_SSE3_M32: #define __SSE__ 13033// CHECK_OPTERON_SSE3_M32: #define __i386 13034// CHECK_OPTERON_SSE3_M32: #define __i386__ 13035// CHECK_OPTERON_SSE3_M32: #define __k8 13036// CHECK_OPTERON_SSE3_M32: #define __k8__ 13037// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 13038// CHECK_OPTERON_SSE3_M32: #define i386 13039 3040// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \3041// RUN: -target i386-unknown-linux \3042// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_SSE3_M643043// CHECK_OPTERON_SSE3_M64: #define __MMX__ 13044// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 13045// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 13046// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 13047// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 13048// CHECK_OPTERON_SSE3_M64: #define __SSE__ 13049// CHECK_OPTERON_SSE3_M64: #define __amd64 13050// CHECK_OPTERON_SSE3_M64: #define __amd64__ 13051// CHECK_OPTERON_SSE3_M64: #define __k8 13052// CHECK_OPTERON_SSE3_M64: #define __k8__ 13053// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 13054// CHECK_OPTERON_SSE3_M64: #define __x86_64 13055// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 13056 3057// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \3058// RUN: -target i386-unknown-linux \3059// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_M323060// CHECK_ATHLON64_M32: #define __MMX__ 13061// CHECK_ATHLON64_M32: #define __SSE2__ 13062// CHECK_ATHLON64_M32: #define __SSE__ 13063// CHECK_ATHLON64_M32: #define __i386 13064// CHECK_ATHLON64_M32: #define __i386__ 13065// CHECK_ATHLON64_M32: #define __k8 13066// CHECK_ATHLON64_M32: #define __k8__ 13067// CHECK_ATHLON64_M32: #define __tune_k8__ 13068// CHECK_ATHLON64_M32: #define i386 13069 3070// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \3071// RUN: -target i386-unknown-linux \3072// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_M643073// CHECK_ATHLON64_M64: #define __MMX__ 13074// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 13075// CHECK_ATHLON64_M64: #define __SSE2__ 13076// CHECK_ATHLON64_M64: #define __SSE_MATH__ 13077// CHECK_ATHLON64_M64: #define __SSE__ 13078// CHECK_ATHLON64_M64: #define __amd64 13079// CHECK_ATHLON64_M64: #define __amd64__ 13080// CHECK_ATHLON64_M64: #define __k8 13081// CHECK_ATHLON64_M64: #define __k8__ 13082// CHECK_ATHLON64_M64: #define __tune_k8__ 13083// CHECK_ATHLON64_M64: #define __x86_64 13084// CHECK_ATHLON64_M64: #define __x86_64__ 13085 3086// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \3087// RUN: -target i386-unknown-linux \3088// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_SSE3_M323089// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 13090// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 13091// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 13092// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 13093// CHECK_ATHLON64_SSE3_M32: #define __i386 13094// CHECK_ATHLON64_SSE3_M32: #define __i386__ 13095// CHECK_ATHLON64_SSE3_M32: #define __k8 13096// CHECK_ATHLON64_SSE3_M32: #define __k8__ 13097// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 13098// CHECK_ATHLON64_SSE3_M32: #define i386 13099 3100// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \3101// RUN: -target i386-unknown-linux \3102// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_SSE3_M643103// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 13104// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 13105// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 13106// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 13107// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 13108// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 13109// CHECK_ATHLON64_SSE3_M64: #define __amd64 13110// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 13111// CHECK_ATHLON64_SSE3_M64: #define __k8 13112// CHECK_ATHLON64_SSE3_M64: #define __k8__ 13113// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 13114// CHECK_ATHLON64_SSE3_M64: #define __x86_64 13115// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 13116 3117// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \3118// RUN: -target i386-unknown-linux \3119// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_FX_M323120// CHECK_ATHLON_FX_M32: #define __MMX__ 13121// CHECK_ATHLON_FX_M32: #define __SSE2__ 13122// CHECK_ATHLON_FX_M32: #define __SSE__ 13123// CHECK_ATHLON_FX_M32: #define __i386 13124// CHECK_ATHLON_FX_M32: #define __i386__ 13125// CHECK_ATHLON_FX_M32: #define __k8 13126// CHECK_ATHLON_FX_M32: #define __k8__ 13127// CHECK_ATHLON_FX_M32: #define __tune_k8__ 13128// CHECK_ATHLON_FX_M32: #define i386 13129 3130// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \3131// RUN: -target i386-unknown-linux \3132// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_FX_M643133// CHECK_ATHLON_FX_M64: #define __MMX__ 13134// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 13135// CHECK_ATHLON_FX_M64: #define __SSE2__ 13136// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 13137// CHECK_ATHLON_FX_M64: #define __SSE__ 13138// CHECK_ATHLON_FX_M64: #define __amd64 13139// CHECK_ATHLON_FX_M64: #define __amd64__ 13140// CHECK_ATHLON_FX_M64: #define __k8 13141// CHECK_ATHLON_FX_M64: #define __k8__ 13142// CHECK_ATHLON_FX_M64: #define __tune_k8__ 13143// CHECK_ATHLON_FX_M64: #define __x86_64 13144// CHECK_ATHLON_FX_M64: #define __x86_64__ 13145 3146// RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \3147// RUN: -target i386-unknown-linux \3148// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDFAM10_M323149// CHECK_AMDFAM10_M32: #define __LAHF_SAHF__ 13150// CHECK_AMDFAM10_M32: #define __LZCNT__ 13151// CHECK_AMDFAM10_M32: #define __MMX__ 13152// CHECK_AMDFAM10_M32: #define __POPCNT__ 13153// CHECK_AMDFAM10_M32: #define __PRFCHW__ 13154// CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 13155// CHECK_AMDFAM10_M32: #define __SSE2__ 13156// CHECK_AMDFAM10_M32: #define __SSE3__ 13157// CHECK_AMDFAM10_M32: #define __SSE4A__ 13158// CHECK_AMDFAM10_M32: #define __SSE_MATH__ 13159// CHECK_AMDFAM10_M32: #define __SSE__ 13160// CHECK_AMDFAM10_M32-NOT: #define __SSSE3__ 13161// CHECK_AMDFAM10_M32: #define __amdfam10 13162// CHECK_AMDFAM10_M32: #define __amdfam10__ 13163// CHECK_AMDFAM10_M32: #define __i386 13164// CHECK_AMDFAM10_M32: #define __i386__ 13165// CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 13166 3167// RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \3168// RUN: -target i386-unknown-linux \3169// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDFAM10_M643170// CHECK_AMDFAM10_M64: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 13171// CHECK_AMDFAM10_M64: #define __LAHF_SAHF__ 13172// CHECK_AMDFAM10_M64: #define __LZCNT__ 13173// CHECK_AMDFAM10_M64: #define __MMX__ 13174// CHECK_AMDFAM10_M64: #define __POPCNT__ 13175// CHECK_AMDFAM10_M64: #define __PRFCHW__ 13176// CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 13177// CHECK_AMDFAM10_M64: #define __SSE2__ 13178// CHECK_AMDFAM10_M64: #define __SSE3__ 13179// CHECK_AMDFAM10_M64: #define __SSE4A__ 13180// CHECK_AMDFAM10_M64: #define __SSE_MATH__ 13181// CHECK_AMDFAM10_M64: #define __SSE__ 13182// CHECK_AMDFAM10_M64-NOT: #define __SSSE3__ 13183// CHECK_AMDFAM10_M64: #define __amd64 13184// CHECK_AMDFAM10_M64: #define __amd64__ 13185// CHECK_AMDFAM10_M64: #define __amdfam10 13186// CHECK_AMDFAM10_M64: #define __amdfam10__ 13187// CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 13188// CHECK_AMDFAM10_M64: #define __x86_64 13189// CHECK_AMDFAM10_M64: #define __x86_64__ 13190 3191// RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \3192// RUN: -target i386-unknown-linux \3193// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER1_M323194// CHECK_BTVER1_M32: #define __LAHF_SAHF__ 13195// CHECK_BTVER1_M32: #define __LZCNT__ 13196// CHECK_BTVER1_M32: #define __MMX__ 13197// CHECK_BTVER1_M32: #define __POPCNT__ 13198// CHECK_BTVER1_M32: #define __PRFCHW__ 13199// CHECK_BTVER1_M32: #define __SSE2_MATH__ 13200// CHECK_BTVER1_M32: #define __SSE2__ 13201// CHECK_BTVER1_M32: #define __SSE3__ 13202// CHECK_BTVER1_M32: #define __SSE4A__ 13203// CHECK_BTVER1_M32: #define __SSE_MATH__ 13204// CHECK_BTVER1_M32: #define __SSE__ 13205// CHECK_BTVER1_M32: #define __SSSE3__ 13206// CHECK_BTVER1_M32: #define __btver1 13207// CHECK_BTVER1_M32: #define __btver1__ 13208// CHECK_BTVER1_M32: #define __i386 13209// CHECK_BTVER1_M32: #define __i386__ 13210// CHECK_BTVER1_M32: #define __tune_btver1__ 13211 3212// RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \3213// RUN: -target i386-unknown-linux \3214// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER1_M643215// CHECK_BTVER1_M64: #define __LAHF_SAHF__ 13216// CHECK_BTVER1_M64: #define __LZCNT__ 13217// CHECK_BTVER1_M64: #define __MMX__ 13218// CHECK_BTVER1_M64: #define __POPCNT__ 13219// CHECK_BTVER1_M64: #define __PRFCHW__ 13220// CHECK_BTVER1_M64: #define __SSE2_MATH__ 13221// CHECK_BTVER1_M64: #define __SSE2__ 13222// CHECK_BTVER1_M64: #define __SSE3__ 13223// CHECK_BTVER1_M64: #define __SSE4A__ 13224// CHECK_BTVER1_M64: #define __SSE_MATH__ 13225// CHECK_BTVER1_M64: #define __SSE__ 13226// CHECK_BTVER1_M64: #define __SSSE3__ 13227// CHECK_BTVER1_M64: #define __amd64 13228// CHECK_BTVER1_M64: #define __amd64__ 13229// CHECK_BTVER1_M64: #define __btver1 13230// CHECK_BTVER1_M64: #define __btver1__ 13231// CHECK_BTVER1_M64: #define __tune_btver1__ 13232// CHECK_BTVER1_M64: #define __x86_64 13233// CHECK_BTVER1_M64: #define __x86_64__ 13234 3235// RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \3236// RUN: -target i386-unknown-linux \3237// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER2_M323238// CHECK_BTVER2_M32: #define __AES__ 13239// CHECK_BTVER2_M32: #define __AVX__ 13240// CHECK_BTVER2_M32: #define __BMI__ 13241// CHECK_BTVER2_M32: #define __F16C__ 13242// CHECK_BTVER2_M32: #define __LZCNT__ 13243// CHECK_BTVER2_M32: #define __MMX__ 13244// CHECK_BTVER2_M32: #define __MOVBE__ 13245// CHECK_BTVER2_M32: #define __PCLMUL__ 13246// CHECK_BTVER2_M32: #define __POPCNT__ 13247// CHECK_BTVER2_M32: #define __PRFCHW__ 13248// CHECK_BTVER2_M32: #define __SSE2_MATH__ 13249// CHECK_BTVER2_M32: #define __SSE2__ 13250// CHECK_BTVER2_M32: #define __SSE3__ 13251// CHECK_BTVER2_M32: #define __SSE4A__ 13252// CHECK_BTVER2_M32: #define __SSE_MATH__ 13253// CHECK_BTVER2_M32: #define __SSE__ 13254// CHECK_BTVER2_M32: #define __SSSE3__ 13255// CHECK_BTVER2_M32: #define __XSAVEOPT__ 13256// CHECK_BTVER2_M32: #define __XSAVE__ 13257// CHECK_BTVER2_M32: #define __btver2 13258// CHECK_BTVER2_M32: #define __btver2__ 13259// CHECK_BTVER2_M32: #define __i386 13260// CHECK_BTVER2_M32: #define __i386__ 13261// CHECK_BTVER2_M32: #define __tune_btver2__ 13262 3263// RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \3264// RUN: -target i386-unknown-linux \3265// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER2_M643266// CHECK_BTVER2_M64: #define __AES__ 13267// CHECK_BTVER2_M64: #define __AVX__ 13268// CHECK_BTVER2_M64: #define __BMI__ 13269// CHECK_BTVER2_M64: #define __F16C__ 13270// CHECK_BTVER2_M64: #define __LZCNT__ 13271// CHECK_BTVER2_M64: #define __MMX__ 13272// CHECK_BTVER2_M64: #define __MOVBE__ 13273// CHECK_BTVER2_M64: #define __PCLMUL__ 13274// CHECK_BTVER2_M64: #define __POPCNT__ 13275// CHECK_BTVER2_M64: #define __PRFCHW__ 13276// CHECK_BTVER2_M64: #define __SSE2_MATH__ 13277// CHECK_BTVER2_M64: #define __SSE2__ 13278// CHECK_BTVER2_M64: #define __SSE3__ 13279// CHECK_BTVER2_M64: #define __SSE4A__ 13280// CHECK_BTVER2_M64: #define __SSE_MATH__ 13281// CHECK_BTVER2_M64: #define __SSE__ 13282// CHECK_BTVER2_M64: #define __SSSE3__ 13283// CHECK_BTVER2_M64: #define __XSAVEOPT__ 13284// CHECK_BTVER2_M64: #define __XSAVE__ 13285// CHECK_BTVER2_M64: #define __amd64 13286// CHECK_BTVER2_M64: #define __amd64__ 13287// CHECK_BTVER2_M64: #define __btver2 13288// CHECK_BTVER2_M64: #define __btver2__ 13289// CHECK_BTVER2_M64: #define __tune_btver2__ 13290// CHECK_BTVER2_M64: #define __x86_64 13291// CHECK_BTVER2_M64: #define __x86_64__ 13292 3293// RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \3294// RUN: -target i386-unknown-linux \3295// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M323296// CHECK_BDVER1_M32: #define __AES__ 13297// CHECK_BDVER1_M32: #define __AVX__ 13298// CHECK_BDVER1_M32: #define __FMA4__ 13299// CHECK_BDVER1_M32: #define __LWP__ 13300// CHECK_BDVER1_M32: #define __LZCNT__ 13301// CHECK_BDVER1_M32: #define __MMX__ 13302// CHECK_BDVER1_M32: #define __PCLMUL__ 13303// CHECK_BDVER1_M32: #define __POPCNT__ 13304// CHECK_BDVER1_M32: #define __PRFCHW__ 13305// CHECK_BDVER1_M32: #define __SSE2_MATH__ 13306// CHECK_BDVER1_M32: #define __SSE2__ 13307// CHECK_BDVER1_M32: #define __SSE3__ 13308// CHECK_BDVER1_M32: #define __SSE4A__ 13309// CHECK_BDVER1_M32: #define __SSE4_1__ 13310// CHECK_BDVER1_M32: #define __SSE4_2__ 13311// CHECK_BDVER1_M32: #define __SSE_MATH__ 13312// CHECK_BDVER1_M32: #define __SSE__ 13313// CHECK_BDVER1_M32: #define __SSSE3__ 13314// CHECK_BDVER1_M32: #define __XOP__ 13315// CHECK_BDVER1_M32: #define __XSAVE__ 13316// CHECK_BDVER1_M32: #define __bdver1 13317// CHECK_BDVER1_M32: #define __bdver1__ 13318// CHECK_BDVER1_M32: #define __i386 13319// CHECK_BDVER1_M32: #define __i386__ 13320// CHECK_BDVER1_M32: #define __tune_bdver1__ 13321 3322// RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \3323// RUN: -target i386-unknown-linux \3324// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M643325// CHECK_BDVER1_M64: #define __AES__ 13326// CHECK_BDVER1_M64: #define __AVX__ 13327// CHECK_BDVER1_M64: #define __FMA4__ 13328// CHECK_BDVER1_M64: #define __LWP__ 13329// CHECK_BDVER1_M64: #define __LZCNT__ 13330// CHECK_BDVER1_M64: #define __MMX__ 13331// CHECK_BDVER1_M64: #define __PCLMUL__ 13332// CHECK_BDVER1_M64: #define __POPCNT__ 13333// CHECK_BDVER1_M64: #define __PRFCHW__ 13334// CHECK_BDVER1_M64: #define __SSE2_MATH__ 13335// CHECK_BDVER1_M64: #define __SSE2__ 13336// CHECK_BDVER1_M64: #define __SSE3__ 13337// CHECK_BDVER1_M64: #define __SSE4A__ 13338// CHECK_BDVER1_M64: #define __SSE4_1__ 13339// CHECK_BDVER1_M64: #define __SSE4_2__ 13340// CHECK_BDVER1_M64: #define __SSE_MATH__ 13341// CHECK_BDVER1_M64: #define __SSE__ 13342// CHECK_BDVER1_M64: #define __SSSE3__ 13343// CHECK_BDVER1_M64: #define __XOP__ 13344// CHECK_BDVER1_M64: #define __XSAVE__ 13345// CHECK_BDVER1_M64: #define __amd64 13346// CHECK_BDVER1_M64: #define __amd64__ 13347// CHECK_BDVER1_M64: #define __bdver1 13348// CHECK_BDVER1_M64: #define __bdver1__ 13349// CHECK_BDVER1_M64: #define __tune_bdver1__ 13350// CHECK_BDVER1_M64: #define __x86_64 13351// CHECK_BDVER1_M64: #define __x86_64__ 13352 3353// RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \3354// RUN: -target i386-unknown-linux \3355// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER2_M323356// CHECK_BDVER2_M32: #define __AES__ 13357// CHECK_BDVER2_M32: #define __AVX__ 13358// CHECK_BDVER2_M32: #define __BMI__ 13359// CHECK_BDVER2_M32: #define __F16C__ 13360// CHECK_BDVER2_M32: #define __FMA4__ 13361// CHECK_BDVER2_M32: #define __FMA__ 13362// CHECK_BDVER2_M32: #define __LWP__ 13363// CHECK_BDVER2_M32: #define __LZCNT__ 13364// CHECK_BDVER2_M32: #define __MMX__ 13365// CHECK_BDVER2_M32: #define __PCLMUL__ 13366// CHECK_BDVER2_M32: #define __POPCNT__ 13367// CHECK_BDVER2_M32: #define __PRFCHW__ 13368// CHECK_BDVER2_M32: #define __SSE2_MATH__ 13369// CHECK_BDVER2_M32: #define __SSE2__ 13370// CHECK_BDVER2_M32: #define __SSE3__ 13371// CHECK_BDVER2_M32: #define __SSE4A__ 13372// CHECK_BDVER2_M32: #define __SSE4_1__ 13373// CHECK_BDVER2_M32: #define __SSE4_2__ 13374// CHECK_BDVER2_M32: #define __SSE_MATH__ 13375// CHECK_BDVER2_M32: #define __SSE__ 13376// CHECK_BDVER2_M32: #define __SSSE3__ 13377// CHECK_BDVER2_M32: #define __TBM__ 13378// CHECK_BDVER2_M32: #define __XOP__ 13379// CHECK_BDVER2_M32: #define __XSAVE__ 13380// CHECK_BDVER2_M32: #define __bdver2 13381// CHECK_BDVER2_M32: #define __bdver2__ 13382// CHECK_BDVER2_M32: #define __i386 13383// CHECK_BDVER2_M32: #define __i386__ 13384// CHECK_BDVER2_M32: #define __tune_bdver2__ 13385 3386// RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \3387// RUN: -target i386-unknown-linux \3388// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER2_M643389// CHECK_BDVER2_M64: #define __AES__ 13390// CHECK_BDVER2_M64: #define __AVX__ 13391// CHECK_BDVER2_M64: #define __BMI__ 13392// CHECK_BDVER2_M64: #define __F16C__ 13393// CHECK_BDVER2_M64: #define __FMA4__ 13394// CHECK_BDVER2_M64: #define __FMA__ 13395// CHECK_BDVER2_M64: #define __LWP__ 13396// CHECK_BDVER2_M64: #define __LZCNT__ 13397// CHECK_BDVER2_M64: #define __MMX__ 13398// CHECK_BDVER2_M64: #define __PCLMUL__ 13399// CHECK_BDVER2_M64: #define __POPCNT__ 13400// CHECK_BDVER2_M64: #define __PRFCHW__ 13401// CHECK_BDVER2_M64: #define __SSE2_MATH__ 13402// CHECK_BDVER2_M64: #define __SSE2__ 13403// CHECK_BDVER2_M64: #define __SSE3__ 13404// CHECK_BDVER2_M64: #define __SSE4A__ 13405// CHECK_BDVER2_M64: #define __SSE4_1__ 13406// CHECK_BDVER2_M64: #define __SSE4_2__ 13407// CHECK_BDVER2_M64: #define __SSE_MATH__ 13408// CHECK_BDVER2_M64: #define __SSE__ 13409// CHECK_BDVER2_M64: #define __SSSE3__ 13410// CHECK_BDVER2_M64: #define __TBM__ 13411// CHECK_BDVER2_M64: #define __XOP__ 13412// CHECK_BDVER2_M64: #define __XSAVE__ 13413// CHECK_BDVER2_M64: #define __amd64 13414// CHECK_BDVER2_M64: #define __amd64__ 13415// CHECK_BDVER2_M64: #define __bdver2 13416// CHECK_BDVER2_M64: #define __bdver2__ 13417// CHECK_BDVER2_M64: #define __tune_bdver2__ 13418// CHECK_BDVER2_M64: #define __x86_64 13419// CHECK_BDVER2_M64: #define __x86_64__ 13420 3421// RUN: %clang -march=bdver3 -m32 -E -dM %s -o - 2>&1 \3422// RUN: -target i386-unknown-linux \3423// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER3_M323424// CHECK_BDVER3_M32: #define __AES__ 13425// CHECK_BDVER3_M32: #define __AVX__ 13426// CHECK_BDVER3_M32: #define __BMI__ 13427// CHECK_BDVER3_M32: #define __F16C__ 13428// CHECK_BDVER3_M32: #define __FMA4__ 13429// CHECK_BDVER3_M32: #define __FMA__ 13430// CHECK_BDVER3_M32: #define __FSGSBASE__ 13431// CHECK_BDVER3_M32: #define __LWP__ 13432// CHECK_BDVER3_M32: #define __LZCNT__ 13433// CHECK_BDVER3_M32: #define __MMX__ 13434// CHECK_BDVER3_M32: #define __PCLMUL__ 13435// CHECK_BDVER3_M32: #define __POPCNT__ 13436// CHECK_BDVER3_M32: #define __PRFCHW__ 13437// CHECK_BDVER3_M32: #define __SSE2_MATH__ 13438// CHECK_BDVER3_M32: #define __SSE2__ 13439// CHECK_BDVER3_M32: #define __SSE3__ 13440// CHECK_BDVER3_M32: #define __SSE4A__ 13441// CHECK_BDVER3_M32: #define __SSE4_1__ 13442// CHECK_BDVER3_M32: #define __SSE4_2__ 13443// CHECK_BDVER3_M32: #define __SSE_MATH__ 13444// CHECK_BDVER3_M32: #define __SSE__ 13445// CHECK_BDVER3_M32: #define __SSSE3__ 13446// CHECK_BDVER3_M32: #define __TBM__ 13447// CHECK_BDVER3_M32: #define __XOP__ 13448// CHECK_BDVER3_M32: #define __XSAVEOPT__ 13449// CHECK_BDVER3_M32: #define __XSAVE__ 13450// CHECK_BDVER3_M32: #define __bdver3 13451// CHECK_BDVER3_M32: #define __bdver3__ 13452// CHECK_BDVER3_M32: #define __i386 13453// CHECK_BDVER3_M32: #define __i386__ 13454// CHECK_BDVER3_M32: #define __tune_bdver3__ 13455 3456// RUN: %clang -march=bdver3 -m64 -E -dM %s -o - 2>&1 \3457// RUN: -target i386-unknown-linux \3458// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER3_M643459// CHECK_BDVER3_M64: #define __AES__ 13460// CHECK_BDVER3_M64: #define __AVX__ 13461// CHECK_BDVER3_M64: #define __BMI__ 13462// CHECK_BDVER3_M64: #define __F16C__ 13463// CHECK_BDVER3_M64: #define __FMA4__ 13464// CHECK_BDVER3_M64: #define __FMA__ 13465// CHECK_BDVER3_M64: #define __FSGSBASE__ 13466// CHECK_BDVER3_M64: #define __LWP__ 13467// CHECK_BDVER3_M64: #define __LZCNT__ 13468// CHECK_BDVER3_M64: #define __MMX__ 13469// CHECK_BDVER3_M64: #define __PCLMUL__ 13470// CHECK_BDVER3_M64: #define __POPCNT__ 13471// CHECK_BDVER3_M64: #define __PRFCHW__ 13472// CHECK_BDVER3_M64: #define __SSE2_MATH__ 13473// CHECK_BDVER3_M64: #define __SSE2__ 13474// CHECK_BDVER3_M64: #define __SSE3__ 13475// CHECK_BDVER3_M64: #define __SSE4A__ 13476// CHECK_BDVER3_M64: #define __SSE4_1__ 13477// CHECK_BDVER3_M64: #define __SSE4_2__ 13478// CHECK_BDVER3_M64: #define __SSE_MATH__ 13479// CHECK_BDVER3_M64: #define __SSE__ 13480// CHECK_BDVER3_M64: #define __SSSE3__ 13481// CHECK_BDVER3_M64: #define __TBM__ 13482// CHECK_BDVER3_M64: #define __XOP__ 13483// CHECK_BDVER3_M64: #define __XSAVEOPT__ 13484// CHECK_BDVER3_M64: #define __XSAVE__ 13485// CHECK_BDVER3_M64: #define __amd64 13486// CHECK_BDVER3_M64: #define __amd64__ 13487// CHECK_BDVER3_M64: #define __bdver3 13488// CHECK_BDVER3_M64: #define __bdver3__ 13489// CHECK_BDVER3_M64: #define __tune_bdver3__ 13490// CHECK_BDVER3_M64: #define __x86_64 13491// CHECK_BDVER3_M64: #define __x86_64__ 13492 3493// RUN: %clang -march=bdver4 -m32 -E -dM %s -o - 2>&1 \3494// RUN: -target i386-unknown-linux \3495// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER4_M323496// CHECK_BDVER4_M32: #define __AES__ 13497// CHECK_BDVER4_M32: #define __AVX2__ 13498// CHECK_BDVER4_M32: #define __AVX__ 13499// CHECK_BDVER4_M32: #define __BMI2__ 13500// CHECK_BDVER4_M32: #define __BMI__ 13501// CHECK_BDVER4_M32: #define __F16C__ 13502// CHECK_BDVER4_M32: #define __FMA4__ 13503// CHECK_BDVER4_M32: #define __FMA__ 13504// CHECK_BDVER4_M32: #define __FSGSBASE__ 13505// CHECK_BDVER4_M32: #define __LWP__ 13506// CHECK_BDVER4_M32: #define __LZCNT__ 13507// CHECK_BDVER4_M32: #define __MMX__ 13508// CHECK_BDVER4_M32: #define __MOVBE__ 13509// CHECK_BDVER4_M32: #define __PCLMUL__ 13510// CHECK_BDVER4_M32: #define __POPCNT__ 13511// CHECK_BDVER4_M32: #define __PRFCHW__ 13512// CHECK_BDVER4_M32: #define __RDRND__ 13513// CHECK_BDVER4_M32: #define __SSE2_MATH__ 13514// CHECK_BDVER4_M32: #define __SSE2__ 13515// CHECK_BDVER4_M32: #define __SSE3__ 13516// CHECK_BDVER4_M32: #define __SSE4A__ 13517// CHECK_BDVER4_M32: #define __SSE4_1__ 13518// CHECK_BDVER4_M32: #define __SSE4_2__ 13519// CHECK_BDVER4_M32: #define __SSE_MATH__ 13520// CHECK_BDVER4_M32: #define __SSE__ 13521// CHECK_BDVER4_M32: #define __SSSE3__ 13522// CHECK_BDVER4_M32: #define __TBM__ 13523// CHECK_BDVER4_M32: #define __XOP__ 13524// CHECK_BDVER4_M32: #define __XSAVE__ 13525// CHECK_BDVER4_M32: #define __bdver4 13526// CHECK_BDVER4_M32: #define __bdver4__ 13527// CHECK_BDVER4_M32: #define __i386 13528// CHECK_BDVER4_M32: #define __i386__ 13529// CHECK_BDVER4_M32: #define __tune_bdver4__ 13530 3531// RUN: %clang -march=bdver4 -m64 -E -dM %s -o - 2>&1 \3532// RUN: -target i386-unknown-linux \3533// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER4_M643534// CHECK_BDVER4_M64: #define __AES__ 13535// CHECK_BDVER4_M64: #define __AVX2__ 13536// CHECK_BDVER4_M64: #define __AVX__ 13537// CHECK_BDVER4_M64: #define __BMI2__ 13538// CHECK_BDVER4_M64: #define __BMI__ 13539// CHECK_BDVER4_M64: #define __F16C__ 13540// CHECK_BDVER4_M64: #define __FMA4__ 13541// CHECK_BDVER4_M64: #define __FMA__ 13542// CHECK_BDVER4_M64: #define __FSGSBASE__ 13543// CHECK_BDVER4_M64: #define __LWP__ 13544// CHECK_BDVER4_M64: #define __LZCNT__ 13545// CHECK_BDVER4_M64: #define __MMX__ 13546// CHECK_BDVER4_M64: #define __MOVBE__ 13547// CHECK_BDVER4_M64: #define __PCLMUL__ 13548// CHECK_BDVER4_M64: #define __POPCNT__ 13549// CHECK_BDVER4_M64: #define __PRFCHW__ 13550// CHECK_BDVER4_M64: #define __RDRND__ 13551// CHECK_BDVER4_M64: #define __SSE2_MATH__ 13552// CHECK_BDVER4_M64: #define __SSE2__ 13553// CHECK_BDVER4_M64: #define __SSE3__ 13554// CHECK_BDVER4_M64: #define __SSE4A__ 13555// CHECK_BDVER4_M64: #define __SSE4_1__ 13556// CHECK_BDVER4_M64: #define __SSE4_2__ 13557// CHECK_BDVER4_M64: #define __SSE_MATH__ 13558// CHECK_BDVER4_M64: #define __SSE__ 13559// CHECK_BDVER4_M64: #define __SSSE3__ 13560// CHECK_BDVER4_M64: #define __TBM__ 13561// CHECK_BDVER4_M64: #define __XOP__ 13562// CHECK_BDVER4_M64: #define __XSAVE__ 13563// CHECK_BDVER4_M64: #define __amd64 13564// CHECK_BDVER4_M64: #define __amd64__ 13565// CHECK_BDVER4_M64: #define __bdver4 13566// CHECK_BDVER4_M64: #define __bdver4__ 13567// CHECK_BDVER4_M64: #define __tune_bdver4__ 13568// CHECK_BDVER4_M64: #define __x86_64 13569// CHECK_BDVER4_M64: #define __x86_64__ 13570 3571// RUN: %clang -march=znver1 -m32 -E -dM %s -o - 2>&1 \3572// RUN: -target i386-unknown-linux \3573// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER1_M323574// CHECK_ZNVER1_M32: #define __ADX__ 13575// CHECK_ZNVER1_M32: #define __AES__ 13576// CHECK_ZNVER1_M32: #define __AVX2__ 13577// CHECK_ZNVER1_M32: #define __AVX__ 13578// CHECK_ZNVER1_M32: #define __BMI2__ 13579// CHECK_ZNVER1_M32: #define __BMI__ 13580// CHECK_ZNVER1_M32: #define __CLFLUSHOPT__ 13581// CHECK_ZNVER1_M32: #define __CLZERO__ 13582// CHECK_ZNVER1_M32: #define __F16C__ 13583// CHECK_ZNVER1_M32-NOT: #define __FMA4__ 13584// CHECK_ZNVER1_M32: #define __FMA__ 13585// CHECK_ZNVER1_M32: #define __FSGSBASE__ 13586// CHECK_ZNVER1_M32: #define __LZCNT__ 13587// CHECK_ZNVER1_M32: #define __MMX__ 13588// CHECK_ZNVER1_M32: #define __MOVBE__ 13589// CHECK_ZNVER1_M32: #define __PCLMUL__ 13590// CHECK_ZNVER1_M32: #define __POPCNT__ 13591// CHECK_ZNVER1_M32: #define __PRFCHW__ 13592// CHECK_ZNVER1_M32: #define __RDRND__ 13593// CHECK_ZNVER1_M32: #define __RDSEED__ 13594// CHECK_ZNVER1_M32: #define __SHA__ 13595// CHECK_ZNVER1_M32: #define __SSE2_MATH__ 13596// CHECK_ZNVER1_M32: #define __SSE2__ 13597// CHECK_ZNVER1_M32: #define __SSE3__ 13598// CHECK_ZNVER1_M32: #define __SSE4A__ 13599// CHECK_ZNVER1_M32: #define __SSE4_1__ 13600// CHECK_ZNVER1_M32: #define __SSE4_2__ 13601// CHECK_ZNVER1_M32: #define __SSE_MATH__ 13602// CHECK_ZNVER1_M32: #define __SSE__ 13603// CHECK_ZNVER1_M32: #define __SSSE3__ 13604// CHECK_ZNVER1_M32-NOT: #define __TBM__ 13605// CHECK_ZNVER1_M32-NOT: #define __XOP__ 13606// CHECK_ZNVER1_M32: #define __XSAVEC__ 13607// CHECK_ZNVER1_M32: #define __XSAVEOPT__ 13608// CHECK_ZNVER1_M32: #define __XSAVES__ 13609// CHECK_ZNVER1_M32: #define __XSAVE__ 13610// CHECK_ZNVER1_M32: #define __i386 13611// CHECK_ZNVER1_M32: #define __i386__ 13612// CHECK_ZNVER1_M32: #define __tune_znver1__ 13613// CHECK_ZNVER1_M32: #define __znver1 13614// CHECK_ZNVER1_M32: #define __znver1__ 13615 3616// RUN: %clang -march=znver1 -m64 -E -dM %s -o - 2>&1 \3617// RUN: -target i386-unknown-linux \3618// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER1_M643619// CHECK_ZNVER1_M64: #define __ADX__ 13620// CHECK_ZNVER1_M64: #define __AES__ 13621// CHECK_ZNVER1_M64: #define __AVX2__ 13622// CHECK_ZNVER1_M64: #define __AVX__ 13623// CHECK_ZNVER1_M64: #define __BMI2__ 13624// CHECK_ZNVER1_M64: #define __BMI__ 13625// CHECK_ZNVER1_M64: #define __CLFLUSHOPT__ 13626// CHECK_ZNVER1_M64: #define __CLZERO__ 13627// CHECK_ZNVER1_M64: #define __F16C__ 13628// CHECK_ZNVER1_M64-NOT: #define __FMA4__ 13629// CHECK_ZNVER1_M64: #define __FMA__ 13630// CHECK_ZNVER1_M64: #define __FSGSBASE__ 13631// CHECK_ZNVER1_M64: #define __LAHF_SAHF__ 13632// CHECK_ZNVER1_M64: #define __LZCNT__ 13633// CHECK_ZNVER1_M64: #define __MMX__ 13634// CHECK_ZNVER1_M64: #define __MOVBE__ 13635// CHECK_ZNVER1_M64: #define __PCLMUL__ 13636// CHECK_ZNVER1_M64: #define __POPCNT__ 13637// CHECK_ZNVER1_M64: #define __PRFCHW__ 13638// CHECK_ZNVER1_M64: #define __RDRND__ 13639// CHECK_ZNVER1_M64: #define __RDSEED__ 13640// CHECK_ZNVER1_M64: #define __SHA__ 13641// CHECK_ZNVER1_M64: #define __SSE2_MATH__ 13642// CHECK_ZNVER1_M64: #define __SSE2__ 13643// CHECK_ZNVER1_M64: #define __SSE3__ 13644// CHECK_ZNVER1_M64: #define __SSE4A__ 13645// CHECK_ZNVER1_M64: #define __SSE4_1__ 13646// CHECK_ZNVER1_M64: #define __SSE4_2__ 13647// CHECK_ZNVER1_M64: #define __SSE_MATH__ 13648// CHECK_ZNVER1_M64: #define __SSE__ 13649// CHECK_ZNVER1_M64: #define __SSSE3__ 13650// CHECK_ZNVER1_M64-NOT: #define __TBM__ 13651// CHECK_ZNVER1_M64-NOT: #define __XOP__ 13652// CHECK_ZNVER1_M64: #define __XSAVEC__ 13653// CHECK_ZNVER1_M64: #define __XSAVEOPT__ 13654// CHECK_ZNVER1_M64: #define __XSAVES__ 13655// CHECK_ZNVER1_M64: #define __XSAVE__ 13656// CHECK_ZNVER1_M64: #define __amd64 13657// CHECK_ZNVER1_M64: #define __amd64__ 13658// CHECK_ZNVER1_M64: #define __tune_znver1__ 13659// CHECK_ZNVER1_M64: #define __x86_64 13660// CHECK_ZNVER1_M64: #define __x86_64__ 13661// CHECK_ZNVER1_M64: #define __znver1 13662// CHECK_ZNVER1_M64: #define __znver1__ 13663 3664// RUN: %clang -march=znver2 -m32 -E -dM %s -o - 2>&1 \3665// RUN: -target i386-unknown-linux \3666// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER2_M323667// CHECK_ZNVER2_M32: #define __ADX__ 13668// CHECK_ZNVER2_M32: #define __AES__ 13669// CHECK_ZNVER2_M32: #define __AVX2__ 13670// CHECK_ZNVER2_M32: #define __AVX__ 13671// CHECK_ZNVER2_M32: #define __BMI2__ 13672// CHECK_ZNVER2_M32: #define __BMI__ 13673// CHECK_ZNVER2_M32: #define __CLFLUSHOPT__ 13674// CHECK_ZNVER2_M32: #define __CLWB__ 13675// CHECK_ZNVER2_M32: #define __CLZERO__ 13676// CHECK_ZNVER2_M32: #define __F16C__ 13677// CHECK_ZNVER2_M32-NOT: #define __FMA4__ 13678// CHECK_ZNVER2_M32: #define __FMA__ 13679// CHECK_ZNVER2_M32: #define __FSGSBASE__ 13680// CHECK_ZNVER2_M32: #define __LAHF_SAHF__ 13681// CHECK_ZNVER2_M32: #define __LZCNT__ 13682// CHECK_ZNVER2_M32: #define __MMX__ 13683// CHECK_ZNVER2_M32: #define __PCLMUL__ 13684// CHECK_ZNVER2_M32: #define __POPCNT__ 13685// CHECK_ZNVER2_M32: #define __PRFCHW__ 13686// CHECK_ZNVER2_M32: #define __RDPID__ 13687// CHECK_ZNVER2_M32: #define __RDPRU__ 13688// CHECK_ZNVER2_M32: #define __RDRND__ 13689// CHECK_ZNVER2_M32: #define __RDSEED__ 13690// CHECK_ZNVER2_M32: #define __SHA__ 13691// CHECK_ZNVER2_M32: #define __SSE2_MATH__ 13692// CHECK_ZNVER2_M32: #define __SSE2__ 13693// CHECK_ZNVER2_M32: #define __SSE3__ 13694// CHECK_ZNVER2_M32: #define __SSE4A__ 13695// CHECK_ZNVER2_M32: #define __SSE4_1__ 13696// CHECK_ZNVER2_M32: #define __SSE4_2__ 13697// CHECK_ZNVER2_M32: #define __SSE_MATH__ 13698// CHECK_ZNVER2_M32: #define __SSE__ 13699// CHECK_ZNVER2_M32: #define __SSSE3__ 13700// CHECK_ZNVER2_M32-NOT: #define __TBM__ 13701// CHECK_ZNVER2_M32: #define __WBNOINVD__ 13702// CHECK_ZNVER2_M32-NOT: #define __XOP__ 13703// CHECK_ZNVER2_M32: #define __XSAVEC__ 13704// CHECK_ZNVER2_M32: #define __XSAVEOPT__ 13705// CHECK_ZNVER2_M32: #define __XSAVES__ 13706// CHECK_ZNVER2_M32: #define __XSAVE__ 13707// CHECK_ZNVER2_M32: #define __i386 13708// CHECK_ZNVER2_M32: #define __i386__ 13709// CHECK_ZNVER2_M32: #define __tune_znver2__ 13710// CHECK_ZNVER2_M32: #define __znver2 13711// CHECK_ZNVER2_M32: #define __znver2__ 13712 3713// RUN: %clang -march=znver2 -m64 -E -dM %s -o - 2>&1 \3714// RUN: -target i386-unknown-linux \3715// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER2_M643716// CHECK_ZNVER2_M64: #define __ADX__ 13717// CHECK_ZNVER2_M64: #define __AES__ 13718// CHECK_ZNVER2_M64: #define __AVX2__ 13719// CHECK_ZNVER2_M64: #define __AVX__ 13720// CHECK_ZNVER2_M64: #define __BMI2__ 13721// CHECK_ZNVER2_M64: #define __BMI__ 13722// CHECK_ZNVER2_M64: #define __CLFLUSHOPT__ 13723// CHECK_ZNVER2_M64: #define __CLWB__ 13724// CHECK_ZNVER2_M64: #define __CLZERO__ 13725// CHECK_ZNVER2_M64: #define __F16C__ 13726// CHECK_ZNVER2_M64-NOT: #define __FMA4__ 13727// CHECK_ZNVER2_M64: #define __FMA__ 13728// CHECK_ZNVER2_M64: #define __FSGSBASE__ 13729// CHECK_ZNVER2_M64: #define __LAHF_SAHF__ 13730// CHECK_ZNVER2_M64: #define __LZCNT__ 13731// CHECK_ZNVER2_M64: #define __MMX__ 13732// CHECK_ZNVER2_M64: #define __PCLMUL__ 13733// CHECK_ZNVER2_M64: #define __POPCNT__ 13734// CHECK_ZNVER2_M64: #define __PRFCHW__ 13735// CHECK_ZNVER2_M64: #define __RDPID__ 13736// CHECK_ZNVER2_M64: #define __RDPRU__ 13737// CHECK_ZNVER2_M64: #define __RDRND__ 13738// CHECK_ZNVER2_M64: #define __RDSEED__ 13739// CHECK_ZNVER2_M64: #define __SHA__ 13740// CHECK_ZNVER2_M64: #define __SSE2_MATH__ 13741// CHECK_ZNVER2_M64: #define __SSE2__ 13742// CHECK_ZNVER2_M64: #define __SSE3__ 13743// CHECK_ZNVER2_M64: #define __SSE4A__ 13744// CHECK_ZNVER2_M64: #define __SSE4_1__ 13745// CHECK_ZNVER2_M64: #define __SSE4_2__ 13746// CHECK_ZNVER2_M64: #define __SSE_MATH__ 13747// CHECK_ZNVER2_M64: #define __SSE__ 13748// CHECK_ZNVER2_M64: #define __SSSE3__ 13749// CHECK_ZNVER2_M64-NOT: #define __TBM__ 13750// CHECK_ZNVER2_M64: #define __WBNOINVD__ 13751// CHECK_ZNVER2_M64-NOT: #define __XOP__ 13752// CHECK_ZNVER2_M64: #define __XSAVEC__ 13753// CHECK_ZNVER2_M64: #define __XSAVEOPT__ 13754// CHECK_ZNVER2_M64: #define __XSAVES__ 13755// CHECK_ZNVER2_M64: #define __XSAVE__ 13756// CHECK_ZNVER2_M64: #define __amd64 13757// CHECK_ZNVER2_M64: #define __amd64__ 13758// CHECK_ZNVER2_M64: #define __tune_znver2__ 13759// CHECK_ZNVER2_M64: #define __x86_64 13760// CHECK_ZNVER2_M64: #define __x86_64__ 13761// CHECK_ZNVER2_M64: #define __znver2 13762// CHECK_ZNVER2_M64: #define __znver2__ 13763 3764// RUN: %clang -march=znver3 -m32 -E -dM %s -o - 2>&1 \3765// RUN: -target i386-unknown-linux \3766// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER3_M323767// CHECK_ZNVER3_M32: #define __ADX__ 13768// CHECK_ZNVER3_M32: #define __AES__ 13769// CHECK_ZNVER3_M32: #define __AVX2__ 13770// CHECK_ZNVER3_M32: #define __AVX__ 13771// CHECK_ZNVER3_M32: #define __BMI2__ 13772// CHECK_ZNVER3_M32: #define __BMI__ 13773// CHECK_ZNVER3_M32: #define __CLFLUSHOPT__ 13774// CHECK_ZNVER3_M32: #define __CLWB__ 13775// CHECK_ZNVER3_M32: #define __CLZERO__ 13776// CHECK_ZNVER3_M32: #define __F16C__ 13777// CHECK_ZNVER3_M32-NOT: #define __FMA4__ 13778// CHECK_ZNVER3_M32: #define __FMA__ 13779// CHECK_ZNVER3_M32: #define __FSGSBASE__ 13780// CHECK_ZNVER3_M32: #define __LZCNT__ 13781// CHECK_ZNVER3_M32: #define __MMX__ 13782// CHECK_ZNVER3_M32: #define __PCLMUL__ 13783// CHECK_ZNVER3_M32: #define __PKU__ 13784// CHECK_ZNVER3_M32: #define __POPCNT__ 13785// CHECK_ZNVER3_M32: #define __PRFCHW__ 13786// CHECK_ZNVER3_M32: #define __RDPID__ 13787// CHECK_ZNVER3_M32: #define __RDPRU__ 13788// CHECK_ZNVER3_M32: #define __RDRND__ 13789// CHECK_ZNVER3_M32: #define __RDSEED__ 13790// CHECK_ZNVER3_M32: #define __SHA__ 13791// CHECK_ZNVER3_M32: #define __SSE2_MATH__ 13792// CHECK_ZNVER3_M32: #define __SSE2__ 13793// CHECK_ZNVER3_M32: #define __SSE3__ 13794// CHECK_ZNVER3_M32: #define __SSE4A__ 13795// CHECK_ZNVER3_M32: #define __SSE4_1__ 13796// CHECK_ZNVER3_M32: #define __SSE4_2__ 13797// CHECK_ZNVER3_M32: #define __SSE_MATH__ 13798// CHECK_ZNVER3_M32: #define __SSE__ 13799// CHECK_ZNVER3_M32: #define __SSSE3__ 13800// CHECK_ZNVER3_M32-NOT: #define __TBM__ 13801// CHECK_ZNVER3_M32: #define __WBNOINVD__ 13802// CHECK_ZNVER3_M32-NOT: #define __XOP__ 13803// CHECK_ZNVER3_M32: #define __XSAVEC__ 13804// CHECK_ZNVER3_M32: #define __XSAVEOPT__ 13805// CHECK_ZNVER3_M32: #define __XSAVES__ 13806// CHECK_ZNVER3_M32: #define __XSAVE__ 13807// CHECK_ZNVER3_M32: #define __i386 13808// CHECK_ZNVER3_M32: #define __i386__ 13809// CHECK_ZNVER3_M32: #define __tune_znver3__ 13810// CHECK_ZNVER3_M32: #define __znver3 13811// CHECK_ZNVER3_M32: #define __znver3__ 13812 3813// RUN: %clang -march=znver3 -m64 -E -dM %s -o - 2>&1 \3814// RUN: -target i386-unknown-linux \3815// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER3_M643816// CHECK_ZNVER3_M64: #define __ADX__ 13817// CHECK_ZNVER3_M64: #define __AES__ 13818// CHECK_ZNVER3_M64: #define __AVX2__ 13819// CHECK_ZNVER3_M64: #define __AVX__ 13820// CHECK_ZNVER3_M64: #define __BMI2__ 13821// CHECK_ZNVER3_M64: #define __BMI__ 13822// CHECK_ZNVER3_M64: #define __CLFLUSHOPT__ 13823// CHECK_ZNVER3_M64: #define __CLWB__ 13824// CHECK_ZNVER3_M64: #define __CLZERO__ 13825// CHECK_ZNVER3_M64: #define __F16C__ 13826// CHECK_ZNVER3_M64-NOT: #define __FMA4__ 13827// CHECK_ZNVER3_M64: #define __FMA__ 13828// CHECK_ZNVER3_M64: #define __FSGSBASE__ 13829// CHECK_ZNVER3_M64: #define __LZCNT__ 13830// CHECK_ZNVER3_M64: #define __MMX__ 13831// CHECK_ZNVER3_M64: #define __PCLMUL__ 13832// CHECK_ZNVER3_M64: #define __PKU__ 13833// CHECK_ZNVER3_M64: #define __POPCNT__ 13834// CHECK_ZNVER3_M64: #define __PRFCHW__ 13835// CHECK_ZNVER3_M64: #define __RDPID__ 13836// CHECK_ZNVER3_M64: #define __RDPRU__ 13837// CHECK_ZNVER3_M64: #define __RDRND__ 13838// CHECK_ZNVER3_M64: #define __RDSEED__ 13839// CHECK_ZNVER3_M64: #define __SHA__ 13840// CHECK_ZNVER3_M64: #define __SSE2_MATH__ 13841// CHECK_ZNVER3_M64: #define __SSE2__ 13842// CHECK_ZNVER3_M64: #define __SSE3__ 13843// CHECK_ZNVER3_M64: #define __SSE4A__ 13844// CHECK_ZNVER3_M64: #define __SSE4_1__ 13845// CHECK_ZNVER3_M64: #define __SSE4_2__ 13846// CHECK_ZNVER3_M64: #define __SSE_MATH__ 13847// CHECK_ZNVER3_M64: #define __SSE__ 13848// CHECK_ZNVER3_M64: #define __SSSE3__ 13849// CHECK_ZNVER3_M64-NOT: #define __TBM__ 13850// CHECK_ZNVER3_M64: #define __VAES__ 13851// CHECK_ZNVER3_M64: #define __VPCLMULQDQ__ 13852// CHECK_ZNVER3_M64: #define __WBNOINVD__ 13853// CHECK_ZNVER3_M64-NOT: #define __XOP__ 13854// CHECK_ZNVER3_M64: #define __XSAVEC__ 13855// CHECK_ZNVER3_M64: #define __XSAVEOPT__ 13856// CHECK_ZNVER3_M64: #define __XSAVES__ 13857// CHECK_ZNVER3_M64: #define __XSAVE__ 13858// CHECK_ZNVER3_M64: #define __amd64 13859// CHECK_ZNVER3_M64: #define __amd64__ 13860// CHECK_ZNVER3_M64: #define __tune_znver3__ 13861// CHECK_ZNVER3_M64: #define __x86_64 13862// CHECK_ZNVER3_M64: #define __x86_64__ 13863// CHECK_ZNVER3_M64: #define __znver3 13864// CHECK_ZNVER3_M64: #define __znver3__ 13865 3866// RUN: %clang -march=znver4 -m32 -E -dM %s -o - 2>&1 \3867// RUN: -target i386-unknown-linux \3868// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER4_M323869// CHECK_ZNVER4_M32: #define __ADX__ 13870// CHECK_ZNVER4_M32: #define __AES__ 13871// CHECK_ZNVER4_M32: #define __AVX2__ 13872// CHECK_ZNVER4_M32: #define __AVX512BF16__ 13873// CHECK_ZNVER4_M32: #define __AVX512BITALG__ 13874// CHECK_ZNVER4_M32: #define __AVX512BW__ 13875// CHECK_ZNVER4_M32: #define __AVX512CD__ 13876// CHECK_ZNVER4_M32: #define __AVX512DQ__ 13877// CHECK_ZNVER4_M32: #define __AVX512F__ 13878// CHECK_ZNVER4_M32: #define __AVX512IFMA__ 13879// CHECK_ZNVER4_M32: #define __AVX512VBMI2__ 13880// CHECK_ZNVER4_M32: #define __AVX512VBMI__ 13881// CHECK_ZNVER4_M32: #define __AVX512VL__ 13882// CHECK_ZNVER4_M32: #define __AVX512VNNI__ 13883// CHECK_ZNVER4_M32: #define __AVX512VPOPCNTDQ__ 13884// CHECK_ZNVER4_M32: #define __AVX__ 13885// CHECK_ZNVER4_M32: #define __BMI2__ 13886// CHECK_ZNVER4_M32: #define __BMI__ 13887// CHECK_ZNVER4_M32: #define __CLFLUSHOPT__ 13888// CHECK_ZNVER4_M32: #define __CLWB__ 13889// CHECK_ZNVER4_M32: #define __CLZERO__ 13890// CHECK_ZNVER4_M32: #define __F16C__ 13891// CHECK_ZNVER4_M32-NOT: #define __FMA4__ 13892// CHECK_ZNVER4_M32: #define __FMA__ 13893// CHECK_ZNVER4_M32: #define __FSGSBASE__ 13894// CHECK_ZNVER4_M32: #define __GFNI__ 13895// CHECK_ZNVER4_M32: #define __LZCNT__ 13896// CHECK_ZNVER4_M32: #define __MMX__ 13897// CHECK_ZNVER4_M32: #define __PCLMUL__ 13898// CHECK_ZNVER4_M32: #define __PKU__ 13899// CHECK_ZNVER4_M32: #define __POPCNT__ 13900// CHECK_ZNVER4_M32: #define __PRFCHW__ 13901// CHECK_ZNVER4_M32: #define __RDPID__ 13902// CHECK_ZNVER4_M32: #define __RDPRU__ 13903// CHECK_ZNVER4_M32: #define __RDRND__ 13904// CHECK_ZNVER4_M32: #define __RDSEED__ 13905// CHECK_ZNVER4_M32: #define __SHA__ 13906// CHECK_ZNVER4_M32: #define __SSE2_MATH__ 13907// CHECK_ZNVER4_M32: #define __SSE2__ 13908// CHECK_ZNVER4_M32: #define __SSE3__ 13909// CHECK_ZNVER4_M32: #define __SSE4A__ 13910// CHECK_ZNVER4_M32: #define __SSE4_1__ 13911// CHECK_ZNVER4_M32: #define __SSE4_2__ 13912// CHECK_ZNVER4_M32: #define __SSE_MATH__ 13913// CHECK_ZNVER4_M32: #define __SSE__ 13914// CHECK_ZNVER4_M32: #define __SSSE3__ 13915// CHECK_ZNVER4_M32-NOT: #define __TBM__ 13916// CHECK_ZNVER4_M32: #define __WBNOINVD__ 13917// CHECK_ZNVER4_M32-NOT: #define __XOP__ 13918// CHECK_ZNVER4_M32: #define __XSAVEC__ 13919// CHECK_ZNVER4_M32: #define __XSAVEOPT__ 13920// CHECK_ZNVER4_M32: #define __XSAVES__ 13921// CHECK_ZNVER4_M32: #define __XSAVE__ 13922// CHECK_ZNVER4_M32: #define __i386 13923// CHECK_ZNVER4_M32: #define __i386__ 13924// CHECK_ZNVER4_M32: #define __tune_znver4__ 13925// CHECK_ZNVER4_M32: #define __znver4 13926// CHECK_ZNVER4_M32: #define __znver4__ 13927 3928// RUN: %clang -march=znver4 -m64 -E -dM %s -o - 2>&1 \3929// RUN: -target i386-unknown-linux \3930// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER4_M643931// CHECK_ZNVER4_M64: #define __ADX__ 13932// CHECK_ZNVER4_M64: #define __AES__ 13933// CHECK_ZNVER4_M64: #define __AVX2__ 13934// CHECK_ZNVER4_M64: #define __AVX512BF16__ 13935// CHECK_ZNVER4_M64: #define __AVX512BITALG__ 13936// CHECK_ZNVER4_M64: #define __AVX512BW__ 13937// CHECK_ZNVER4_M64: #define __AVX512CD__ 13938// CHECK_ZNVER4_M64: #define __AVX512DQ__ 13939// CHECK_ZNVER4_M64: #define __AVX512F__ 13940// CHECK_ZNVER4_M64: #define __AVX512IFMA__ 13941// CHECK_ZNVER4_M64: #define __AVX512VBMI2__ 13942// CHECK_ZNVER4_M64: #define __AVX512VBMI__ 13943// CHECK_ZNVER4_M64: #define __AVX512VL__ 13944// CHECK_ZNVER4_M64: #define __AVX512VNNI__ 13945// CHECK_ZNVER4_M64: #define __AVX512VPOPCNTDQ__ 13946// CHECK_ZNVER4_M64: #define __AVX__ 13947// CHECK_ZNVER4_M64: #define __BMI2__ 13948// CHECK_ZNVER4_M64: #define __BMI__ 13949// CHECK_ZNVER4_M64: #define __CLFLUSHOPT__ 13950// CHECK_ZNVER4_M64: #define __CLWB__ 13951// CHECK_ZNVER4_M64: #define __CLZERO__ 13952// CHECK_ZNVER4_M64: #define __F16C__ 13953// CHECK_ZNVER4_M64-NOT: #define __FMA4__ 13954// CHECK_ZNVER4_M64: #define __FMA__ 13955// CHECK_ZNVER4_M64: #define __FSGSBASE__ 13956// CHECK_ZNVER4_M64: #define __GFNI__ 13957// CHECK_ZNVER4_M64: #define __LZCNT__ 13958// CHECK_ZNVER4_M64: #define __MMX__ 13959// CHECK_ZNVER4_M64: #define __PCLMUL__ 13960// CHECK_ZNVER4_M64: #define __PKU__ 13961// CHECK_ZNVER4_M64: #define __POPCNT__ 13962// CHECK_ZNVER4_M64: #define __PRFCHW__ 13963// CHECK_ZNVER4_M64: #define __RDPID__ 13964// CHECK_ZNVER4_M64: #define __RDPRU__ 13965// CHECK_ZNVER4_M64: #define __RDRND__ 13966// CHECK_ZNVER4_M64: #define __RDSEED__ 13967// CHECK_ZNVER4_M64: #define __SHA__ 13968// CHECK_ZNVER4_M64: #define __SSE2_MATH__ 13969// CHECK_ZNVER4_M64: #define __SSE2__ 13970// CHECK_ZNVER4_M64: #define __SSE3__ 13971// CHECK_ZNVER4_M64: #define __SSE4A__ 13972// CHECK_ZNVER4_M64: #define __SSE4_1__ 13973// CHECK_ZNVER4_M64: #define __SSE4_2__ 13974// CHECK_ZNVER4_M64: #define __SSE_MATH__ 13975// CHECK_ZNVER4_M64: #define __SSE__ 13976// CHECK_ZNVER4_M64: #define __SSSE3__ 13977// CHECK_ZNVER4_M64-NOT: #define __TBM__ 13978// CHECK_ZNVER4_M64: #define __VAES__ 13979// CHECK_ZNVER4_M64: #define __VPCLMULQDQ__ 13980// CHECK_ZNVER4_M64: #define __WBNOINVD__ 13981// CHECK_ZNVER4_M64-NOT: #define __XOP__ 13982// CHECK_ZNVER4_M64: #define __XSAVEC__ 13983// CHECK_ZNVER4_M64: #define __XSAVEOPT__ 13984// CHECK_ZNVER4_M64: #define __XSAVES__ 13985// CHECK_ZNVER4_M64: #define __XSAVE__ 13986// CHECK_ZNVER4_M64: #define __amd64 13987// CHECK_ZNVER4_M64: #define __amd64__ 13988// CHECK_ZNVER4_M64: #define __tune_znver4__ 13989// CHECK_ZNVER4_M64: #define __x86_64 13990// CHECK_ZNVER4_M64: #define __x86_64__ 13991// CHECK_ZNVER4_M64: #define __znver4 13992// CHECK_ZNVER4_M64: #define __znver4__ 13993 3994// RUN: %clang -march=znver5 -m32 -E -dM %s -o - 2>&1 \3995// RUN: -target i386-unknown-linux \3996// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER5_M323997// CHECK_ZNVER5_M32-NOT: #define __3dNOW_A__ 13998// CHECK_ZNVER5_M32-NOT: #define __3dNOW__ 13999// CHECK_ZNVER5_M32: #define __ADX__ 14000// CHECK_ZNVER5_M32: #define __AES__ 14001// CHECK_ZNVER5_M32: #define __AVX2__ 14002// CHECK_ZNVER5_M32: #define __AVX512BF16__ 14003// CHECK_ZNVER5_M32: #define __AVX512BITALG__ 14004// CHECK_ZNVER5_M32: #define __AVX512BW__ 14005// CHECK_ZNVER5_M32: #define __AVX512CD__ 14006// CHECK_ZNVER5_M32: #define __AVX512DQ__ 14007// CHECK_ZNVER5_M32: #define __AVX512F__ 14008// CHECK_ZNVER5_M32: #define __AVX512IFMA__ 14009// CHECK_ZNVER5_M32: #define __AVX512VBMI2__ 14010// CHECK_ZNVER5_M32: #define __AVX512VBMI__ 14011// CHECK_ZNVER5_M32: #define __AVX512VL__ 14012// CHECK_ZNVER5_M32: #define __AVX512VNNI__ 14013// CHECK_ZNVER5_M32: #define __AVX512VP2INTERSECT__ 14014// CHECK_ZNVER5_M32: #define __AVX512VPOPCNTDQ__ 14015// CHECK_ZNVER5_M32: #define __AVXVNNI__ 14016// CHECK_ZNVER5_M32: #define __AVX__ 14017// CHECK_ZNVER5_M32: #define __BMI2__ 14018// CHECK_ZNVER5_M32: #define __BMI__ 14019// CHECK_ZNVER5_M32: #define __CLFLUSHOPT__ 14020// CHECK_ZNVER5_M32: #define __CLWB__ 14021// CHECK_ZNVER5_M32: #define __CLZERO__ 14022// CHECK_ZNVER5_M32: #define __F16C__ 14023// CHECK_ZNVER5_M32-NOT: #define __FMA4__ 14024// CHECK_ZNVER5_M32: #define __FMA__ 14025// CHECK_ZNVER5_M32: #define __FSGSBASE__ 14026// CHECK_ZNVER5_M32: #define __GFNI__ 14027// CHECK_ZNVER5_M32: #define __LZCNT__ 14028// CHECK_ZNVER5_M32: #define __MMX__ 14029// CHECK_ZNVER5_M32: #define __MOVDIR64B__ 14030// CHECK_ZNVER5_M32: #define __MOVDIRI__ 14031// CHECK_ZNVER5_M32: #define __PCLMUL__ 14032// CHECK_ZNVER5_M32: #define __PKU__ 14033// CHECK_ZNVER5_M32: #define __POPCNT__ 14034// CHECK_ZNVER5_M32: #define __PREFETCHI__ 14035// CHECK_ZNVER5_M32: #define __PRFCHW__ 14036// CHECK_ZNVER5_M32: #define __RDPID__ 14037// CHECK_ZNVER5_M32: #define __RDPRU__ 14038// CHECK_ZNVER5_M32: #define __RDRND__ 14039// CHECK_ZNVER5_M32: #define __RDSEED__ 14040// CHECK_ZNVER5_M32: #define __SHA__ 14041// CHECK_ZNVER5_M32: #define __SSE2_MATH__ 14042// CHECK_ZNVER5_M32: #define __SSE2__ 14043// CHECK_ZNVER5_M32: #define __SSE3__ 14044// CHECK_ZNVER5_M32: #define __SSE4A__ 14045// CHECK_ZNVER5_M32: #define __SSE4_1__ 14046// CHECK_ZNVER5_M32: #define __SSE4_2__ 14047// CHECK_ZNVER5_M32: #define __SSE_MATH__ 14048// CHECK_ZNVER5_M32: #define __SSE__ 14049// CHECK_ZNVER5_M32: #define __SSSE3__ 14050// CHECK_ZNVER5_M32-NOT: #define __TBM__ 14051// CHECK_ZNVER5_M32: #define __WBNOINVD__ 14052// CHECK_ZNVER5_M32-NOT: #define __XOP__ 14053// CHECK_ZNVER5_M32: #define __XSAVEC__ 14054// CHECK_ZNVER5_M32: #define __XSAVEOPT__ 14055// CHECK_ZNVER5_M32: #define __XSAVES__ 14056// CHECK_ZNVER5_M32: #define __XSAVE__ 14057// CHECK_ZNVER5_M32: #define __i386 14058// CHECK_ZNVER5_M32: #define __i386__ 14059// CHECK_ZNVER5_M32: #define __tune_znver5__ 14060// CHECK_ZNVER5_M32: #define __znver5 14061// CHECK_ZNVER5_M32: #define __znver5__ 14062 4063// RUN: %clang -march=znver5 -m64 -E -dM %s -o - 2>&1 \4064// RUN: -target i386-unknown-linux \4065// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER5_M644066// CHECK_ZNVER5_M64-NOT: #define __3dNOW_A__ 14067// CHECK_ZNVER5_M64-NOT: #define __3dNOW__ 14068// CHECK_ZNVER5_M64: #define __ADX__ 14069// CHECK_ZNVER5_M64: #define __AES__ 14070// CHECK_ZNVER5_M64: #define __AVX2__ 14071// CHECK_ZNVER5_M64: #define __AVX512BF16__ 14072// CHECK_ZNVER5_M64: #define __AVX512BITALG__ 14073// CHECK_ZNVER5_M64: #define __AVX512BW__ 14074// CHECK_ZNVER5_M64: #define __AVX512CD__ 14075// CHECK_ZNVER5_M64: #define __AVX512DQ__ 14076// CHECK_ZNVER5_M64: #define __AVX512F__ 14077// CHECK_ZNVER5_M64: #define __AVX512IFMA__ 14078// CHECK_ZNVER5_M64: #define __AVX512VBMI2__ 14079// CHECK_ZNVER5_M64: #define __AVX512VBMI__ 14080// CHECK_ZNVER5_M64: #define __AVX512VL__ 14081// CHECK_ZNVER5_M64: #define __AVX512VNNI__ 14082// CHECK_ZNVER5_M64: #define __AVX512VP2INTERSECT__ 14083// CHECK_ZNVER5_M64: #define __AVX512VPOPCNTDQ__ 14084// CHECK_ZNVER5_M64: #define __AVXVNNI__ 14085// CHECK_ZNVER5_M64: #define __AVX__ 14086// CHECK_ZNVER5_M64: #define __BMI2__ 14087// CHECK_ZNVER5_M64: #define __BMI__ 14088// CHECK_ZNVER5_M64: #define __CLFLUSHOPT__ 14089// CHECK_ZNVER5_M64: #define __CLWB__ 14090// CHECK_ZNVER5_M64: #define __CLZERO__ 14091// CHECK_ZNVER5_M64: #define __F16C__ 14092// CHECK_ZNVER5_M64-NOT: #define __FMA4__ 14093// CHECK_ZNVER5_M64: #define __FMA__ 14094// CHECK_ZNVER5_M64: #define __FSGSBASE__ 14095// CHECK_ZNVER5_M64: #define __GFNI__ 14096// CHECK_ZNVER5_M64: #define __LZCNT__ 14097// CHECK_ZNVER5_M64: #define __MMX__ 14098// CHECK_ZNVER5_M64: #define __MOVDIR64B__ 14099// CHECK_ZNVER5_M64: #define __MOVDIRI__ 14100// CHECK_ZNVER5_M64: #define __PCLMUL__ 14101// CHECK_ZNVER5_M64: #define __PKU__ 14102// CHECK_ZNVER5_M64: #define __POPCNT__ 14103// CHECK_ZNVER5_M64: #define __PREFETCHI__ 14104// CHECK_ZNVER5_M64: #define __PRFCHW__ 14105// CHECK_ZNVER5_M64: #define __RDPID__ 14106// CHECK_ZNVER5_M64: #define __RDPRU__ 14107// CHECK_ZNVER5_M64: #define __RDRND__ 14108// CHECK_ZNVER5_M64: #define __RDSEED__ 14109// CHECK_ZNVER5_M64: #define __SHA__ 14110// CHECK_ZNVER5_M64: #define __SSE2_MATH__ 14111// CHECK_ZNVER5_M64: #define __SSE2__ 14112// CHECK_ZNVER5_M64: #define __SSE3__ 14113// CHECK_ZNVER5_M64: #define __SSE4A__ 14114// CHECK_ZNVER5_M64: #define __SSE4_1__ 14115// CHECK_ZNVER5_M64: #define __SSE4_2__ 14116// CHECK_ZNVER5_M64: #define __SSE_MATH__ 14117// CHECK_ZNVER5_M64: #define __SSE__ 14118// CHECK_ZNVER5_M64: #define __SSSE3__ 14119// CHECK_ZNVER5_M64-NOT: #define __TBM__ 14120// CHECK_ZNVER5_M64: #define __VAES__ 14121// CHECK_ZNVER5_M64: #define __VPCLMULQDQ__ 14122// CHECK_ZNVER5_M64: #define __WBNOINVD__ 14123// CHECK_ZNVER5_M64-NOT: #define __XOP__ 14124// CHECK_ZNVER5_M64: #define __XSAVEC__ 14125// CHECK_ZNVER5_M64: #define __XSAVEOPT__ 14126// CHECK_ZNVER5_M64: #define __XSAVES__ 14127// CHECK_ZNVER5_M64: #define __XSAVE__ 14128// CHECK_ZNVER5_M64: #define __amd64 14129// CHECK_ZNVER5_M64: #define __amd64__ 14130// CHECK_ZNVER5_M64: #define __tune_znver5__ 14131// CHECK_ZNVER5_M64: #define __x86_64 14132// CHECK_ZNVER5_M64: #define __x86_64__ 14133// CHECK_ZNVER5_M64: #define __znver5 14134// CHECK_ZNVER5_M64: #define __znver5__ 14135 4136// End X86/GCC/Linux tests ------------------4137 4138// Begin PPC/GCC/Linux tests ----------------4139// Check that VSX also turns on altivec.4140// RUN: %clang -mvsx -E -dM %s -o - 2>&1 \4141// RUN: -target powerpc-unknown-linux \4142// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M324143// CHECK_PPC_VSX_M32: #define __ALTIVEC__ 14144// CHECK_PPC_VSX_M32: #define __VSX__ 14145 4146// RUN: %clang -mvsx -E -dM %s -o - 2>&1 \4147// RUN: -target powerpc64-unknown-linux \4148// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M644149// CHECK_PPC_VSX_M64: #define __VSX__ 14150 4151// RUN: %clang -mpower8-vector -E -dM %s -o - 2>&1 \4152// RUN: -target powerpc64-unknown-linux \4153// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_POWER8_VECTOR_M644154// CHECK_PPC_POWER8_VECTOR_M64: #define __POWER8_VECTOR__ 14155 4156// RUN: %clang -mpower9-vector -E -dM %s -o - 2>&1 \4157// RUN: -target powerpc64-unknown-linux \4158// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_POWER9_VECTOR_M644159// CHECK_PPC_POWER9_VECTOR_M64: #define __POWER9_VECTOR__ 14160 4161// RUN: %clang -mcrypto -E -dM %s -o - 2>&1 \4162// RUN: -target powerpc64-unknown-linux \4163// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_CRYPTO_M644164// CHECK_PPC_CRYPTO_M64: #define __CRYPTO__ 14165 4166// HTM is available on power8 or later which includes all of powerpc64le as an4167// ABI choice. Test that, the cpus, and the option.4168// RUN: %clang -mhtm -E -dM %s -o - 2>&1 \4169// RUN: -target powerpc64-unknown-linux \4170// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM4171// RUN: %clang -E -dM %s -o - 2>&1 \4172// RUN: -target powerpc64le-unknown-linux \4173// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM4174// RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \4175// RUN: -target powerpc64-unknown-linux \4176// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM4177// RUN: %clang -mcpu=pwr9 -E -dM %s -o - 2>&1 \4178// RUN: -target powerpc64-unknown-linux \4179// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM4180// CHECK_PPC_HTM: #define __HTM__ 14181 4182// RUN: %clang -mcpu=ppc64 -E -dM %s -o - 2>&1 \4183// RUN: -target powerpc64-unknown-unknown \4184// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS4185// RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \4186// RUN: -target powerpc64-unknown-unknown \4187// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS4188// RUN: %clang -E -dM %s -o - 2>&1 \4189// RUN: -target powerpc64le-unknown-linux \4190// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS4191// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14192// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14193// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14194// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14195 4196// End PPC/GCC/Linux tests ------------------4197 4198// Begin Sparc/GCC/Linux tests ----------------4199 4200// RUN: %clang -E -dM %s -o - 2>&1 \4201// RUN: -target sparc-unknown-linux \4202// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC4203// CHECK_SPARC: #define __BIG_ENDIAN__ 14204// CHECK_SPARC: #define __sparc 14205// CHECK_SPARC: #define __sparc__ 14206// CHECK_SPARC-NOT: #define __sparcv9 14207// CHECK_SPARC-NOT: #define __sparcv9__ 14208// CHECK_SPARC: #define __sparc_v9__ 14209// CHECK_SPARC-NOT: #define __sparcv8 14210// CHECK_SPARC-NOT: #define __sparcv9 14211// CHECK_SPARC-NOT: #define __sparcv9__ 14212 4213// RUN: %clang -E -dM %s -o - 2>&1 \4214// RUN: -target sparc-unknown-linux \4215// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC_LDBL4216// CHECK_SPARC_LDBL: #define __LONG_DOUBLE_128__ 14217 4218// RUN: %clang -mcpu=v9 -E -dM %s -o - 2>&1 \4219// RUN: -target sparc-unknown-linux \4220// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC-V94221// CHECK_SPARC-V9-NOT: #define __sparcv8 14222// CHECK_SPARC-V9-NOT: #define __sparcv8__ 14223// CHECK_SPARC-V9: #define __sparc_v9__ 14224// CHECK_SPARC-V9-NOT: #define __sparcv9 14225// CHECK_SPARC-V9-NOT: #define __sparcv9__ 14226 4227// RUN: %clang -E -dM %s -o - 2>&1 \4228// RUN: -target sparc-sun-solaris \4229// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC_SOLARIS_GCC_ATOMICS4230// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14231// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14232// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14233// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14234 4235// RUN: %clang -mcpu=v8 -E -dM %s -o - 2>&1 \4236// RUN: -target sparc-sun-solaris \4237// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC_SOLARIS_GCC_ATOMICS-V84238// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14239// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14240// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14241// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14242 4243// RUN: %clang -E -dM %s -o - 2>&1 \4244// RUN: -target sparcel-unknown-linux \4245// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCEL4246// CHECK_SPARCEL: #define __LITTLE_ENDIAN__ 14247// CHECK_SPARCEL: #define __sparc 14248// CHECK_SPARCEL: #define __sparc__ 14249// CHECK_SPARCEL: #define __sparcv8 14250 4251// RUN: %clang -E -dM %s -o - 2>&1 \4252// RUN: -target sparcv9-unknown-linux \4253// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV94254// CHECK_SPARCV9: #define __BIG_ENDIAN__ 14255// CHECK_SPARCV9: #define __sparc 14256// CHECK_SPARCV9: #define __sparc64__ 14257// CHECK_SPARCV9: #define __sparc__ 14258// CHECK_SPARCV9: #define __sparc_v9__ 14259// CHECK_SPARCV9: #define __sparcv9 14260// CHECK_SPARCV9: #define __sparcv9__ 14261 4262// RUN: %clang -E -dM %s -o - 2>&1 \4263// RUN: -target sparcv9-unknown-linux \4264// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV9_GCC_ATOMICS4265// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14266// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14267// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14268// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14269 4270// Begin SystemZ/GCC/Linux tests ----------------4271 4272// RUN: %clang -E -dM %s -o - 2>&1 \4273// RUN: -target s390x-ibm-zos \4274// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZOS4275// CHECK_SYSTEMZ_ZOS: #define __ARCH__ 104276// CHECK_SYSTEMZ_ZOS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14277// CHECK_SYSTEMZ_ZOS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14278// CHECK_SYSTEMZ_ZOS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14279// CHECK_SYSTEMZ_ZOS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14280// CHECK_SYSTEMZ_ZOS: #define __HTM__ 14281// CHECK_SYSTEMZ_ZOS: #define __LONG_DOUBLE_128__ 14282// CHECK_SYSTEMZ_ZOS: #define __s390__ 14283// CHECK_SYSTEMZ_ZOS: #define __s390x__ 14284// CHECK_SYSTEMZ_ZOS: #define __zarch__ 14285 4286// RUN: %clang -march=arch8 -E -dM %s -o - 2>&1 \4287// RUN: -target s390x-unknown-linux \4288// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH84289// RUN: %clang -march=z10 -E -dM %s -o - 2>&1 \4290// RUN: -target s390x-unknown-linux \4291// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH84292// CHECK_SYSTEMZ_ARCH8: #define __ARCH__ 84293// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14294// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14295// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14296// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14297// CHECK_SYSTEMZ_ARCH8-NOT: #define __HTM__ 14298// CHECK_SYSTEMZ_ARCH8: #define __LONG_DOUBLE_128__ 14299// CHECK_SYSTEMZ_ARCH8: #define __s390__ 14300// CHECK_SYSTEMZ_ARCH8: #define __s390x__ 14301// CHECK_SYSTEMZ_ARCH8: #define __zarch__ 14302 4303// RUN: %clang -march=arch9 -E -dM %s -o - 2>&1 \4304// RUN: -target s390x-unknown-linux \4305// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH94306// RUN: %clang -march=z196 -E -dM %s -o - 2>&1 \4307// RUN: -target s390x-unknown-linux \4308// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH94309// CHECK_SYSTEMZ_ARCH9: #define __ARCH__ 94310// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14311// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14312// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14313// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14314// CHECK_SYSTEMZ_ARCH9-NOT: #define __HTM__ 14315// CHECK_SYSTEMZ_ARCH9: #define __LONG_DOUBLE_128__ 14316// CHECK_SYSTEMZ_ARCH9: #define __s390__ 14317// CHECK_SYSTEMZ_ARCH9: #define __s390x__ 14318// CHECK_SYSTEMZ_ARCH9: #define __zarch__ 14319 4320// RUN: %clang -march=arch10 -E -dM %s -o - 2>&1 \4321// RUN: -target s390x-unknown-linux \4322// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH104323// RUN: %clang -march=zEC12 -E -dM %s -o - 2>&1 \4324// RUN: -target s390x-unknown-linux \4325// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH104326// CHECK_SYSTEMZ_ARCH10: #define __ARCH__ 104327// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14328// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14329// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14330// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14331// CHECK_SYSTEMZ_ARCH10: #define __HTM__ 14332// CHECK_SYSTEMZ_ARCH10: #define __LONG_DOUBLE_128__ 14333// CHECK_SYSTEMZ_ARCH10: #define __s390__ 14334// CHECK_SYSTEMZ_ARCH10: #define __s390x__ 14335// CHECK_SYSTEMZ_ARCH10: #define __zarch__ 14336 4337// RUN: %clang -march=arch11 -E -dM %s -o - 2>&1 \4338// RUN: -target s390x-unknown-linux \4339// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH114340// RUN: %clang -march=z13 -E -dM %s -o - 2>&1 \4341// RUN: -target s390x-unknown-linux \4342// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH114343// CHECK_SYSTEMZ_ARCH11: #define __ARCH__ 114344// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14345// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14346// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14347// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14348// CHECK_SYSTEMZ_ARCH11: #define __HTM__ 14349// CHECK_SYSTEMZ_ARCH11: #define __LONG_DOUBLE_128__ 14350// CHECK_SYSTEMZ_ARCH11: #define __VX__ 14351// CHECK_SYSTEMZ_ARCH11: #define __s390__ 14352// CHECK_SYSTEMZ_ARCH11: #define __s390x__ 14353// CHECK_SYSTEMZ_ARCH11: #define __zarch__ 14354 4355// RUN: %clang -march=arch12 -E -dM %s -o - 2>&1 \4356// RUN: -target s390x-unknown-linux \4357// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH124358// RUN: %clang -march=z14 -E -dM %s -o - 2>&1 \4359// RUN: -target s390x-unknown-linux \4360// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH124361// CHECK_SYSTEMZ_ARCH12: #define __ARCH__ 124362// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14363// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14364// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14365// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14366// CHECK_SYSTEMZ_ARCH12: #define __HTM__ 14367// CHECK_SYSTEMZ_ARCH12: #define __LONG_DOUBLE_128__ 14368// CHECK_SYSTEMZ_ARCH12: #define __VX__ 14369// CHECK_SYSTEMZ_ARCH12: #define __s390__ 14370// CHECK_SYSTEMZ_ARCH12: #define __s390x__ 14371// CHECK_SYSTEMZ_ARCH12: #define __zarch__ 14372 4373// RUN: %clang -march=arch13 -E -dM %s -o - 2>&1 \4374// RUN: -target s390x-unknown-linux \4375// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH134376// RUN: %clang -march=z15 -E -dM %s -o - 2>&1 \4377// RUN: -target s390x-unknown-linux \4378// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH134379// CHECK_SYSTEMZ_ARCH13: #define __ARCH__ 134380// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14381// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14382// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14383// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14384// CHECK_SYSTEMZ_ARCH13: #define __HTM__ 14385// CHECK_SYSTEMZ_ARCH13: #define __LONG_DOUBLE_128__ 14386// CHECK_SYSTEMZ_ARCH13: #define __VX__ 14387// CHECK_SYSTEMZ_ARCH13: #define __s390__ 14388// CHECK_SYSTEMZ_ARCH13: #define __s390x__ 14389// CHECK_SYSTEMZ_ARCH13: #define __zarch__ 14390 4391// RUN: %clang -march=arch14 -E -dM %s -o - 2>&1 \4392// RUN: -target s390x-unknown-linux \4393// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH144394// RUN: %clang -march=z16 -E -dM %s -o - 2>&1 \4395// RUN: -target s390x-unknown-linux \4396// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH144397// CHECK_SYSTEMZ_ARCH14: #define __ARCH__ 144398// CHECK_SYSTEMZ_ARCH14: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14399// CHECK_SYSTEMZ_ARCH14: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14400// CHECK_SYSTEMZ_ARCH14: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14401// CHECK_SYSTEMZ_ARCH14: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14402// CHECK_SYSTEMZ_ARCH14: #define __HTM__ 14403// CHECK_SYSTEMZ_ARCH14: #define __LONG_DOUBLE_128__ 14404// CHECK_SYSTEMZ_ARCH14: #define __VX__ 14405// CHECK_SYSTEMZ_ARCH14: #define __s390__ 14406// CHECK_SYSTEMZ_ARCH14: #define __s390x__ 14407// CHECK_SYSTEMZ_ARCH14: #define __zarch__ 14408 4409// RUN: %clang -march=arch15 -E -dM %s -o - 2>&1 \4410// RUN: -target s390x-unknown-linux \4411// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH154412// RUN: %clang -march=z17 -E -dM %s -o - 2>&1 \4413// RUN: -target s390x-unknown-linux \4414// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH154415// CHECK_SYSTEMZ_ARCH15: #define __ARCH__ 154416// CHECK_SYSTEMZ_ARCH15: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14417// CHECK_SYSTEMZ_ARCH15: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14418// CHECK_SYSTEMZ_ARCH15: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14419// CHECK_SYSTEMZ_ARCH15: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14420// CHECK_SYSTEMZ_ARCH15: #define __HTM__ 14421// CHECK_SYSTEMZ_ARCH15: #define __LONG_DOUBLE_128__ 14422// CHECK_SYSTEMZ_ARCH15: #define __VX__ 14423// CHECK_SYSTEMZ_ARCH15: #define __s390__ 14424// CHECK_SYSTEMZ_ARCH15: #define __s390x__ 14425// CHECK_SYSTEMZ_ARCH15: #define __zarch__ 14426 4427// RUN: %clang -mhtm -E -dM %s -o - 2>&1 \4428// RUN: -target s390x-unknown-linux \4429// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_HTM4430// CHECK_SYSTEMZ_HTM: #define __HTM__ 14431 4432// RUN: %clang -mvx -E -dM %s -o - 2>&1 \4433// RUN: -target s390x-unknown-linux \4434// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_VX4435// CHECK_SYSTEMZ_VX: #define __VX__ 14436 4437// RUN: %clang -fzvector -E -dM %s -o - 2>&1 \4438// RUN: -target s390x-unknown-linux \4439// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR4440// RUN: %clang -mzvector -E -dM %s -o - 2>&1 \4441// RUN: -target s390x-unknown-linux \4442// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR4443// CHECK_SYSTEMZ_ZVECTOR: #define __VEC__ 103054444 4445// Begin nvptx tests ----------------4446 4447// RUN: %clang -march=sm_75 -E -dM %s -o - 2>&1 \4448// RUN: -target nvptx64-unknown-unknown \4449// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_NVPTX,CHECK_ARCH_SM_754450// RUN: %clang -E -dM %s -o - 2>&1 \4451// RUN: -target nvptx64-unknown-unknown \4452// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_NVPTX,CHECK_ARCH_UNSET4453// CHECK_ARCH_SM_75: #define __CUDA_ARCH__ 7504454// CHECK_ARCH_UNSET-NOT: #define __CUDA_ARCH__4455// CHECK_NVPTX: #define __NVPTX__ 14456 4457// Begin amdgcn tests ----------------4458 4459// RUN: %clang -mcpu=gfx803 -E -dM %s -o - 2>&1 \4460// RUN: -target amdgcn-unknown-unknown \4461// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_AMDGCN,CHECK_AMDGCN_8034462// RUN: %clang -E -dM %s -o - 2>&1 \4463// RUN: -target amdgcn-unknown-unknown \4464// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_AMDGCN,CHECK_AMDGCN_NONE4465// CHECK_AMDGCN: #define __AMDGCN__ 14466// CHECK_AMDGCN_803: #define __HAS_FMAF__ 14467// CHECK_AMDGCN_803: #define __HAS_FP64__ 14468// CHECK_AMDGCN_803: #define __HAS_LDEXPF__ 14469// CHECK_AMDGCN_NONE-NOT: #define __HAS_FMAF__4470// CHECK_AMDGCN_NONE-NOT: #define __HAS_FP64__4471// CHECK_AMDGCN_NONE-NOT: #define __HAS_LDEXPF__4472 4473// Begin r600 tests ----------------4474 4475// RUN: %clang -march=amdgcn -E -dM %s -o - 2>&1 \4476// RUN: -target r600-unknown-unknown \4477// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R6004478// CHECK_R600: #define __R600__ 14479// CHECK_R600-NOT: #define __HAS_FMAF__ 14480 4481// RUN: %clang -march=amdgcn -mcpu=cypress -E -dM %s -o - 2>&1 \4482// RUN: -target r600-unknown-unknown \4483// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600_FP644484// CHECK_R600_FP64-DAG: #define __R600__ 14485// CHECK_R600_FP64-DAG: #define __HAS_FMAF__ 14486 4487// Begin HIP host tests -----------4488 4489// RUN: %clang -x hip -E -dM %s -o - 2>&1 --offload-host-only -nogpulib \4490// RUN: -nogpuinc --offload-arch=gfx803 -target x86_64-unknown-linux \4491// RUN: | FileCheck -match-full-lines %s -check-prefixes=CHECK_HIP_HOST4492// CHECK_HIP_HOST: #define __AMDGPU__ 14493// CHECK_HIP_HOST: #define __AMD__ 14494 4495// Begin avr tests ----------------4496 4497// RUN: %clang --target=avr -mmcu=atmega328 -E -dM %s -o - 2>&1 \4498// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK-AVR04499// CHECK-AVR0: #define __AVR_ARCH__ 54500// CHECK-AVR0: #define __AVR_ATmega328__ 14501// CHECK-AVR0: #define __flash __attribute__((__address_space__(1)))4502// RUN: %clang --target=avr -mmcu=atmega2560 -E -dM %s -o - 2>&1 \4503// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK-AVR14504// CHECK-AVR1: #define __AVR_ARCH__ 64505// CHECK-AVR1: #define __AVR_ATmega2560__ 14506// CHECK-AVR1: #define __flash __attribute__((__address_space__(1)))4507// CHECK-AVR1: #define __flash1 __attribute__((__address_space__(2)))4508// CHECK-AVR1: #define __flash2 __attribute__((__address_space__(3)))4509// CHECK-AVR1: #define __flash3 __attribute__((__address_space__(4)))4510 4511// Begin M68k tests ----------------4512 4513// RUN: %clang -mcpu=68000 -E -dM %s -o - 2>&1 \4514// RUN: -target m68k-unknown-linux \4515// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_M68K_68000_ATOMICS4516// RUN: %clang -mcpu=68010 -E -dM %s -o - 2>&1 \4517// RUN: -target m68k-unknown-linux \4518// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_M68K_68000_ATOMICS4519// RUN: %clang -mcpu=68020 -E -dM %s -o - 2>&1 \4520// RUN: -target m68k-unknown-linux \4521// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_M68K_68020_ATOMICS4522 4523// CHECK_M68K_68000_ATOMICS-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP4524// CHECK_M68K_68020_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14525// CHECK_M68K_68020_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14526// CHECK_M68K_68020_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14527 4528// Begin Hexagon tests ----------------4529 4530// RUN: %clang -E -dM %s -o - 2>&1 \4531// RUN: --target=hexagon-unknown-linux \4532// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_HEXAGON_ATOMICS4533 4534// CHECK_HEXAGON_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14535// CHECK_HEXAGON_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14536// CHECK_HEXAGON_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14537// CHECK_HEXAGON_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14538 4539// Begin VE tests ----------------4540 4541// RUN: %clang -E -dM %s -o - 2>&1 \4542// RUN: --target=ve-unknown-linux \4543// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_VE_ATOMICS4544 4545// CHECK_VE_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14546// CHECK_VE_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14547// CHECK_VE_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14548// CHECK_VE_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14549 4550// Begin WebAssembly tests ----------------4551 4552// RUN: %clang -E -dM %s -o - 2>&1 \4553// RUN: --target=wasm32-unknown-unknown \4554// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WASM_ATOMICS4555// RUN: %clang -E -dM %s -o - 2>&1 \4556// RUN: --target=wasm64-unknown-unknown \4557// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WASM_ATOMICS4558 4559// CHECK_WASM_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14560// CHECK_WASM_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14561// CHECK_WASM_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14562// CHECK_WASM_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14563 4564// Begin LoongArch tests ----------------4565 4566// RUN: %clang -E -dM %s -o - 2>&1 \4567// RUN: --target=loongarch32-unknown-linux-gnu \4568// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_LA32_ATOMICS4569// CHECK_LA32_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14570// CHECK_LA32_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14571// CHECK_LA32_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14572 4573// RUN: %clang -E -dM %s -o - 2>&1 \4574// RUN: --target=loongarch64-unknown-linux-gnu \4575// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_LA64_ATOMICS4576// CHECK_LA64_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 14577// CHECK_LA64_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 14578// CHECK_LA64_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 14579// CHECK_LA64_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 14580