summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-11-04 10:29:20 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-11-04 10:29:20 +0000
commit00e3be6134aece98b0156ee9d0587fc70e84298b (patch)
tree4524fa321b1716abfc6fc1573fc08c14607b4346 /lib
parentfa0da86a59c502bfbfa01d3d5f694f18f6e8a717 (diff)
downloadllvm-00e3be6134aece98b0156ee9d0587fc70e84298b.tar.gz
llvm-00e3be6134aece98b0156ee9d0587fc70e84298b.tar.bz2
llvm-00e3be6134aece98b0156ee9d0587fc70e84298b.tar.xz
X86: Add a description for AMD bdver3 aka Steamroller.
This is just bdver2 + FSGSBase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193984 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Support/Host.cpp8
-rw-r--r--lib/Target/X86/X86.td8
2 files changed, 13 insertions, 3 deletions
diff --git a/lib/Support/Host.cpp b/lib/Support/Host.cpp
index 6a5d4d28a9..380df6b345 100644
--- a/lib/Support/Host.cpp
+++ b/lib/Support/Host.cpp
@@ -348,9 +348,11 @@ std::string sys::getHostCPUName() {
case 21:
if (!HasAVX) // If the OS doesn't support AVX provide a sane fallback.
return "btver1";
- if (Model > 15 && Model <= 31)
- return "bdver2";
- return "bdver1";
+ if (Model >= 0x30)
+ return "bdver3"; // 30h-3Fh: Steamroller
+ if (Model >= 0x10)
+ return "bdver2"; // 10h-1Fh: Piledriver
+ return "bdver1"; // 00h-0Fh: Bulldozer
case 22:
if (!HasAVX) // If the OS doesn't support AVX provide a sane fallback.
return "btver1";
diff --git a/lib/Target/X86/X86.td b/lib/Target/X86/X86.td
index b41a9c9608..65c5552de2 100644
--- a/lib/Target/X86/X86.td
+++ b/lib/Target/X86/X86.td
@@ -308,6 +308,14 @@ def : Proc<"bdver2", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
FeatureF16C, FeatureLZCNT,
FeaturePOPCNT, FeatureBMI, FeatureTBM,
FeatureFMA]>;
+
+// Steamroller
+def : Proc<"bdver3", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
+ FeatureAES, FeaturePRFCHW, FeaturePCLMUL,
+ FeatureF16C, FeatureLZCNT,
+ FeaturePOPCNT, FeatureBMI, FeatureTBM,
+ FeatureFMA, FeatureFSGSBase]>;
+
def : Proc<"geode", [Feature3DNowA]>;
def : Proc<"winchip-c6", [FeatureMMX]>;