summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2014-05-02 15:47:07 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2014-05-02 15:47:07 +0000
commit6004573ecfbfe67e23a73fd9ce11aafb024a500f (patch)
tree9135076f40d2e7f7cf8d51a0a34f9eceeedba714
parent10b1502733995cc6a7be8399d1733ccf3e266b9c (diff)
downloadbcm5719-llvm-6004573ecfbfe67e23a73fd9ce11aafb024a500f.tar.gz
bcm5719-llvm-6004573ecfbfe67e23a73fd9ce11aafb024a500f.zip
Add a description for AMD's bdver4 (aka Excavator).
This is just bdver3 + AVX2 + BMI2. llvm-svn: 207847
-rw-r--r--llvm/lib/Support/Host.cpp2
-rw-r--r--llvm/lib/Target/X86/X86.td7
2 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Support/Host.cpp b/llvm/lib/Support/Host.cpp
index dc90c8cc4ae..83f25463a14 100644
--- a/llvm/lib/Support/Host.cpp
+++ b/llvm/lib/Support/Host.cpp
@@ -435,6 +435,8 @@ StringRef sys::getHostCPUName() {
case 21:
if (!HasAVX) // If the OS doesn't support AVX provide a sane fallback.
return "btver1";
+ if (Model >= 0x50)
+ return "bdver4"; // 50h-6Fh: Excavator
if (Model >= 0x30)
return "bdver3"; // 30h-3Fh: Steamroller
if (Model >= 0x10)
diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td
index 78edcf04788..423c2c973d0 100644
--- a/llvm/lib/Target/X86/X86.td
+++ b/llvm/lib/Target/X86/X86.td
@@ -329,6 +329,13 @@ def : Proc<"bdver3", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B,
FeaturePOPCNT, FeatureBMI, FeatureTBM,
FeatureFMA, FeatureFSGSBase]>;
+// Excavator
+def : Proc<"bdver4", [FeatureAVX2, FeatureXOP, FeatureFMA4,
+ FeatureCMPXCHG16B, FeatureAES, FeaturePRFCHW,
+ FeaturePCLMUL, FeatureF16C, FeatureLZCNT,
+ FeaturePOPCNT, FeatureBMI, FeatureBMI2,
+ FeatureTBM, FeatureFMA, FeatureFSGSBase]>;
+
def : Proc<"geode", [Feature3DNowA]>;
def : Proc<"winchip-c6", [FeatureMMX]>;
OpenPOWER on IntegriCloud