summaryrefslogtreecommitdiffstats
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
commitd114def3d67dd95ae4ba9c3fdeb5daa8252a690f (patch)
tree0b55560e337a6ef97a33fb66b5af9d55eac9810f
parentb57e4a1bc6054a5495d6671f108914108852105b (diff)
downloadbcm5719-llvm-d114def3d67dd95ae4ba9c3fdeb5daa8252a690f.tar.gz
bcm5719-llvm-d114def3d67dd95ae4ba9c3fdeb5daa8252a690f.zip
X86: Add a description for AMD bdver3 aka Steamroller.
This is just bdver2 + FSGSBase. llvm-svn: 193984
-rw-r--r--llvm/lib/Support/Host.cpp8
-rw-r--r--llvm/lib/Target/X86/X86.td8
2 files changed, 13 insertions, 3 deletions
diff --git a/llvm/lib/Support/Host.cpp b/llvm/lib/Support/Host.cpp
index 6a5d4d28a91..380df6b345f 100644
--- a/llvm/lib/Support/Host.cpp
+++ b/llvm/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/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td
index b41a9c96082..65c5552de2a 100644
--- a/llvm/lib/Target/X86/X86.td
+++ b/llvm/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]>;
OpenPOWER on IntegriCloud