From: Craig Topper Date: Thu, 22 Aug 2013 04:32:55 +0000 (+0000) Subject: Add test cases for avx512 feature flags. Fix typo in avx512pf options. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3613c004749f8976452e1ed2138d4aeb123b35db;p=clang Add test cases for avx512 feature flags. Fix typo in avx512pf options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188984 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 5bb63cb522..33a14a4b1b 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -971,7 +971,7 @@ def mno_avx2 : Flag<["-"], "mno-avx2">, Group; def mno_avx512f : Flag<["-"], "mno-avx512f">, Group; def mno_avx512cd : Flag<["-"], "mno-avx512cd">, Group; def mno_avx512er : Flag<["-"], "mno-avx512er">, Group; -def mno_avx512pd : Flag<["-"], "mno-avx512pd">, Group; +def mno_avx512pf : Flag<["-"], "mno-avx512pf">, Group; def mno_pclmul : Flag<["-"], "mno-pclmul">, Group; def mno_lzcnt : Flag<["-"], "mno-lzcnt">, Group; def mno_rdrnd : Flag<["-"], "mno-rdrnd">, Group; @@ -1021,7 +1021,7 @@ def mavx2 : Flag<["-"], "mavx2">, Group; def mavx512f : Flag<["-"], "mavx512f">, Group; def mavx512cd : Flag<["-"], "mavx512cd">, Group; def mavx512er : Flag<["-"], "mavx512er">, Group; -def mavx512pd : Flag<["-"], "mavx512pd">, Group; +def mavx512pf : Flag<["-"], "mavx512pf">, Group; def mpclmul : Flag<["-"], "mpclmul">, Group; def mlzcnt : Flag<["-"], "mlzcnt">, Group; def mrdrnd : Flag<["-"], "mrdrnd">, Group; diff --git a/test/Preprocessor/x86_target_features.c b/test/Preprocessor/x86_target_features.c index 7d6a6d8a7c..d6ddc01b53 100644 --- a/test/Preprocessor/x86_target_features.c +++ b/test/Preprocessor/x86_target_features.c @@ -43,7 +43,6 @@ // AVX: #define __SSE__ 1 // AVX: #define __SSSE3__ 1 - // RUN: %clang -target i386-unknown-unknown -march=pentium-m -mxop -mno-avx -x c -E -dM -o - %s | FileCheck --check-prefix=SSE4A %s // SSE4A: #define __SSE2_MATH__ 1 @@ -55,3 +54,77 @@ // SSE4A: #define __SSE_MATH__ 1 // SSE4A: #define __SSE__ 1 // SSE4A: #define __SSSE3__ 1 + +// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512f -x c -E -dM -o - %s | FileCheck --check-prefix=AVX512F %s + +// 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 + +// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512cd -x c -E -dM -o - %s | FileCheck --check-prefix=AVX512CD %s + +// 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 + +// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512er -x c -E -dM -o - %s | FileCheck --check-prefix=AVX512ER %s + +// 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 + +// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512pf -x c -E -dM -o - %s | FileCheck --check-prefix=AVX512PF %s + +// 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 + +// RUN: %clang -target i386-unknown-unknown -march=atom -mavx512pf -mno-avx512f -x c -E -dM -o - %s | FileCheck --check-prefix=AVX512F2 %s + +// 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