]> granicus.if.org Git - llvm/commit
[X86] Make FeatureAVX512 imply FeatureFMA.
authorCraig Topper <craig.topper@intel.com>
Mon, 6 Nov 2017 22:49:01 +0000 (22:49 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 6 Nov 2017 22:49:01 +0000 (22:49 +0000)
commit490bc3940dd4098ef1cd81c1f3f19203b4317d3f
treec8c6aea46f9c143f935d92ed28079bc537134888
parent618cf290880ae9cd87b4bbf6c9b1759476f422eb
[X86] Make FeatureAVX512 imply FeatureFMA.

Previously our VEX patterns were checking Subtarget.hasFMA() which checked FMA || AVX512. So we were behaving as if AVX512 implied it anyway. Which means we'd allow VEX encoded 128/256 FMA when AVX512F was enabled but AVX512VL is off. Regardless of the FMA flag.

EVEX to VEX also transforms scalar EVEX FMA instructions to their VEX versions even without the FMA flag. Similarly for 128/256 under AVX512VL.

So this makes AVX512 imply FeatureFMA to make our current behavior explicit.

All known CPUs that support AVX512 have VEX FMA instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317520 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86.td
lib/Target/X86/X86Subtarget.h