summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2011-12-29 19:46:19 +0000
committerCraig Topper <craig.topper@gmail.com>2011-12-29 19:46:19 +0000
commite1bd05128e0bab1d41155d2ce54b47c0874c46d5 (patch)
tree0e474b1ddbaf277e299990cbc0e3068b843e53ab /llvm/lib/Target
parentdd286a520162944de42e5f526c1dae693e04c302 (diff)
downloadbcm5719-llvm-e1bd05128e0bab1d41155d2ce54b47c0874c46d5.tar.gz
bcm5719-llvm-e1bd05128e0bab1d41155d2ce54b47c0874c46d5.zip
Make FMA3 imply AVX needs to be enabled. Particularly because 256-bit types aren't valid unless AVX is enabled.
llvm-svn: 147349
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86.td7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86.td b/llvm/lib/Target/X86/X86.td
index 88c62543375..d053c76de78 100644
--- a/llvm/lib/Target/X86/X86.td
+++ b/llvm/lib/Target/X86/X86.td
@@ -87,7 +87,8 @@ def FeatureAVX2 : SubtargetFeature<"avx2", "HasAVX2", "true",
def FeatureCLMUL : SubtargetFeature<"clmul", "HasCLMUL", "true",
"Enable carry-less multiplication instructions">;
def FeatureFMA3 : SubtargetFeature<"fma3", "HasFMA3", "true",
- "Enable three-operand fused multiple-add">;
+ "Enable three-operand fused multiple-add",
+ [FeatureAVX]>;
def FeatureFMA4 : SubtargetFeature<"fma4", "HasFMA4", "true",
"Enable four-operand fused multiple-add">;
def FeatureXOP : SubtargetFeature<"xop", "HasXOP", "true",
@@ -168,10 +169,10 @@ def : Proc<"core-avx-i", [FeatureSSE42, FeatureCMPXCHG16B, FeaturePOPCNT,
FeatureRDRAND, FeatureF16C, FeatureFSGSBase]>;
// Haswell
-// FIXME: Disabling AVX/AVX2 for now since it's not ready.
+// FIXME: Disabling AVX/AVX2/FMA3 for now since it's not ready.
def : Proc<"core-avx2", [FeatureSSE42, FeatureCMPXCHG16B, FeaturePOPCNT,
FeatureAES, FeatureCLMUL, FeatureRDRAND,
- FeatureF16C, FeatureFSGSBase, FeatureFMA3,
+ FeatureF16C, FeatureFSGSBase,
FeatureMOVBE, FeatureLZCNT, FeatureBMI,
FeatureBMI2]>;
OpenPOWER on IntegriCloud