[X86] Remove the max vector width restriction from combineLoopMAddPattern and rely...
authorCraig Topper <craig.topper@intel.com>
Sun, 22 Jul 2018 19:44:35 +0000 (19:44 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 22 Jul 2018 19:44:35 +0000 (19:44 +0000)
commitb2a626b52e1bb9afc15423a05b6660ffe362da23
tree7d54cfa19e4c2b42fc635a9bfa0342007e6def78
parent7f288269f008ca23d0038e9e2c79d07d283b848e
[X86] Remove the max vector width restriction from combineLoopMAddPattern and rely splitOpsAndApply to handle splitting.

This seems to be a net improvement. There's still an issue under avx512f where we have a 512-bit vpaddd, but not vpmaddwd so we end up doing two 256-bit vpmaddwds and inserting the results before a 512-bit vpaddd. It might be better to do two 512-bits paddds with zeros in the upper half. Same number of instructions, but breaks a dependency.

llvm-svn: 337656
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/madd.ll
llvm/test/CodeGen/X86/required-vector-width.ll