[X86] Remove isel patterns for MOVSS/MOVSD ISD opcodes with integer types.
authorCraig Topper <craig.topper@intel.com>
Fri, 20 Jul 2018 17:57:53 +0000 (17:57 +0000)
committerCraig Topper <craig.topper@intel.com>
Fri, 20 Jul 2018 17:57:53 +0000 (17:57 +0000)
commit28ac623f6f2434bcdd78d5ace01ae0fedba21b90
tree332a06b3de03bfd9735b5effc977dab4ef0b5626
parent6194ccf8c795bf8eb6926e03c192e7326ee54f90
[X86] Remove isel patterns for MOVSS/MOVSD ISD opcodes with integer types.

Ideally our ISD node types going into the isel table would have types consistent with their instruction domain. This prevents us having to duplicate patterns with different types for the same instruction.

Unfortunately, it seems our shuffle combining is currently relying on this a little remove some bitcasts. This seems to enable some switching between shufps and shufd. Hopefully there's some way we can address this in the combining.

Differential Revision: https://reviews.llvm.org/D49280

llvm-svn: 337590
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/oddshuffles.ll
llvm/test/CodeGen/X86/vector-shift-ashr-128.ll
llvm/test/CodeGen/X86/vector-shift-lshr-128.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll