diff options
| author | Craig Topper <craig.topper@gmail.com> | 2011-12-29 19:46:19 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2011-12-29 19:46:19 +0000 |
| commit | e1bd05128e0bab1d41155d2ce54b47c0874c46d5 (patch) | |
| tree | 0e474b1ddbaf277e299990cbc0e3068b843e53ab /llvm/lib/Target | |
| parent | dd286a520162944de42e5f526c1dae693e04c302 (diff) | |
| download | bcm5719-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.td | 7 |
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]>; |

