[X86] combineX86ShufflesRecursively - attempt to fold ISD::EXTRACT_SUBVECTOR into...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 20 Feb 2022 18:50:28 +0000 (18:50 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 20 Feb 2022 18:50:33 +0000 (18:50 +0000)
commitec910751fe5c4a0e0fe4e232da0f8bed307bf4e8
tree736b6985a1bc81c94c8854008d87111952099161
parent35b92c1464ad5b79c83a1982849c64b6ca261377
[X86] combineX86ShufflesRecursively - attempt to fold ISD::EXTRACT_SUBVECTOR into a shuffle chain

Peek through if we're extracting a non-zero'th subvector in an attempt to fold the extract into a lane-crossing shuffle

This also exposes a failure to fold extract_subvector(movddup(x),c) -> movddup(extract_subvector(x,c))
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx512-hadd-hsub.ll
llvm/test/CodeGen/X86/copy-low-subvec-elt-to-high-subvec-elt.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll
llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll