[X86] lowerV8I16Shuffle - use PACKSS(SEXT_INREG(X),SEXT_INREG(Y)) for pre-SSSE3 trunc...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 26 Jun 2023 14:31:29 +0000 (15:31 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 26 Jun 2023 15:50:13 +0000 (16:50 +0100)
commit6756947ac6ef35f774817995c3e052ad48c83144
tree4e902e38e8ea701adc76a967ad1056151cbb7617
parenta5d094c98f692a6b59ff2daca07fe5b72348adf3
[X86] lowerV8I16Shuffle - use PACKSS(SEXT_INREG(X),SEXT_INREG(Y)) for pre-SSSE3 truncation shuffles

The comment about PSHUFLW+PSHUFHW+PSHUFD was outdated as that referred to a single input case, but that is now always handled earlier.

Another step towards removing premature combines to vector truncation combines to PACK.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/haddsub-shuf.ll
llvm/test/CodeGen/X86/vec_fp_to_int.ll
llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
llvm/test/CodeGen/X86/vector-trunc.ll