2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE4 %s
|
2009-05-07 05:07:50 +08:00
|
|
|
|
2013-07-04 23:08:20 +08:00
|
|
|
// SSE4: #define __SSE2_MATH__ 1
|
|
|
|
// SSE4: #define __SSE2__ 1
|
|
|
|
// SSE4: #define __SSE3__ 1
|
|
|
|
// SSE4: #define __SSE4_1__ 1
|
|
|
|
// SSE4: #define __SSE4_2__ 1
|
|
|
|
// SSE4: #define __SSE_MATH__ 1
|
|
|
|
// SSE4: #define __SSE__ 1
|
|
|
|
// SSE4: #define __SSSE3__ 1
|
2009-05-07 05:07:50 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// 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 %s
|
2015-03-26 06:09:26 +08:00
|
|
|
|
|
|
|
// NOSSE4-NOT: #define __SSE4_1__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=core2 -msse4 -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE %s
|
2009-05-07 05:56:32 +08:00
|
|
|
|
2013-07-04 23:08:20 +08:00
|
|
|
// SSE-NOT: #define __SSE2_MATH__ 1
|
|
|
|
// SSE-NOT: #define __SSE2__ 1
|
|
|
|
// SSE-NOT: #define __SSE3__ 1
|
|
|
|
// SSE-NOT: #define __SSE4_1__ 1
|
|
|
|
// SSE-NOT: #define __SSE4_2__ 1
|
|
|
|
// SSE: #define __SSE_MATH__ 1
|
|
|
|
// SSE: #define __SSE__ 1
|
|
|
|
// SSE-NOT: #define __SSSE3__ 1
|
2009-05-07 05:07:50 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentium-m -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE2 %s
|
2009-05-07 05:07:50 +08:00
|
|
|
|
2013-07-04 23:08:20 +08:00
|
|
|
// SSE2: #define __SSE2_MATH__ 1
|
|
|
|
// SSE2: #define __SSE2__ 1
|
|
|
|
// SSE2-NOT: #define __SSE3__ 1
|
|
|
|
// SSE2-NOT: #define __SSE4_1__ 1
|
|
|
|
// SSE2-NOT: #define __SSE4_2__ 1
|
|
|
|
// SSE2: #define __SSE_MATH__ 1
|
|
|
|
// SSE2: #define __SSE__ 1
|
|
|
|
// SSE2-NOT: #define __SSSE3__ 1
|
2013-08-21 02:57:55 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// 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 %s
|
2013-08-21 02:57:55 +08:00
|
|
|
|
|
|
|
// AVX: #define __AVX__ 1
|
|
|
|
// AVX: #define __SSE2_MATH__ 1
|
|
|
|
// AVX: #define __SSE2__ 1
|
|
|
|
// AVX: #define __SSE3__ 1
|
|
|
|
// AVX: #define __SSE4_1__ 1
|
|
|
|
// AVX: #define __SSE4_2__ 1
|
|
|
|
// AVX: #define __SSE_MATH__ 1
|
|
|
|
// AVX: #define __SSE__ 1
|
|
|
|
// AVX: #define __SSSE3__ 1
|
2013-08-21 21:28:02 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// 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 %s
|
2013-08-21 21:28:02 +08:00
|
|
|
|
|
|
|
// SSE4A: #define __SSE2_MATH__ 1
|
|
|
|
// SSE4A: #define __SSE2__ 1
|
|
|
|
// SSE4A: #define __SSE3__ 1
|
|
|
|
// SSE4A: #define __SSE4A__ 1
|
|
|
|
// SSE4A: #define __SSE4_1__ 1
|
|
|
|
// SSE4A: #define __SSE4_2__ 1
|
|
|
|
// SSE4A: #define __SSE_MATH__ 1
|
|
|
|
// SSE4A: #define __SSE__ 1
|
|
|
|
// SSE4A: #define __SSSE3__ 1
|
2013-08-22 12:32:55 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512f -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512F %s
|
2013-08-22 12:32:55 +08:00
|
|
|
|
|
|
|
// AVX512F: #define __AVX2__ 1
|
|
|
|
// AVX512F: #define __AVX512F__ 1
|
|
|
|
// AVX512F: #define __AVX__ 1
|
|
|
|
// AVX512F: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512F: #define __SSE2__ 1
|
|
|
|
// AVX512F: #define __SSE3__ 1
|
|
|
|
// AVX512F: #define __SSE4_1__ 1
|
|
|
|
// AVX512F: #define __SSE4_2__ 1
|
|
|
|
// AVX512F: #define __SSE_MATH__ 1
|
|
|
|
// AVX512F: #define __SSE__ 1
|
|
|
|
// AVX512F: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512cd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512CD %s
|
2013-08-22 12:32:55 +08:00
|
|
|
|
|
|
|
// AVX512CD: #define __AVX2__ 1
|
|
|
|
// AVX512CD: #define __AVX512CD__ 1
|
|
|
|
// AVX512CD: #define __AVX512F__ 1
|
|
|
|
// AVX512CD: #define __AVX__ 1
|
|
|
|
// AVX512CD: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512CD: #define __SSE2__ 1
|
|
|
|
// AVX512CD: #define __SSE3__ 1
|
|
|
|
// AVX512CD: #define __SSE4_1__ 1
|
|
|
|
// AVX512CD: #define __SSE4_2__ 1
|
|
|
|
// AVX512CD: #define __SSE_MATH__ 1
|
|
|
|
// AVX512CD: #define __SSE__ 1
|
|
|
|
// AVX512CD: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512er -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512ER %s
|
2013-08-22 12:32:55 +08:00
|
|
|
|
|
|
|
// AVX512ER: #define __AVX2__ 1
|
|
|
|
// AVX512ER: #define __AVX512ER__ 1
|
|
|
|
// AVX512ER: #define __AVX512F__ 1
|
|
|
|
// AVX512ER: #define __AVX__ 1
|
|
|
|
// AVX512ER: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512ER: #define __SSE2__ 1
|
|
|
|
// AVX512ER: #define __SSE3__ 1
|
|
|
|
// AVX512ER: #define __SSE4_1__ 1
|
|
|
|
// AVX512ER: #define __SSE4_2__ 1
|
|
|
|
// AVX512ER: #define __SSE_MATH__ 1
|
|
|
|
// AVX512ER: #define __SSE__ 1
|
|
|
|
// AVX512ER: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512pf -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512PF %s
|
2013-08-22 12:32:55 +08:00
|
|
|
|
|
|
|
// AVX512PF: #define __AVX2__ 1
|
|
|
|
// AVX512PF: #define __AVX512F__ 1
|
|
|
|
// AVX512PF: #define __AVX512PF__ 1
|
|
|
|
// AVX512PF: #define __AVX__ 1
|
|
|
|
// AVX512PF: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512PF: #define __SSE2__ 1
|
|
|
|
// AVX512PF: #define __SSE3__ 1
|
|
|
|
// AVX512PF: #define __SSE4_1__ 1
|
|
|
|
// AVX512PF: #define __SSE4_2__ 1
|
|
|
|
// AVX512PF: #define __SSE_MATH__ 1
|
|
|
|
// AVX512PF: #define __SSE__ 1
|
|
|
|
// AVX512PF: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512dq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512DQ %s
|
2014-07-30 21:53:40 +08:00
|
|
|
|
|
|
|
// AVX512DQ: #define __AVX2__ 1
|
|
|
|
// AVX512DQ: #define __AVX512DQ__ 1
|
|
|
|
// AVX512DQ: #define __AVX512F__ 1
|
|
|
|
// AVX512DQ: #define __AVX__ 1
|
|
|
|
// AVX512DQ: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512DQ: #define __SSE2__ 1
|
|
|
|
// AVX512DQ: #define __SSE3__ 1
|
|
|
|
// AVX512DQ: #define __SSE4_1__ 1
|
|
|
|
// AVX512DQ: #define __SSE4_2__ 1
|
|
|
|
// AVX512DQ: #define __SSE_MATH__ 1
|
|
|
|
// AVX512DQ: #define __SSE__ 1
|
|
|
|
// AVX512DQ: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BW %s
|
2014-07-30 21:53:40 +08:00
|
|
|
|
|
|
|
// AVX512BW: #define __AVX2__ 1
|
|
|
|
// AVX512BW: #define __AVX512BW__ 1
|
|
|
|
// AVX512BW: #define __AVX512F__ 1
|
|
|
|
// AVX512BW: #define __AVX__ 1
|
|
|
|
// AVX512BW: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512BW: #define __SSE2__ 1
|
|
|
|
// AVX512BW: #define __SSE3__ 1
|
|
|
|
// AVX512BW: #define __SSE4_1__ 1
|
|
|
|
// AVX512BW: #define __SSE4_2__ 1
|
|
|
|
// AVX512BW: #define __SSE_MATH__ 1
|
|
|
|
// AVX512BW: #define __SSE__ 1
|
|
|
|
// AVX512BW: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vl -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VL %s
|
2014-07-30 21:53:40 +08:00
|
|
|
|
|
|
|
// AVX512VL: #define __AVX2__ 1
|
|
|
|
// AVX512VL: #define __AVX512F__ 1
|
|
|
|
// AVX512VL: #define __AVX512VL__ 1
|
|
|
|
// AVX512VL: #define __AVX__ 1
|
|
|
|
// AVX512VL: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512VL: #define __SSE2__ 1
|
|
|
|
// AVX512VL: #define __SSE3__ 1
|
|
|
|
// AVX512VL: #define __SSE4_1__ 1
|
|
|
|
// AVX512VL: #define __SSE4_2__ 1
|
|
|
|
// AVX512VL: #define __SSE_MATH__ 1
|
|
|
|
// AVX512VL: #define __SSE__ 1
|
|
|
|
// AVX512VL: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512pf -mno-avx512f -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512F2 %s
|
2013-08-22 12:32:55 +08:00
|
|
|
|
|
|
|
// AVX512F2: #define __AVX2__ 1
|
|
|
|
// AVX512F2-NOT: #define __AVX512F__ 1
|
|
|
|
// AVX512F2-NOT: #define __AVX512PF__ 1
|
|
|
|
// AVX512F2: #define __AVX__ 1
|
|
|
|
// AVX512F2: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512F2: #define __SSE2__ 1
|
|
|
|
// AVX512F2: #define __SSE3__ 1
|
|
|
|
// AVX512F2: #define __SSE4_1__ 1
|
|
|
|
// AVX512F2: #define __SSE4_2__ 1
|
|
|
|
// AVX512F2: #define __SSE_MATH__ 1
|
|
|
|
// AVX512F2: #define __SSE__ 1
|
|
|
|
// AVX512F2: #define __SSSE3__ 1
|
2013-09-10 14:55:47 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512ifma -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512IFMA %s
|
2016-02-29 14:51:38 +08:00
|
|
|
|
|
|
|
// AVX512IFMA: #define __AVX2__ 1
|
|
|
|
// AVX512IFMA: #define __AVX512F__ 1
|
|
|
|
// AVX512IFMA: #define __AVX512IFMA__ 1
|
|
|
|
// AVX512IFMA: #define __AVX__ 1
|
|
|
|
// AVX512IFMA: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512IFMA: #define __SSE2__ 1
|
|
|
|
// AVX512IFMA: #define __SSE3__ 1
|
|
|
|
// AVX512IFMA: #define __SSE4_1__ 1
|
|
|
|
// AVX512IFMA: #define __SSE4_2__ 1
|
|
|
|
// AVX512IFMA: #define __SSE_MATH__ 1
|
|
|
|
// AVX512IFMA: #define __SSE__ 1
|
|
|
|
// AVX512IFMA: #define __SSSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI %s
|
2016-02-29 14:51:38 +08:00
|
|
|
|
|
|
|
// AVX512VBMI: #define __AVX2__ 1
|
2016-11-09 12:51:03 +08:00
|
|
|
// AVX512VBMI: #define __AVX512BW__ 1
|
2016-02-29 14:51:38 +08:00
|
|
|
// AVX512VBMI: #define __AVX512F__ 1
|
|
|
|
// AVX512VBMI: #define __AVX512VBMI__ 1
|
|
|
|
// AVX512VBMI: #define __AVX__ 1
|
|
|
|
// AVX512VBMI: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512VBMI: #define __SSE2__ 1
|
|
|
|
// AVX512VBMI: #define __SSE3__ 1
|
|
|
|
// AVX512VBMI: #define __SSE4_1__ 1
|
|
|
|
// AVX512VBMI: #define __SSE4_2__ 1
|
|
|
|
// AVX512VBMI: #define __SSE_MATH__ 1
|
|
|
|
// AVX512VBMI: #define __SSE__ 1
|
|
|
|
// AVX512VBMI: #define __SSSE3__ 1
|
2016-11-09 12:51:03 +08:00
|
|
|
|
2017-12-27 18:01:00 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bitalg -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BITALG %s
|
|
|
|
|
|
|
|
// AVX512BITALG: #define __AVX2__ 1
|
|
|
|
// AVX512BITALG: #define __AVX512BITALG__ 1
|
|
|
|
// AVX512BITALG: #define __AVX512BW__ 1
|
|
|
|
// AVX512BITALG: #define __AVX512F__ 1
|
|
|
|
// AVX512BITALG: #define __AVX__ 1
|
|
|
|
// AVX512BITALG: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512BITALG: #define __SSE2__ 1
|
|
|
|
// AVX512BITALG: #define __SSE3__ 1
|
|
|
|
// AVX512BITALG: #define __SSE4_1__ 1
|
|
|
|
// AVX512BITALG: #define __SSE4_2__ 1
|
|
|
|
// AVX512BITALG: #define __SSE_MATH__ 1
|
|
|
|
// AVX512BITALG: #define __SSE__ 1
|
|
|
|
// AVX512BITALG: #define __SSSE3__ 1
|
|
|
|
|
|
|
|
|
2016-11-09 12:51:03 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMINOAVX512BW %s
|
|
|
|
|
|
|
|
// AVX512VBMINOAVX512BW-NOT: #define __AVX512BW__ 1
|
|
|
|
// AVX512VBMINOAVX512BW-NOT: #define __AVX512VBMI__ 1
|
2016-02-29 14:51:38 +08:00
|
|
|
|
[x86][icelake][vbmi2]
added vbmi2 feature recognition
added intrinsics support for vbmi2 instructions
_mm[128,256,512]_mask[z]_compress_epi[16,32]
_mm[128,256,512]_mask_compressstoreu_epi[16,32]
_mm[128,256,512]_mask[z]_expand_epi[16,32]
_mm[128,256,512]_mask[z]_expandloadu_epi[16,32]
_mm[128,256,512]_mask[z]_sh[l,r]di_epi[16,32,64]
_mm[128,256,512]_mask_sh[l,r]dv_epi[16,32,64]
matching a similar work on the backend (D40206)
Differential Revision: https://reviews.llvm.org/D41557
llvm-svn: 321487
2017-12-27 19:25:07 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI2 %s
|
|
|
|
|
|
|
|
// AVX512VBMI2: #define __AVX2__ 1
|
|
|
|
// AVX512VBMI2: #define __AVX512BW__ 1
|
|
|
|
// AVX512VBMI2: #define __AVX512F__ 1
|
|
|
|
// AVX512VBMI2: #define __AVX512VBMI2__ 1
|
|
|
|
// AVX512VBMI2: #define __AVX__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE2_MATH__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE2__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE3__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE4_1__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE4_2__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE_MATH__ 1
|
|
|
|
// AVX512VBMI2: #define __SSE__ 1
|
|
|
|
// AVX512VBMI2: #define __SSSE3__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512vbmi2 -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512VBMI2NOAVX512BW %s
|
|
|
|
|
|
|
|
// AVX512VBMI2NOAVX512BW-NOT: #define __AVX512BW__ 1
|
|
|
|
// AVX512VBMI2NOAVX512BW-NOT: #define __AVX512VBMI2__ 1
|
|
|
|
|
2017-12-27 18:01:00 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bitalg -mno-avx512bw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BITALGNOAVX512BW %s
|
|
|
|
|
|
|
|
// AVX512BITALGNOAVX512BW-NOT: #define __AVX512BITALG__ 1
|
|
|
|
// AVX512BITALGNOAVX512BW-NOT: #define __AVX512BW__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -msse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSE42POPCNT %s
|
2013-09-10 14:55:47 +08:00
|
|
|
|
|
|
|
// SSE42POPCNT: #define __POPCNT__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// 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 %s
|
2013-09-10 14:55:47 +08:00
|
|
|
|
|
|
|
// SSE42NOPOPCNT-NOT: #define __POPCNT__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// 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 %s
|
2013-09-10 14:55:47 +08:00
|
|
|
|
|
|
|
// NOSSE42POPCNT: #define __POPCNT__ 1
|
2013-09-11 14:48:53 +08:00
|
|
|
|
2020-06-29 02:06:40 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=nehalem -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CPUPOPCNT %s
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=silvermont -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CPUPOPCNT %s
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=knl -mno-sse4.2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CPUPOPCNT %s
|
|
|
|
|
|
|
|
// CPUPOPCNT: #define __POPCNT__ 1
|
|
|
|
|
2019-11-07 01:58:51 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentium -msse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSEMMX %s
|
2013-09-11 14:48:53 +08:00
|
|
|
|
|
|
|
// SSEMMX: #define __MMX__ 1
|
|
|
|
|
2019-11-07 01:58:51 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentium -msse -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSENOSSEMMX %s
|
2013-09-11 14:48:53 +08:00
|
|
|
|
|
|
|
// SSENOSSEMMX-NOT: #define __MMX__ 1
|
|
|
|
|
2019-11-07 01:58:51 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentium -msse -mno-mmx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SSENOMMX %s
|
2013-09-11 14:48:53 +08:00
|
|
|
|
|
|
|
// SSENOMMX-NOT: #define __MMX__ 1
|
2013-09-16 12:54:13 +08:00
|
|
|
|
2019-11-07 01:58:51 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentium3 -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=knl -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=btver1 -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=znver1 -mno-sse -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MARCHMMXNOSSE %s
|
|
|
|
|
|
|
|
// MARCHMMXNOSSE: #define __MMX__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mf16c -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=F16C %s
|
2013-09-16 12:54:13 +08:00
|
|
|
|
|
|
|
// F16C: #define __AVX__ 1
|
|
|
|
// F16C: #define __F16C__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mf16c -mno-avx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=F16CNOAVX %s
|
2013-09-16 12:54:13 +08:00
|
|
|
|
|
|
|
// F16CNOAVX-NOT: #define __AVX__ 1
|
|
|
|
// F16CNOAVX-NOT: #define __F16C__ 1
|
2013-09-19 08:01:05 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mpclmul -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PCLMUL %s
|
2013-09-19 08:01:05 +08:00
|
|
|
|
|
|
|
// PCLMUL: #define __PCLMUL__ 1
|
|
|
|
// PCLMUL: #define __SSE2__ 1
|
|
|
|
// PCLMUL-NOT: #define __SSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mpclmul -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PCLMULNOSSE2 %s
|
2013-09-19 08:01:05 +08:00
|
|
|
|
|
|
|
// PCLMULNOSSE2-NOT: #define __PCLMUL__ 1
|
|
|
|
// PCLMULNOSSE2-NOT: #define __SSE2__ 1
|
|
|
|
// PCLMULNOSSE2-NOT: #define __SSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -maes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AES %s
|
2013-09-19 08:01:05 +08:00
|
|
|
|
|
|
|
// AES: #define __AES__ 1
|
|
|
|
// AES: #define __SSE2__ 1
|
|
|
|
// AES-NOT: #define __SSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -maes -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AESNOSSE2 %s
|
2013-09-19 08:01:05 +08:00
|
|
|
|
|
|
|
// AESNOSSE2-NOT: #define __AES__ 1
|
|
|
|
// AESNOSSE2-NOT: #define __SSE2__ 1
|
|
|
|
// AESNOSSE2-NOT: #define __SSE3__ 1
|
2013-09-19 21:22:04 +08:00
|
|
|
|
2017-05-09 01:25:48 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mlwp -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=LWP %s
|
|
|
|
|
|
|
|
// LWP: #define __LWP__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=bdver1 -mno-lwp -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOLWP %s
|
|
|
|
|
|
|
|
// NOLWP-NOT: #define __LWP__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHA %s
|
2013-09-19 21:22:04 +08:00
|
|
|
|
|
|
|
// SHA: #define __SHA__ 1
|
|
|
|
// SHA: #define __SSE2__ 1
|
|
|
|
// SHA-NOT: #define __SSE3__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -mno-sha -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHANOSHA %s
|
2013-09-19 21:22:04 +08:00
|
|
|
|
|
|
|
// SHANOSHA-NOT: #define __SHA__ 1
|
|
|
|
// SHANOSHA-NOT: #define __SSE2__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -msha -mno-sse2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHANOSSE2 %s
|
2013-09-19 21:22:04 +08:00
|
|
|
|
2014-02-16 15:28:32 +08:00
|
|
|
// SHANOSSE2-NOT: #define __SHA__ 1
|
|
|
|
// SHANOSSE2-NOT: #define __SSE2__ 1
|
|
|
|
// SHANOSSE2-NOT: #define __SSE3__ 1
|
2013-09-25 03:00:58 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mtbm -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=TBM %s
|
2013-09-25 03:00:58 +08:00
|
|
|
|
|
|
|
// TBM: #define __TBM__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=bdver2 -mno-tbm -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOTBM %s
|
2013-09-25 03:00:58 +08:00
|
|
|
|
|
|
|
// NOTBM-NOT: #define __TBM__ 1
|
2013-10-06 04:14:27 +08:00
|
|
|
|
2019-03-14 13:45:42 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=pentiumpro -mcx16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=MCX16-32 %s
|
2013-10-06 04:14:27 +08:00
|
|
|
|
2019-03-14 13:45:42 +08:00
|
|
|
// MCX16-32-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1
|
|
|
|
|
|
|
|
// 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 %s
|
|
|
|
|
|
|
|
// MCX16-64: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1
|
2013-10-17 03:07:02 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mprfchw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=PRFCHW %s
|
2013-10-17 03:07:02 +08:00
|
|
|
|
|
|
|
// PRFCHW: #define __PRFCHW__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=btver2 -mno-prfchw -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOPRFCHW %s
|
2013-10-17 03:07:02 +08:00
|
|
|
|
|
|
|
// NOPRFCHW-NOT: #define __PRFCHW__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -m3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=3DNOWPRFCHW %s
|
2013-10-17 03:07:02 +08:00
|
|
|
|
2020-06-26 02:45:09 +08:00
|
|
|
// 3DNOWPRFCHW: #define __3dNOW__ 1
|
|
|
|
// 3DNOWPRFCHW-NOT: #define __PRFCHW__ 1
|
2013-10-17 03:07:02 +08:00
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-prfchw -m3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=3DNOWNOPRFCHW %s
|
2013-10-17 03:07:02 +08:00
|
|
|
|
2020-06-26 02:45:09 +08:00
|
|
|
// 3DNOWNOPRFCHW: #define __3dNOW__ 1
|
2013-10-17 03:07:02 +08:00
|
|
|
// 3DNOWNOPRFCHW-NOT: #define __PRFCHW__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mprfchw -mno-3dnow -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NO3DNOWPRFCHW %s
|
2013-10-17 03:07:02 +08:00
|
|
|
|
|
|
|
// NO3DNOWPRFCHW: #define __PRFCHW__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -madx -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=ADX %s
|
2014-09-19 17:53:48 +08:00
|
|
|
|
|
|
|
// ADX: #define __ADX__ 1
|
|
|
|
|
2018-01-27 02:31:14 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -mshstk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SHSTK %s
|
2017-11-26 20:34:54 +08:00
|
|
|
|
2018-01-27 02:31:14 +08:00
|
|
|
// SHSTK: #define __SHSTK__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mrdseed -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=RDSEED %s
|
2014-09-19 17:53:48 +08:00
|
|
|
|
|
|
|
// RDSEED: #define __RDSEED__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mxsave -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVE %s
|
2015-10-15 13:23:38 +08:00
|
|
|
|
|
|
|
// XSAVE: #define __XSAVE__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mxsaveopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVEOPT %s
|
2015-10-15 13:23:38 +08:00
|
|
|
|
|
|
|
// XSAVEOPT: #define __XSAVEOPT__ 1
|
|
|
|
// XSAVEOPT: #define __XSAVE__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mxsavec -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVEC %s
|
2015-10-15 13:23:38 +08:00
|
|
|
|
|
|
|
// XSAVEC: #define __XSAVEC__ 1
|
|
|
|
// XSAVEC: #define __XSAVE__ 1
|
|
|
|
|
2016-04-02 05:33:20 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mxsaves -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=XSAVES %s
|
2015-10-15 13:23:38 +08:00
|
|
|
|
|
|
|
// XSAVES: #define __XSAVES__ 1
|
|
|
|
// XSAVES: #define __XSAVE__ 1
|
|
|
|
|
2020-06-26 15:14:58 +08:00
|
|
|
// 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 %s
|
2015-10-15 13:23:38 +08:00
|
|
|
|
2020-06-26 15:14:58 +08:00
|
|
|
// NOXSAVE-NOT: #define __XSAVEC__ 1
|
2015-10-15 13:23:38 +08:00
|
|
|
// NOXSAVE-NOT: #define __XSAVEOPT__ 1
|
2020-06-26 15:14:58 +08:00
|
|
|
// NOXSAVE-NOT: #define __XSAVES__ 1
|
2015-10-15 13:23:38 +08:00
|
|
|
// NOXSAVE-NOT: #define __XSAVE__ 1
|
2017-02-08 14:48:58 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mclflushopt -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=CLFLUSHOPT %s
|
|
|
|
|
|
|
|
// CLFLUSHOPT: #define __CLFLUSHOPT__ 1
|
2017-12-27 16:16:54 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mvaes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VAES %s
|
|
|
|
|
|
|
|
// VAES: #define __AES__ 1
|
|
|
|
// VAES: #define __VAES__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mvaes -mno-aes -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VAESNOAES %s
|
|
|
|
|
|
|
|
// VAESNOAES-NOT: #define __AES__ 1
|
|
|
|
// VAESNOAES-NOT: #define __VAES__ 1
|
|
|
|
|
2017-12-27 16:37:47 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mgfni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=GFNI %s
|
|
|
|
|
|
|
|
// GFNI: #define __GFNI__ 1
|
|
|
|
// GFNI: #define __SSE2__ 1
|
|
|
|
|
2017-12-27 17:00:31 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mvpclmulqdq -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VPCLMULQDQ %s
|
|
|
|
|
|
|
|
// VPCLMULQDQ: #define __PCLMUL__ 1
|
|
|
|
// VPCLMULQDQ: #define __VPCLMULQDQ__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mvpclmulqdq -mno-pclmul -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=VPCLMULQDQNOPCLMUL %s
|
|
|
|
// VPCLMULQDQNOPCLMUL-NOT: #define __PCLMUL__ 1
|
|
|
|
// VPCLMULQDQNOPCLMUL-NOT: #define __VPCLMULQDQ__ 1
|
|
|
|
|
2018-01-21 02:36:52 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mrdpid -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=RDPID %s
|
|
|
|
|
|
|
|
// RDPID: #define __RDPID__ 1
|
Enable intrinsics of AVX512_BF16, which are supported for BFLOAT16 in Cooper Lake
Summary:
1. Enable infrastructure of AVX512_BF16, which is supported for BFLOAT16 in Cooper Lake;
2. Enable intrinsics for VCVTNE2PS2BF16, VCVTNEPS2BF16 and DPBF16PS instructions, which are Vector Neural Network Instructions supporting BFLOAT16 inputs and conversion instructions from IEEE single precision.
For more details about BF16 intrinsic, please refer to the latest ISE document: https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference
Patch by LiuTianle
Reviewers: craig.topper, smaslov, LuoYuanke, wxiao3, annita.zhang, spatel, RKSimon
Reviewed By: craig.topper
Subscribers: mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60552
llvm-svn: 360018
2019-05-06 16:25:11 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512bf16 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVX512BF16 %s
|
|
|
|
|
|
|
|
// AVX512BF16: #define __AVX512BF16__ 1
|
|
|
|
// AVX512BF16: #define __AVX512BW__ 1
|
2019-05-17 02:28:17 +08:00
|
|
|
// AVX512BF16-NOT: #define __AVX512VL__ 1
|
Enable intrinsics of AVX512_BF16, which are supported for BFLOAT16 in Cooper Lake
Summary:
1. Enable infrastructure of AVX512_BF16, which is supported for BFLOAT16 in Cooper Lake;
2. Enable intrinsics for VCVTNE2PS2BF16, VCVTNEPS2BF16 and DPBF16PS instructions, which are Vector Neural Network Instructions supporting BFLOAT16 inputs and conversion instructions from IEEE single precision.
For more details about BF16 intrinsic, please refer to the latest ISE document: https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference
Patch by LiuTianle
Reviewers: craig.topper, smaslov, LuoYuanke, wxiao3, annita.zhang, spatel, RKSimon
Reviewed By: craig.topper
Subscribers: mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60552
llvm-svn: 360018
2019-05-06 16:25:11 +08:00
|
|
|
|
|
|
|
// 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 %s
|
|
|
|
|
|
|
|
// AVX512BF16_NOAVX512BW-NOT: #define __AVX512BF16__ 1
|
|
|
|
|
|
|
|
// 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 %s
|
|
|
|
|
2019-05-17 02:28:17 +08:00
|
|
|
// AVX512BF16_NOAVX512VL: #define __AVX512BF16__ 1
|
Enable intrinsics of AVX512_BF16, which are supported for BFLOAT16 in Cooper Lake
Summary:
1. Enable infrastructure of AVX512_BF16, which is supported for BFLOAT16 in Cooper Lake;
2. Enable intrinsics for VCVTNE2PS2BF16, VCVTNEPS2BF16 and DPBF16PS instructions, which are Vector Neural Network Instructions supporting BFLOAT16 inputs and conversion instructions from IEEE single precision.
For more details about BF16 intrinsic, please refer to the latest ISE document: https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference
Patch by LiuTianle
Reviewers: craig.topper, smaslov, LuoYuanke, wxiao3, annita.zhang, spatel, RKSimon
Reviewed By: craig.topper
Subscribers: mgorny, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60552
llvm-svn: 360018
2019-05-06 16:25:11 +08:00
|
|
|
|
2019-05-31 14:09:35 +08:00
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mavx512vp2intersect -x c -E -dM -o - %s | FileCheck -check-prefix=VP2INTERSECT %s
|
|
|
|
|
|
|
|
// VP2INTERSECT: #define __AVX512F__ 1
|
|
|
|
// VP2INTERSECT: #define __AVX512VP2INTERSECT__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-avx512vp2intersect -x c -E -dM -o - %s | FileCheck -check-prefix=NOVP2INTERSECT %s
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mavx512vp2intersect -mno-avx512f -x c -E -dM -o - %s | FileCheck -check-prefix=NOVP2INTERSECT %s
|
|
|
|
|
|
|
|
// NOVP2INTERSECT-NOT: #define __AVX512VP2INTERSECT__ 1
|
|
|
|
|
2020-09-30 18:01:15 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mkl -x c -E -dM -o - %s | FileCheck -check-prefix=KEYLOCKER %s
|
|
|
|
// KEYLOCKER: #define __KL__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-kl -x c -E -dM -o - %s | FileCheck -check-prefix=NOKEYLOCKER %s
|
|
|
|
// NOKEYLOCKER-NOT: #define __KL__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mwidekl -x c -E -dM -o - %s | FileCheck -check-prefix=KEYLOCKERW %s
|
|
|
|
// KEYLOCKERW: #define __KL__ 1
|
|
|
|
// KEYLOCKERW: #define __WIDEKL__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-widekl -x c -E -dM -o - %s | FileCheck -check-prefix=NOKEYLOCKERW %s
|
|
|
|
// NOKEYLOCKERW-NOT: #define __KL__ 1
|
|
|
|
// NOKEYLOCKERW-NOT: #define __WIDEKL__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mwidekl -mno-kl -x c -E -dM -o - %s | FileCheck -check-prefix=NOKEYLOCKERW2 %s
|
|
|
|
// NOKEYLOCKERW2-NOT: #define __KL__ 1
|
|
|
|
// NOKEYLOCKERW2-NOT: #define __WIDEKL__ 1
|
|
|
|
|
2019-06-06 16:28:42 +08:00
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -menqcmd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=ENQCMD %s
|
|
|
|
|
|
|
|
// ENQCMD: #define __ENQCMD__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-enqcmd -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOENQCMD %s
|
|
|
|
|
|
|
|
// NOENQCMD-NOT: #define __ENQCMD__ 1
|
2020-04-02 16:15:34 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mserialize -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=SERIALIZE %s
|
|
|
|
|
|
|
|
// SERIALIZE: #define __SERIALIZE__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-serialize -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOSERIALIZE %s
|
|
|
|
|
|
|
|
// NOSERIALIZE-NOT: #define __SERIALIZE__ 1
|
2020-04-09 13:15:42 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mtsxldtrk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=TSXLDTRK %s
|
|
|
|
|
|
|
|
// TSXLDTRK: #define __TSXLDTRK__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-tsxldtrk -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOTSXLDTRK %s
|
|
|
|
|
|
|
|
// NOTSXLDTRK-NOT: #define __TSXLDTRK__ 1
|
2020-10-13 08:42:46 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mhreset -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=HRESET %s
|
|
|
|
|
|
|
|
// HRESET: #define __HRESET__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-hreset -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOHRESET %s
|
|
|
|
|
|
|
|
// NOHRESET-NOT: #define __HRESET__ 1
|
2020-10-22 16:46:07 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -muintr -x c -E -dM -o - %s | FileCheck -check-prefix=UINTR %s
|
|
|
|
|
|
|
|
// UINTR: #define __UINTR__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-uintr -x c -E -dM -o - %s | FileCheck -check-prefix=NOUINTR %s
|
|
|
|
|
|
|
|
// NOUINTR-NOT: #define __UINTR__ 1
|
2020-10-30 12:58:05 +08:00
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNI %s
|
|
|
|
|
|
|
|
// AVXVNNI: #define __AVX2__ 1
|
|
|
|
// AVXVNNI: #define __AVXVNNI__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mno-avxvnni -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=NOAVXVNNI %s
|
|
|
|
|
|
|
|
// NOAVXVNNI-NOT: #define __AVXVNNI__ 1
|
|
|
|
|
|
|
|
// RUN: %clang -target i386-unknown-unknown -march=atom -mavxvnni -mno-avx2 -x c -E -dM -o - %s | FileCheck -match-full-lines --check-prefix=AVXVNNINOAVX2 %s
|
|
|
|
|
|
|
|
// AVXVNNINOAVX2-NOT: #define __AVX2__ 1
|
|
|
|
// AVXVNNINOAVX2-NOT: #define __AVXVNNI__ 1
|