[X86] Remove some composite MOVSS/MOVSD isel patterns.
authorCraig Topper <craig.topper@intel.com>
Wed, 11 Jul 2018 04:51:40 +0000 (04:51 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 11 Jul 2018 04:51:40 +0000 (04:51 +0000)
commit1d6a80cd9544ff89cb8a875ae08569f1cd0f0782
tree41270fd8c48334cce2b5709e854ff9d0d751fa21
parenta53aa290a5942d442097fe6af06c809672039ed1
[X86] Remove some composite MOVSS/MOVSD isel patterns.

These patterns looked for a MOVSS/SD followed by a scalar_to_vector. Or a scalar_to_vector followed by a load.

In both cases we emitted a MOVSS/SD for the MOVSS/SD part, a REG_CLASS for the scalar_to_vector, and a MOVSS/SD for the load.

But we have patterns that do each of those 3 things individually so there's no reason to build large patterns.

Most of the test changes are just reorderings. The one test that had a meaningful change is pr30430.ll and it appears to be a regression. But its doing -O0 so I think it missed a lot of opportunities and was just getting lucky before.

llvm-svn: 336762
13 files changed:
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/build-vector-512.ll
llvm/test/CodeGen/X86/buildvec-insertvec.ll
llvm/test/CodeGen/X86/gather-addresses.ll
llvm/test/CodeGen/X86/half.ll
llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
llvm/test/CodeGen/X86/mmx-build-vector.ll
llvm/test/CodeGen/X86/pr30430.ll
llvm/test/CodeGen/X86/sse-fcopysign.ll
llvm/test/CodeGen/X86/var-permute-128.ll
llvm/test/CodeGen/X86/vector-shuffle-variable-128.ll
llvm/test/CodeGen/X86/vector-shuffle-variable-256.ll