diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-05-01 06:54:48 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-05-01 06:54:48 +0000 |
commit | e499cdf10c157d447393708b3a28497e42b1b555 (patch) | |
tree | 131847f1d8084b60e5baac5d442465a9d077f4a0 /lib/Target/X86/X86.td | |
parent | ff72e74d34197cd8775ed32c6e06054b936a1cad (diff) |
Make XOP and FMA4 require SSE4A to match GCC behavior. Use this to simplify Bulldozer feature list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155897 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86.td')
-rw-r--r-- | lib/Target/X86/X86.td | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/Target/X86/X86.td b/lib/Target/X86/X86.td index 40c96676b1..8a46223afa 100644 --- a/lib/Target/X86/X86.td +++ b/lib/Target/X86/X86.td @@ -94,10 +94,10 @@ def FeatureFMA3 : SubtargetFeature<"fma3", "HasFMA3", "true", [FeatureAVX]>; def FeatureFMA4 : SubtargetFeature<"fma4", "HasFMA4", "true", "Enable four-operand fused multiple-add", - [FeatureAVX]>; + [FeatureAVX, FeatureSSE4A]>; def FeatureXOP : SubtargetFeature<"xop", "HasXOP", "true", "Enable XOP instructions", - [FeatureAVX]>; + [FeatureAVX, FeatureSSE4A]>; def FeatureVectorUAMem : SubtargetFeature<"vector-unaligned-mem", "HasVectorUAMem", "true", "Allow unaligned memory operands on vector/SIMD instructions">; @@ -212,22 +212,21 @@ def : Proc<"opteron-sse3", [FeatureSSE3, Feature3DNowA, FeatureCMPXCHG16B, FeatureSlowBTMem]>; def : Proc<"athlon64-sse3", [FeatureSSE3, Feature3DNowA, FeatureCMPXCHG16B, FeatureSlowBTMem]>; -def : Proc<"amdfam10", [FeatureSSE3, FeatureSSE4A, +def : Proc<"amdfam10", [FeatureSSE4A, Feature3DNowA, FeatureCMPXCHG16B, FeatureLZCNT, FeaturePOPCNT, FeatureSlowBTMem]>; // Bobcat def : Proc<"btver1", [FeatureSSSE3, FeatureSSE4A, FeatureCMPXCHG16B, FeatureLZCNT, FeaturePOPCNT]>; // Bulldozer -def : Proc<"bdver1", [FeatureAVX, FeatureSSE4A, FeatureCMPXCHG16B, +def : Proc<"bdver1", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B, FeatureAES, FeatureCLMUL, - FeatureXOP, FeatureLZCNT, FeaturePOPCNT, - FeatureFMA4]>; + FeatureLZCNT, FeaturePOPCNT]>; // Enhanced Bulldozer -def : Proc<"bdver2", [FeatureAVX, FeatureSSE4A, FeatureCMPXCHG16B, +def : Proc<"bdver2", [FeatureXOP, FeatureFMA4, FeatureCMPXCHG16B, FeatureAES, FeatureCLMUL, - FeatureXOP, FeatureF16C, FeatureLZCNT, - FeaturePOPCNT, FeatureBMI, FeatureFMA4]>; + FeatureF16C, FeatureLZCNT, + FeaturePOPCNT, FeatureBMI]>; def : Proc<"winchip-c6", [FeatureMMX]>; def : Proc<"winchip2", [Feature3DNow]>; |