[X86][SSE] getFauxShuffleMask - peek through TRUNCATE/AEXT/ZEXT for INSERT_VECTOR_ELT...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 26 Mar 2020 11:54:52 +0000 (11:54 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 26 Mar 2020 11:57:45 +0000 (11:57 +0000)
commite30d29ebc12a29b2843d40e575809d642920b1a4
tree54b9e0b737d92fd1200bf7dd89405d78e9b25c97
parenta5fa5f7cb86c8c271e628f49454cf6d27ba7b11f
[X86][SSE] getFauxShuffleMask - peek through TRUNCATE/AEXT/ZEXT for INSERT_VECTOR_ELT(EXTRACT_VECTOR_ELT())

As long we extract from a source vector with smaller elements and we zero-extend the element in the final shuffle mask then we can safely peek through truncations and any/zero-extensions to find the source extraction.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/buildvec-extract.ll
llvm/test/CodeGen/X86/buildvec-insertvec.ll
llvm/test/CodeGen/X86/extract-concat.ll