diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-02-29 06:51:38 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-02-29 06:51:38 +0000 |
commit | b4f83a00a937273abb4aaf589d87e859bd5f5285 (patch) | |
tree | ad6e0260a992bbe54b0a85952ddf9a9f2a0d1eec /clang/lib/Basic/Targets.cpp | |
parent | 840927e074f40be0eecaf38542d9b57810952564 (diff) | |
download | bcm5719-llvm-b4f83a00a937273abb4aaf589d87e859bd5f5285.tar.gz bcm5719-llvm-b4f83a00a937273abb4aaf589d87e859bd5f5285.zip |
[X86] Disabling avx512f should also disable avx512vbmi and avx512ifma. Enabling avx512vbmi or avx512ifma should enable avx512f. Add command line switches and header defines for avx512ifma and avx512vbmi.
llvm-svn: 262201
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 8f5fd1a1b6e..861a1e66568 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -2891,7 +2891,8 @@ void X86TargetInfo::setSSELevel(llvm::StringMap<bool> &Features, case AVX512F: Features["avx512f"] = Features["avx512cd"] = Features["avx512er"] = Features["avx512pf"] = Features["avx512dq"] = Features["avx512bw"] = - Features["avx512vl"] = false; + Features["avx512vl"] = Features["avx512vbmi"] = + Features["avx512ifma"] = false; } } @@ -2989,8 +2990,9 @@ void X86TargetInfo::setFeatureEnabledImpl(llvm::StringMap<bool> &Features, setSSELevel(Features, AVX2, Enabled); } else if (Name == "avx512f") { setSSELevel(Features, AVX512F, Enabled); - } else if (Name == "avx512cd" || Name == "avx512er" || Name == "avx512pf" - || Name == "avx512dq" || Name == "avx512bw" || Name == "avx512vl") { + } else if (Name == "avx512cd" || Name == "avx512er" || Name == "avx512pf" || + Name == "avx512dq" || Name == "avx512bw" || Name == "avx512vl" || + Name == "avx512vbmi" || Name == "avx512ifma") { if (Enabled) setSSELevel(Features, AVX512F, Enabled); } else if (Name == "fma") { @@ -3398,6 +3400,10 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts, Builder.defineMacro("__AVX512BW__"); if (HasAVX512VL) Builder.defineMacro("__AVX512VL__"); + if (HasAVX512VBMI) + Builder.defineMacro("__AVX512VBMI__"); + if (HasAVX512IFMA) + Builder.defineMacro("__AVX512IFMA__"); if (HasSHA) Builder.defineMacro("__SHA__"); |