diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-05-03 10:20:08 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-05-03 10:20:08 +0000 |
commit | b9548d8ee30f880a237ea46430478b95f2ef4772 (patch) | |
tree | 37f310d8656dcf7420ae7f9a0ac7c9b8bd4d2997 | |
parent | 555e8f606f5c7d1c5e90355b6d3e1e2b0e87dd2b (diff) | |
download | llvm-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.cpp | 11 | ||||
-rw-r--r-- | lib/Target/X86/X86.td | 7 |
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, |