summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86Subtarget.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2011-12-29 19:25:56 +0000
committerCraig Topper <craig.topper@gmail.com>2011-12-29 19:25:56 +0000
commitdd286a520162944de42e5f526c1dae693e04c302 (patch)
tree9c0a9225f6c3b66cc60c623fe90f6705c902af11 /llvm/lib/Target/X86/X86Subtarget.cpp
parenta060afb5ba44ff34b8d89e2531a697b5d8a3ce0a (diff)
downloadbcm5719-llvm-dd286a520162944de42e5f526c1dae693e04c302.tar.gz
bcm5719-llvm-dd286a520162944de42e5f526c1dae693e04c302.zip
Change XOP detection to use the correct CPUID bit instead of using the FMA4 bit.
llvm-svn: 147348
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.cpp')
-rw-r--r--llvm/lib/Target/X86/X86Subtarget.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp
index 6e092c755a8..4f0309bc569 100644
--- a/llvm/lib/Target/X86/X86Subtarget.cpp
+++ b/llvm/lib/Target/X86/X86Subtarget.cpp
@@ -266,15 +266,19 @@ void X86Subtarget::AutoDetectSubtargetFeatures() {
HasLZCNT = true;
ToggleFeature(X86::FeatureLZCNT);
}
- if (IsAMD && ((ECX >> 6) & 0x1)) {
- HasSSE4A = true;
- ToggleFeature(X86::FeatureSSE4A);
- }
- if (IsAMD && ((ECX >> 16) & 0x1)) {
- HasFMA4 = true;
- ToggleFeature(X86::FeatureFMA4);
- HasXOP = true;
- ToggleFeature(X86::FeatureXOP);
+ if (IsAMD) {
+ if ((ECX >> 6) & 0x1) {
+ HasSSE4A = true;
+ ToggleFeature(X86::FeatureSSE4A);
+ }
+ if ((ECX >> 11) & 0x1) {
+ HasXOP = true;
+ ToggleFeature(X86::FeatureXOP);
+ }
+ if ((ECX >> 16) & 0x1) {
+ HasFMA4 = true;
+ ToggleFeature(X86::FeatureFMA4);
+ }
}
}
}
OpenPOWER on IntegriCloud