756 lines · c
1// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE4 %s2 3// SSE4: #define __SSE2_MATH__ 14// SSE4: #define __SSE2__ 15// SSE4: #define __SSE3__ 16// SSE4: #define __SSE4_1__ 17// SSE4: #define __SSE4_2__ 18// SSE4: #define __SSE_MATH__ 19// SSE4: #define __SSE__ 110// SSE4: #define __SSSE3__ 111 12// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4.1 -mno-sse4 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOSSE4 %s13 14// NOSSE4-NOT: #define __SSE4_1__ 115 16// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE %s17 18// SSE-NOT: #define __SSE2_MATH__ 119// SSE-NOT: #define __SSE2__ 120// SSE-NOT: #define __SSE3__ 121// SSE-NOT: #define __SSE4_1__ 122// SSE-NOT: #define __SSE4_2__ 123// SSE: #define __SSE_MATH__ 124// SSE: #define __SSE__ 125// SSE-NOT: #define __SSSE3__ 126 27// RUN: %clang -target i386-unknown-unknown -march=pentium-m -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE2 %s28 29// SSE2: #define __SSE2_MATH__ 130// SSE2: #define __SSE2__ 131// SSE2-NOT: #define __SSE3__ 132// SSE2-NOT: #define __SSE4_1__ 133// SSE2-NOT: #define __SSE4_2__ 134// SSE2: #define __SSE_MATH__ 135// SSE2: #define __SSE__ 136// SSE2-NOT: #define __SSSE3__ 137 38// RUN: %clang -target i386-unknown-unknown -march=pentium-m -mno-sse -mavx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX %s39 40// AVX: #define __AVX__ 141// AVX: #define __SSE2_MATH__ 142// AVX: #define __SSE2__ 143// AVX: #define __SSE3__ 144// AVX: #define __SSE4_1__ 145// AVX: #define __SSE4_2__ 146// AVX: #define __SSE_MATH__ 147// AVX: #define __SSE__ 148// AVX: #define __SSSE3__ 149 50// RUN: %clang -target i386-unknown-unknown -march=pentium-m -mxop -mno-avx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE4A %s51 52// SSE4A: #define __SSE2_MATH__ 153// SSE4A: #define __SSE2__ 154// SSE4A: #define __SSE3__ 155// SSE4A: #define __SSE4A__ 156// SSE4A: #define __SSE4_1__ 157// SSE4A: #define __SSE4_2__ 158// SSE4A: #define __SSE_MATH__ 159// SSE4A: #define __SSE__ 160// SSE4A: #define __SSSE3__ 161 62// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512f -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512F %s63 64// AVX512F: #define __AVX2__ 165// AVX512F: #define __AVX512F__ 166// AVX512F: #define __AVX__ 167// AVX512F: #define __SSE2_MATH__ 168// AVX512F: #define __SSE2__ 169// AVX512F: #define __SSE3__ 170// AVX512F: #define __SSE4_1__ 171// AVX512F: #define __SSE4_2__ 172// AVX512F: #define __SSE_MATH__ 173// AVX512F: #define __SSE__ 174// AVX512F: #define __SSSE3__ 175 76// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512cd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512CD %s77 78// AVX512CD: #define __AVX2__ 179// AVX512CD: #define __AVX512CD__ 180// AVX512CD: #define __AVX512F__ 181// AVX512CD: #define __AVX__ 182// AVX512CD: #define __SSE2_MATH__ 183// AVX512CD: #define __SSE2__ 184// AVX512CD: #define __SSE3__ 185// AVX512CD: #define __SSE4_1__ 186// AVX512CD: #define __SSE4_2__ 187// AVX512CD: #define __SSE_MATH__ 188// AVX512CD: #define __SSE__ 189// AVX512CD: #define __SSSE3__ 190 91// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512dq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512DQ %s92 93// AVX512DQ: #define __AVX2__ 194// AVX512DQ: #define __AVX512DQ__ 195// AVX512DQ: #define __AVX512F__ 196// AVX512DQ: #define __AVX__ 197// AVX512DQ: #define __SSE2_MATH__ 198// AVX512DQ: #define __SSE2__ 199// AVX512DQ: #define __SSE3__ 1100// AVX512DQ: #define __SSE4_1__ 1101// AVX512DQ: #define __SSE4_2__ 1102// AVX512DQ: #define __SSE_MATH__ 1103// AVX512DQ: #define __SSE__ 1104// AVX512DQ: #define __SSSE3__ 1105 106// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BW %s107 108// AVX512BW: #define __AVX2__ 1109// AVX512BW: #define __AVX512BW__ 1110// AVX512BW: #define __AVX512F__ 1111// AVX512BW: #define __AVX__ 1112// AVX512BW: #define __SSE2_MATH__ 1113// AVX512BW: #define __SSE2__ 1114// AVX512BW: #define __SSE3__ 1115// AVX512BW: #define __SSE4_1__ 1116// AVX512BW: #define __SSE4_2__ 1117// AVX512BW: #define __SSE_MATH__ 1118// AVX512BW: #define __SSE__ 1119// AVX512BW: #define __SSSE3__ 1120 121// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vl -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VL %s122 123// AVX512VL: #define __AVX2__ 1124// AVX512VL: #define __AVX512F__ 1125// AVX512VL: #define __AVX512VL__ 1126// AVX512VL: #define __AVX__ 1127// AVX512VL: #define __SSE2_MATH__ 1128// AVX512VL: #define __SSE2__ 1129// AVX512VL: #define __SSE3__ 1130// AVX512VL: #define __SSE4_1__ 1131// AVX512VL: #define __SSE4_2__ 1132// AVX512VL: #define __SSE_MATH__ 1133// AVX512VL: #define __SSE__ 1134// AVX512VL: #define __SSSE3__ 1135 136// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512ifma -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512IFMA %s137 138// AVX512IFMA: #define __AVX2__ 1139// AVX512IFMA: #define __AVX512F__ 1140// AVX512IFMA: #define __AVX512IFMA__ 1141// AVX512IFMA: #define __AVX__ 1142// AVX512IFMA: #define __SSE2_MATH__ 1143// AVX512IFMA: #define __SSE2__ 1144// AVX512IFMA: #define __SSE3__ 1145// AVX512IFMA: #define __SSE4_1__ 1146// AVX512IFMA: #define __SSE4_2__ 1147// AVX512IFMA: #define __SSE_MATH__ 1148// AVX512IFMA: #define __SSE__ 1149// AVX512IFMA: #define __SSSE3__ 1150 151// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI %s152 153// AVX512VBMI: #define __AVX2__ 1154// AVX512VBMI: #define __AVX512BW__ 1155// AVX512VBMI: #define __AVX512F__ 1156// AVX512VBMI: #define __AVX512VBMI__ 1157// AVX512VBMI: #define __AVX__ 1158// AVX512VBMI: #define __SSE2_MATH__ 1159// AVX512VBMI: #define __SSE2__ 1160// AVX512VBMI: #define __SSE3__ 1161// AVX512VBMI: #define __SSE4_1__ 1162// AVX512VBMI: #define __SSE4_2__ 1163// AVX512VBMI: #define __SSE_MATH__ 1164// AVX512VBMI: #define __SSE__ 1165// AVX512VBMI: #define __SSSE3__ 1166 167// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bitalg -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BITALG %s168 169// AVX512BITALG: #define __AVX2__ 1170// AVX512BITALG: #define __AVX512BITALG__ 1171// AVX512BITALG: #define __AVX512BW__ 1172// AVX512BITALG: #define __AVX512F__ 1173// AVX512BITALG: #define __AVX__ 1174// AVX512BITALG: #define __SSE2_MATH__ 1175// AVX512BITALG: #define __SSE2__ 1176// AVX512BITALG: #define __SSE3__ 1177// AVX512BITALG: #define __SSE4_1__ 1178// AVX512BITALG: #define __SSE4_2__ 1179// AVX512BITALG: #define __SSE_MATH__ 1180// AVX512BITALG: #define __SSE__ 1181// AVX512BITALG: #define __SSSE3__ 1182 183 184// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMINOAVX512BW %s185 186// AVX512VBMINOAVX512BW-NOT: #define __AVX512BW__ 1187// AVX512VBMINOAVX512BW-NOT: #define __AVX512VBMI__ 1188 189// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI2 %s190 191// AVX512VBMI2: #define __AVX2__ 1192// AVX512VBMI2: #define __AVX512BW__ 1193// AVX512VBMI2: #define __AVX512F__ 1194// AVX512VBMI2: #define __AVX512VBMI2__ 1195// AVX512VBMI2: #define __AVX__ 1196// AVX512VBMI2: #define __SSE2_MATH__ 1197// AVX512VBMI2: #define __SSE2__ 1198// AVX512VBMI2: #define __SSE3__ 1199// AVX512VBMI2: #define __SSE4_1__ 1200// AVX512VBMI2: #define __SSE4_2__ 1201// AVX512VBMI2: #define __SSE_MATH__ 1202// AVX512VBMI2: #define __SSE__ 1203// AVX512VBMI2: #define __SSSE3__ 1204 205// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi2 -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI2NOAVX512BW %s206 207// AVX512VBMI2NOAVX512BW-NOT: #define __AVX512BW__ 1208// AVX512VBMI2NOAVX512BW-NOT: #define __AVX512VBMI2__ 1209 210// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bitalg -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BITALGNOAVX512BW %s211 212// AVX512BITALGNOAVX512BW-NOT: #define __AVX512BITALG__ 1213// AVX512BITALGNOAVX512BW-NOT: #define __AVX512BW__ 1214 215// RUN: %clang -target i386-unknown-unknown -march=atom -msse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE42POPCNT %s216 217// SSE42POPCNT: #define __POPCNT__ 1218 219// RUN: %clang -target i386-unknown-unknown -march=atom -mno-popcnt -msse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE42NOPOPCNT %s220 221// SSE42NOPOPCNT-NOT: #define __POPCNT__ 1222 223// RUN: %clang -target i386-unknown-unknown -march=atom -mpopcnt -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOSSE42POPCNT %s224 225// NOSSE42POPCNT: #define __POPCNT__ 1226 227// RUN: %clang -target i386-unknown-unknown -march=nehalem -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CPUPOPCNT %s228// RUN: %clang -target i386-unknown-unknown -march=silvermont -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CPUPOPCNT %s229// RUN: %clang -target i386-unknown-unknown -march=knl -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CPUPOPCNT %s230 231// CPUPOPCNT: #define __POPCNT__ 1232 233// RUN: %clang -target i386-unknown-unknown -march=pentium -msse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSEMMX %s234 235// SSEMMX: #define __MMX__ 1236 237// RUN: %clang -target i386-unknown-unknown -march=pentium -msse -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSENOSSEMMX %s238 239// SSENOSSEMMX-NOT: #define __MMX__ 1240 241// RUN: %clang -target i386-unknown-unknown -march=pentium -msse -mno-mmx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSENOMMX %s242 243// SSENOMMX-NOT: #define __MMX__ 1244 245// RUN: %clang -target i386-unknown-unknown -march=pentium3 -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s246// RUN: %clang -target i386-unknown-unknown -march=atom -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s247// RUN: %clang -target i386-unknown-unknown -march=knl -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s248// RUN: %clang -target i386-unknown-unknown -march=btver1 -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s249// RUN: %clang -target i386-unknown-unknown -march=znver1 -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s250 251// MARCHMMXNOSSE: #define __MMX__ 1252 253// RUN: %clang -target i386-unknown-unknown -march=atom -mf16c -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=F16C %s254 255// F16C: #define __AVX__ 1256// F16C: #define __F16C__ 1257 258// RUN: %clang -target i386-unknown-unknown -march=atom -mf16c -mno-avx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=F16CNOAVX %s259 260// F16CNOAVX-NOT: #define __AVX__ 1261// F16CNOAVX-NOT: #define __F16C__ 1262 263// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mpclmul -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PCLMUL %s264 265// PCLMUL: #define __PCLMUL__ 1266// PCLMUL: #define __SSE2__ 1267// PCLMUL-NOT: #define __SSE3__ 1268 269// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mpclmul -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PCLMULNOSSE2 %s270 271// PCLMULNOSSE2-NOT: #define __PCLMUL__ 1272// PCLMULNOSSE2-NOT: #define __SSE2__ 1273// PCLMULNOSSE2-NOT: #define __SSE3__ 1274 275// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -maes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AES %s276 277// AES: #define __AES__ 1278// AES: #define __SSE2__ 1279// AES-NOT: #define __SSE3__ 1280 281// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -maes -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AESNOSSE2 %s282 283// AESNOSSE2-NOT: #define __AES__ 1284// AESNOSSE2-NOT: #define __SSE2__ 1285// AESNOSSE2-NOT: #define __SSE3__ 1286 287// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mlwp -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=LWP %s288 289// LWP: #define __LWP__ 1290 291// RUN: %clang -target i386-unknown-unknown -march=bdver1 -mno-lwp -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOLWP %s292 293// NOLWP-NOT: #define __LWP__ 1294 295// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHA %s296 297// SHA: #define __SHA__ 1298// SHA: #define __SSE2__ 1299// SHA-NOT: #define __SSE3__ 1300 301// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -mno-sha -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHANOSHA %s302 303// SHANOSHA-NOT: #define __SHA__ 1304// SHANOSHA-NOT: #define __SSE2__ 1305 306// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHANOSSE2 %s307 308// SHANOSSE2-NOT: #define __SHA__ 1309// SHANOSSE2-NOT: #define __SSE2__ 1310// SHANOSSE2-NOT: #define __SSE3__ 1311 312// RUN: %clang -target i386-unknown-unknown -march=atom -mtbm -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=TBM %s313 314// TBM: #define __TBM__ 1315 316// RUN: %clang -target i386-unknown-unknown -march=bdver2 -mno-tbm -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOTBM %s317 318// NOTBM-NOT: #define __TBM__ 1319 320// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mcx16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MCX16-32 %s321 322// MCX16-32-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1323 324// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mcx16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MCX16-64 %s325 326// MCX16-64: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1327 328// RUN: %clang -target i386-unknown-unknown -march=atom -mprfchw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PRFCHW %s329 330// PRFCHW: #define __PRFCHW__ 1331 332// RUN: %clang -target i386-unknown-unknown -march=btver2 -mno-prfchw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOPRFCHW %s333 334// NOPRFCHW-NOT: #define __PRFCHW__ 1335 336// RUN: %clang -target i386-unknown-unknown -march=atom -m3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=3DNOWPRFCHW %s337 338// 3DNOWPRFCHW-NOT: #define __3dNOW__ 1339// 3DNOWPRFCHW-NOT: #define __PRFCHW__ 1340 341// RUN: %clang -target i386-unknown-unknown -march=atom -mno-prfchw -m3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=3DNOWNOPRFCHW %s342 343// 3DNOWNOPRFCHW-NOT: #define __3dNOW__ 1344// 3DNOWNOPRFCHW-NOT: #define __PRFCHW__ 1345 346// RUN: %clang -target i386-unknown-unknown -march=atom -mprfchw -mno-3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NO3DNOWPRFCHW %s347 348// NO3DNOWPRFCHW: #define __PRFCHW__ 1349 350// RUN: %clang -target i386-unknown-unknown -march=atom -madx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=ADX %s351 352// ADX: #define __ADX__ 1353 354// RUN: %clang -target i386-unknown-unknown -mshstk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHSTK %s355 356// SHSTK: #define __SHSTK__ 1357 358// RUN: %clang -target i386-unknown-unknown -march=atom -mrdseed -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=RDSEED %s359 360// RDSEED: #define __RDSEED__ 1361 362// RUN: %clang -target i386-unknown-unknown -march=atom -mxsave -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVE %s363 364// XSAVE: #define __XSAVE__ 1365 366// RUN: %clang -target i386-unknown-unknown -march=atom -mxsaveopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVEOPT %s367 368// XSAVEOPT: #define __XSAVEOPT__ 1369// XSAVEOPT: #define __XSAVE__ 1370 371// RUN: %clang -target i386-unknown-unknown -march=atom -mxsavec -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVEC %s372 373// XSAVEC: #define __XSAVEC__ 1374// XSAVEC: #define __XSAVE__ 1375 376// RUN: %clang -target i386-unknown-unknown -march=atom -mxsaves -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVES %s377 378// XSAVES: #define __XSAVES__ 1379// XSAVES: #define __XSAVE__ 1380 381// RUN: %clang -target i386-unknown-unknown -march=atom -mxsaveopt -mxsavec -mxsaves -mno-xsave -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOXSAVE %s382 383// NOXSAVE-NOT: #define __XSAVEC__ 1384// NOXSAVE-NOT: #define __XSAVEOPT__ 1385// NOXSAVE-NOT: #define __XSAVES__ 1386// NOXSAVE-NOT: #define __XSAVE__ 1387 388// RUN: %clang -target i386-unknown-unknown -march=atom -mclflushopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CLFLUSHOPT %s389 390// CLFLUSHOPT: #define __CLFLUSHOPT__ 1391 392// RUN: %clang -target i386-unknown-unknown -march=atom -mvaes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VAES %s393 394// VAES: #define __AES__ 1395// VAES: #define __VAES__ 1396 397// RUN: %clang -target i386-unknown-unknown -march=atom -mvaes -mno-aes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VAESNOAES %s398 399// VAESNOAES-NOT: #define __AES__ 1400// VAESNOAES-NOT: #define __VAES__ 1401 402// RUN: %clang -target i386-unknown-unknown -march=atom -mgfni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=GFNI %s403 404// GFNI: #define __GFNI__ 1405// GFNI: #define __SSE2__ 1406 407// RUN: %clang -target i386-unknown-unknown -march=atom -mvpclmulqdq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VPCLMULQDQ %s408 409// VPCLMULQDQ: #define __PCLMUL__ 1410// VPCLMULQDQ: #define __VPCLMULQDQ__ 1411 412// RUN: %clang -target i386-unknown-unknown -march=atom -mvpclmulqdq -mno-pclmul -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VPCLMULQDQNOPCLMUL %s413// VPCLMULQDQNOPCLMUL-NOT: #define __PCLMUL__ 1414// VPCLMULQDQNOPCLMUL-NOT: #define __VPCLMULQDQ__ 1415 416// RUN: %clang -target i386-unknown-unknown -march=atom -mrdpid -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=RDPID %s417 418// RDPID: #define __RDPID__ 1419 420// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bf16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BF16 %s421 422// AVX512BF16: #define __AVX512BF16__ 1423// AVX512BF16: #define __AVX512BW__ 1424// AVX512BF16-NOT: #define __AVX512VL__ 1425 426// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bf16 -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BF16_NOAVX512BW %s427 428// AVX512BF16_NOAVX512BW-NOT: #define __AVX512BF16__ 1429 430// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bf16 -mno-avx512vl -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BF16_NOAVX512VL %s431 432// AVX512BF16_NOAVX512VL: #define __AVX512BF16__ 1433 434// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mavx512vp2intersect -x c -E -dM -o - %s | FileCheck -check-prefix=VP2INTERSECT %s435 436// VP2INTERSECT: #define __AVX512F__ 1437// VP2INTERSECT: #define __AVX512VP2INTERSECT__ 1438 439// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-avx512vp2intersect -x c -E -dM -o - %s | FileCheck -check-prefix=NOVP2INTERSECT %s440// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mavx512vp2intersect -mno-avx512f -x c -E -dM -o - %s | FileCheck -check-prefix=NOVP2INTERSECT %s441 442// NOVP2INTERSECT-NOT: #define __AVX512VP2INTERSECT__ 1443 444 445// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mkl -x c -E -dM -o - %s | FileCheck -check-prefix=KEYLOCKER %s446// KEYLOCKER: #define __KL__ 1447 448// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-kl -x c -E -dM -o - %s | FileCheck -check-prefix=NOKEYLOCKER %s449// NOKEYLOCKER-NOT: #define __KL__ 1450 451// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mwidekl -x c -E -dM -o - %s | FileCheck -check-prefix=KEYLOCKERW %s452// KEYLOCKERW: #define __KL__ 1453// KEYLOCKERW: #define __WIDEKL__ 1454 455// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-widekl -x c -E -dM -o - %s | FileCheck -check-prefix=NOKEYLOCKERW %s456// NOKEYLOCKERW-NOT: #define __KL__ 1457// NOKEYLOCKERW-NOT: #define __WIDEKL__ 1458 459// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mwidekl -mno-kl -x c -E -dM -o - %s | FileCheck -check-prefix=NOKEYLOCKERW2 %s460// NOKEYLOCKERW2-NOT: #define __KL__ 1461// NOKEYLOCKERW2-NOT: #define __WIDEKL__ 1462 463// RUN: %clang -target i386-unknown-unknown -march=atom -menqcmd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=ENQCMD %s464 465// ENQCMD: #define __ENQCMD__ 1466 467// RUN: %clang -target i386-unknown-unknown -march=atom -mno-enqcmd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOENQCMD %s468 469// NOENQCMD-NOT: #define __ENQCMD__ 1470 471// RUN: %clang -target i386-unknown-unknown -march=atom -mserialize -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SERIALIZE %s472 473// SERIALIZE: #define __SERIALIZE__ 1474 475// RUN: %clang -target i386-unknown-unknown -march=atom -mno-serialize -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOSERIALIZE %s476 477// NOSERIALIZE-NOT: #define __SERIALIZE__ 1478 479// RUN: %clang -target i386-unknown-unknown -march=atom -mtsxldtrk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=TSXLDTRK %s480 481// TSXLDTRK: #define __TSXLDTRK__ 1482 483// RUN: %clang -target i386-unknown-unknown -march=atom -mno-tsxldtrk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOTSXLDTRK %s484 485// NOTSXLDTRK-NOT: #define __TSXLDTRK__ 1486 487// RUN: %clang -target i386-unknown-unknown -march=atom -mhreset -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=HRESET %s488 489// HRESET: #define __HRESET__ 1490 491// RUN: %clang -target i386-unknown-unknown -march=atom -mno-hreset -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOHRESET %s492 493// NOHRESET-NOT: #define __HRESET__ 1494 495// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -muintr -x c -E -dM -o - %s | FileCheck -check-prefix=UINTR %s496 497// UINTR: #define __UINTR__ 1498 499// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mno-uintr -x c -E -dM -o - %s | FileCheck -check-prefix=NOUINTR %s500 501// NOUINTR-NOT: #define __UINTR__ 1502 503// RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mamx-fp16 -x c \504// RUN: -E -dM -o - %s | FileCheck -check-prefix=AMX-FP16 %s505 506// AMX-FP16: #define __AMX_FP16__ 1507// AMX-FP16: #define __AMX_TILE__ 1508 509// RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mno-amx-fp16 \510// RUN: -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-FP16 %s511// RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mamx-fp16 \512// RUN: -mno-amx-tile -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-FP16 %s513 514// NO-AMX-FP16-NOT: #define __AMX_FP16__ 1515// NO-AMX-FP16-NOT: #define __AMX_TILE__ 1516 517// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mamx-complex -x c \518// RUN: -E -dM -o - %s | FileCheck -check-prefix=AMX-COMPLEX %s519 520// AMX-COMPLEX: #define __AMX_COMPLEX__ 1521 522// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mno-amx-complex -x c \523// RUN: -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-COMPLEX %s524// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mamx-complex -mno-amx-tile \525// RUN: -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-COMPLEX %s526 527// NO-AMX-COMPLEX-NOT: #define __AMX_COMPLEX__ 1528 529// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mamx-avx512 -x c \530// RUN: -E -dM -o - %s | FileCheck -check-prefix=AMX-AVX512 %s531 532// AMX-AVX512: #define __AMX_AVX512__ 1533 534// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mno-amx-avx512 -x c \535// RUN: -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-AVX512 %s536// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mamx-avx512 -mno-amx-tile \537// RUN: -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-AVX512 %s538 539// NO-AMX-AVX512-NOT: #define __AMX_AVX512__ 1540 541// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mamx-tf32 -x c \542// RUN: -E -dM -o - %s | FileCheck -check-prefix=AMX-TF32 %s543// AMX-TF32: #define __AMX_TF32__ 1544// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mno-amx-tf32 -x c \545// RUN: -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-TF32 %s546// RUN: %clang -target x86_64-unknown-linux-gnu -march=x86-64 -mamx-tf32 -mno-amx-tile \547// RUN: -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AMX-TF32 %s548// NO-AMX-TF32-NOT: #define __AMX_TF32__ 1549 550// RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNI %s551 552// AVXVNNI: #define __AVX2__ 1553// AVXVNNI: #define __AVXVNNI__ 1554 555// RUN: %clang -target i386-unknown-unknown -march=atom -mno-avxvnni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOAVXVNNI %s556 557// NOAVXVNNI-NOT: #define __AVXVNNI__ 1558 559// RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnni -mno-avx2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNINOAVX2 %s560 561// AVXVNNINOAVX2-NOT: #define __AVX2__ 1562// AVXVNNINOAVX2-NOT: #define __AVXVNNI__ 1563 564// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512fp16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512FP16 %s565 566// AVX512FP16: #define __AVX512BW__ 1567// AVX512FP16: #define __AVX512FP16__ 1568 569// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512fp16 -mno-avx512vl -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512FP16NOAVX512VL %s570 571// AVX512FP16NOAVX512VL: #define __AVX512FP16__ 1572 573// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512fp16 -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512FP16NOAVX512BW %s574 575// AVX512FP16NOAVX512BW-NOT: #define __AVX512BW__ 1576// AVX512FP16NOAVX512BW-NOT: #define __AVX512FP16__ 1577 578// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512fp16 -mno-avx512dq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512FP16NOAVX512DQ %s579 580// AVX512FP16NOAVX512DQ-NOT: #define __AVX512DQ__ 1581// AVX512FP16NOAVX512DQ: #define __AVX512FP16__ 1582 583// RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mcmpccxadd -x c -E -dM -o - %s | FileCheck -check-prefix=CMPCCXADD %s584 585// CMPCCXADD: #define __CMPCCXADD__ 1586 587// RUN: %clang -target x86_64-unknown-linux-gnu -march=atom -mno-cmpccxadd -x c -E -dM -o - %s | FileCheck -check-prefix=NO-CMPCCXADD %s588 589// NO-CMPCCXADD-NOT: #define __CMPCCXADD__ 1590// RUN: %clang -target i386-unknown-unknown -march=atom -mavxifma -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXIFMA %s591 592// AVXIFMA: #define __AVX2__ 1593// AVXIFMA: #define __AVXIFMA__ 1594 595// RUN: %clang -target i386-unknown-unknown -march=atom -mavxifma -mno-avx2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXIFMANOAVX2 %s596 597// AVXIFMANOAVX2-NOT: #define __AVX2__ 1598// AVXIFMANOAVX2-NOT: #define __AVXIFMA__ 1599 600// RUN: %clang -target i386-unknown-linux-gnu -march=atom -mraoint -x c -E -dM -o - %s | FileCheck -check-prefix=RAOINT %s601 602// RAOINT: #define __RAOINT__ 1603 604// RUN: %clang -target i386-unknown-linux-gnu -march=atom -mno-raoint -x c -E -dM -o - %s | FileCheck -check-prefix=NO-RAOINT %s605 606// NO-RAOINT-NOT: #define __RAOINT__ 1607 608// RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnniint8 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNIINT8 %s609 610// AVXVNNIINT8: #define __AVX2__ 1611// AVXVNNIINT8: #define __AVXVNNIINT8__ 1612 613// RUN: %clang -target i386-unknown-unknown -march=atom -mno-avxvnniint8 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOAVXVNNIINT8 %s614 615// NOAVXVNNIINT8-NOT: #define __AVXVNNIINT8__ 1616 617// RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnniint8 -mno-avx2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNIINT8NOAVX2 %s618 619// AVXVNNIINT8NOAVX2-NOT: #define __AVX2__ 1620// AVXVNNIINT8NOAVX2-NOT: #define __AVXVNNIINT8__ 1621 622// RUN: %clang -target i386-unknown-unknown -march=atom -mavxneconvert -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXNECONVERT %s623 624// AVXNECONVERT: #define __AVX2__ 1625// AVXNECONVERT: #define __AVXNECONVERT__ 1626 627// RUN: %clang -target i386-unknown-unknown -march=atom -mno-avxneconvert -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOAVXNECONVERT %s628 629// NOAVXNECONVERT-NOT: #define __AVXNECONVERT__ 1630 631// RUN: %clang -target i386-unknown-unknown -march=atom -mavxneconvert -mno-avx2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXNECONVERTNOAVX2 %s632 633// AVXNECONVERTNOAVX2-NOT: #define __AVX2__ 1634// AVXNECONVERTNOAVX2-NOT: #define __AVXNECONVERT__ 1635 636// RUN: %clang -target i386-unknown-linux-gnu -march=atom -msha512 -x c -E -dM -o - %s | FileCheck -check-prefix=SHA512 %s637 638// SHA512: #define __AVX__ 1639// SHA512: #define __SHA512__ 1640 641// RUN: %clang -target i386-unknown-linux-gnu -march=atom -mno-sha512 -x c -E -dM -o - %s | FileCheck -check-prefix=NOSHA512 %s642// NOSHA512-NOT: #define __SHA512__ 1643 644// RUN: %clang -target i386-unknown-linux-gnu -march=atom -msha512 -mno-avx -x c -E -dM -o - %s | FileCheck -check-prefix=SHA512NOAVX %s645 646// SHA512NOAVX-NOT: #define __AVX__ 1647// SHA512NOAVX-NOT: #define __SHA512__ 1648 649// RUN: %clang -target i686-unknown-linux-gnu -march=atom -msm3 -x c -E -dM -o - %s | FileCheck -check-prefix=SM3 %s650 651// SM3: #define __AVX__ 1652// SM3: #define __SM3__ 1653 654// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mno-sm3 -x c -E -dM -o - %s | FileCheck -check-prefix=NOSM3 %s655 656// NOSM3-NOT: #define __SM3__ 1657 658// RUN: %clang -target i686-unknown-linux-gnu -march=atom -msm3 -mno-avx -x c -E -dM -o - %s | FileCheck -check-prefix=SM3NOAVX %s659 660// SM3NOAVX-NOT: #define __SM3__ 1661// SM3NOAVX-NOT: #define __AVX__ 1662 663// RUN: %clang -target i686-unknown-linux-gnu -march=atom -msm4 -x c -E -dM -o - %s | FileCheck -check-prefix=SM4 %s664 665// SM4: #define __AVX__ 1666// SM4: #define __SM4__ 1667 668// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mno-sm4 -x c -E -dM -o - %s | FileCheck -check-prefix=NOSM4 %s669// NOSM4-NOT: #define __SM4__ 1670 671// RUN: %clang -target i686-unknown-linux-gnu -march=atom -msm4 -mno-avx -x c -E -dM -o - %s | FileCheck -check-prefix=SM4NOAVX %s672 673// SM4NOAVX-NOT: #define __AVX__ 1674// SM4NOAVX-NOT: #define __SM4__ 1675 676// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mavxvnniint16 -x c -E -dM -o - %s | FileCheck -check-prefix=AVXVNNIINT16 %s677 678// AVXVNNIINT16: #define __AVX2__ 1679// AVXVNNIINT16: #define __AVXVNNIINT16__ 1680 681// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mno-avxvnniint16 -x c -E -dM -o - %s | FileCheck -check-prefix=NOAVXVNNIINT16 %s682 683// NOAVXVNNIINT16-NOT: #define __AVXVNNIINT16__ 1684 685// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mavxvnniint16 -mno-avx2 -x c -E -dM -o - %s | FileCheck -check-prefix=AVXVNNIINT16NOAVX2 %s686 687// AVXVNNIINT16NOAVX2-NOT: #define __AVX2__ 1688// AVXVNNIINT16NOAVX2-NOT: #define __AVXVNNIINT16__ 1689 690// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mavx10.1 -x c -E -dM -o - %s | FileCheck -check-prefix=AVX10_1 %s691// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mavx10.1 -mno-avx512f -x c -E -dM -o - %s | FileCheck -check-prefix=NO-AVX10_1 %s692// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mavx10.2 -x c -E -dM -o - %s | FileCheck -check-prefixes=AVX10_1,AVX10_2 %s693// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mavx10.2 -mno-avx10.1 -x c -E -dM -o - %s | FileCheck -check-prefixes=NO-AVX10_1,NO-AVX10_2 %s694// AVX10_1: #define __AVX10_1_512__ 1695// AVX10_1: #define __AVX10_1__ 1696// AVX10_2: #define __AVX10_2_512__ 1697// AVX10_2: #define __AVX10_2__ 1698// AVX10_1: #define __AVX512F__ 1699// NO-AVX10_1-NOT: __AVX10_1_512__700// NO-AVX10_1-NOT: __AVX10_1__701// NO-AVX10_1-NOT: __AVX10_2_512__702// NO-AVX10_1-NOT: __AVX10_2__703// NO-AVX10_2: #define __AVX512F__ 1704 705// RUN: %clang -target i686-unknown-linux-gnu -march=atom -musermsr -x c -E -dM -o - %s | FileCheck -check-prefix=USERMSR %s706// USERMSR: #define __USERMSR__ 1707 708// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mno-usermsr -x c -E -dM -o - %s | FileCheck -check-prefix=NO-USERMSR %s709// NO-USERMSR-NOT: #define __USERMSR__ 1710 711// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mmovrs -x c -E -dM -o - %s | FileCheck -check-prefix=MOVRS %s712// MOVRS: #define __MOVRS__ 1713 714// RUN: %clang -target i686-unknown-linux-gnu -march=atom -mno-movrs -x c -E -dM -o - %s | FileCheck -check-prefix=NO-MOVRS %s715// NO-MOVRS-NOT: #define __MOVRS__ 1716 717// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mcrc32 -x c -E -dM -o - %s | FileCheck -check-prefix=CRC32 %s718 719// CRC32: #define __CRC32__ 1720 721// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-crc32 -x c -E -dM -o - %s | FileCheck -check-prefix=NOCRC32 %s722 723// NOCRC32-NOT: #define __CRC32__ 1724 725// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mrdpru -x c -E -dM -o - %s | FileCheck -check-prefix=RDPRU %s726 727// RDPRU: #define __RDPRU__ 1728 729// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-rdpru -x c -E -dM -o - %s | FileCheck -check-prefix=NORDPRU %s730 731// NORDPRU-NOT: #define __RDPRU__ 1732 733// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=egpr -x c -E -dM -o - %s | FileCheck --check-prefix=EGPR %s734// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=push2pop2 -x c -E -dM -o - %s | FileCheck --check-prefix=PUSH2POP2 %s735// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=ppx -x c -E -dM -o - %s | FileCheck --check-prefix=PPX %s736// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=ndd -x c -E -dM -o - %s | FileCheck --check-prefix=NDD %s737// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=ccmp -x c -E -dM -o - %s | FileCheck --check-prefix=CCMP %s738// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=nf -x c -E -dM -o - %s | FileCheck --check-prefix=NF %s739// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=cf -x c -E -dM -o - %s | FileCheck --check-prefix=CF %s740// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=zu -x c -E -dM -o - %s | FileCheck --check-prefix=ZU %s741// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapxf -x c -E -dM -o - %s | FileCheck --check-prefixes=EGPR,PUSH2POP2,PPX,NDD,CCMP,NF,ZU,APXF %s742// APXF: #define __APX_F__ 1743// CCMP: #define __CCMP__ 1744// CF: #define __CF__ 1745// EGPR: #define __EGPR__ 1746// NDD: #define __NDD__ 1747// NF: #define __NF__ 1748// PPX: #define __PPX__ 1749// PUSH2POP2: #define __PUSH2POP2__ 1750// ZU: #define __ZU__ 1751 752// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-inline-asm-use-gpr32 -x c -E -dM -o - %s | FileCheck --check-prefixes=NOUSEGPR32 %s753// RUN: %clang -target x86_64-unknown-unknown -march=x86-64 -mapx-features=egpr -mapx-inline-asm-use-gpr32 -x c -E -dM -o - %s | FileCheck --check-prefixes=USEGPR32 %s754// NOUSEGPR32-NOT: #define __APX_INLINE_ASM_USE_GPR32__ 1755// USEGPR32: #define __APX_INLINE_ASM_USE_GPR32__ 1756