summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-05-03 10:20:08 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-05-03 10:20:08 +0000
commitb9548d8ee30f880a237ea46430478b95f2ef4772 (patch)
tree37f310d8656dcf7420ae7f9a0ac7c9b8bd4d2997
parent555e8f606f5c7d1c5e90355b6d3e1e2b0e87dd2b (diff)
downloadllvm-b9548d8ee30f880a237ea46430478b95f2ef4772.tar.gz
llvm-b9548d8ee30f880a237ea46430478b95f2ef4772.tar.bz2
llvm-b9548d8ee30f880a237ea46430478b95f2ef4772.tar.xz
X86: Add target description for btver2; make autodetection logic aware of AVX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181005 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Support/Host.cpp11
-rw-r--r--lib/Target/X86/X86.td7
2 files changed, 14 insertions, 4 deletions
diff --git a/lib/Support/Host.cpp b/lib/Support/Host.cpp
index 27c99c89ae..8657abc1be 100644
--- a/lib/Support/Host.cpp
+++ b/lib/Support/Host.cpp
@@ -355,10 +355,15 @@ std::string sys::getHostCPUName() {
case 20:
return "btver1";
case 21:
- if (Model <= 15)
- return "bdver1";
- else if (Model <= 31)
+ if (!HasAVX) // If the OS doesn't support AVX provide a sane fallback.
+ return "btver1";
+ if (Model > 15 && Model <= 31)
return "bdver2";
+ return "bdver1";
+ case 22:
+ if (!HasAVX) // If the OS doesn't support AVX provide a sane fallback.
+ return "btver1";
+ return "btver2";
default:
return "generic";
}
diff --git a/lib/Target/X86/X86.td b/lib/Target/X86/X86.td
index 87bb68d857..c865500deb 100644
--- a/lib/Target/X86/X86.td
+++ b/lib/Target/X86/X86.td
@@ -255,11 +255,16 @@ def : Proc<"amdfam10", [FeatureSSE4A,
// Bobcat
def : Proc<"btver1", [FeatureSSSE3, FeatureSSE4A, FeatureCMPXCHG16B,
FeatureLZCNT, FeaturePOPCNT]>;
+// Jaguar
+def : Proc<"btver2", [FeatureAVX, FeatureSSE4A, FeatureCMPXCHG16B,
+ FeatureAES, FeaturePCLMUL, FeatureBMI,
+ FeatureF16C, FeatureMOVBE, FeatureLZCNT,
+ FeaturePOPCNT]>;
// Bulldozer
def : Proc<"bdver1", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
FeatureAES, FeaturePCLMUL,
FeatureLZCNT, FeaturePOPCNT]>;
-// Enhanced Bulldozer
+// Piledriver
def : Proc<"bdver2", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
FeatureAES, FeaturePCLMUL,
FeatureF16C, FeatureLZCNT,