summaryrefslogtreecommitdiff
path: root/contrib/llvm/tools/clang/lib
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-01-28 16:10:40 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-01-28 16:10:40 +0000
commit48d95fd235a1add63da3e3571fbcf5da53170364 (patch)
tree5de1eb7ce96d4b2eaf5581575580ebf69480b658 /contrib/llvm/tools/clang/lib
parent2b4c1a7ffccb6187f14d9aa30dd1e6759c36f26a (diff)
Notes
Diffstat (limited to 'contrib/llvm/tools/clang/lib')
-rw-r--r--contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp b/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp
index 70433ff066fc..0febb98d4684 100644
--- a/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp
+++ b/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp
@@ -409,7 +409,7 @@ void X86TargetInfo::setSSELevel(llvm::StringMap<bool> &Features,
if (Enabled) {
switch (Level) {
case AVX512F:
- Features["avx512f"] = true;
+ Features["avx512f"] = Features["fma"] = Features["f16c"] = true;
LLVM_FALLTHROUGH;
case AVX2:
Features["avx2"] = true;
@@ -623,6 +623,8 @@ void X86TargetInfo::setFeatureEnabledImpl(llvm::StringMap<bool> &Features,
} else if (Name == "fma") {
if (Enabled)
setSSELevel(Features, AVX, Enabled);
+ else
+ setSSELevel(Features, AVX512F, Enabled);
} else if (Name == "fma4") {
setXOPLevel(Features, FMA4, Enabled);
} else if (Name == "xop") {
@@ -632,6 +634,8 @@ void X86TargetInfo::setFeatureEnabledImpl(llvm::StringMap<bool> &Features,
} else if (Name == "f16c") {
if (Enabled)
setSSELevel(Features, AVX, Enabled);
+ else
+ setSSELevel(Features, AVX512F, Enabled);
} else if (Name == "sha") {
if (Enabled)
setSSELevel(Features, SSE2, Enabled);