]> granicus.if.org Git - llvm/commit
[X86][AVX] combineX86ShuffleChain - combine shuffle(extractsubvector(x),extractsubvec...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 5 Jun 2019 12:56:53 +0000 (12:56 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 5 Jun 2019 12:56:53 +0000 (12:56 +0000)
commit18f366ada57d32fedaac4fefe8759e6c22dc408c
tree191709cb4a5ac3ed8451e5ea33c78d3e5d29f405
parent0c0981d344fbaef336a91887b08fdb3145e3f6ea
[X86][AVX] combineX86ShuffleChain - combine shuffle(extractsubvector(x),extractsubvector(y))

We already handle the case where we combine shuffle(extractsubvector(x),extractsubvector(x)), this relaxes the requirement to permit different sources as long as they have the same value type.

This causes a couple of cases where the VPERMV3 binary shuffles occur at a wider width than before, which I intend to improve in future commits - but as only the subvector's mask indices are defined, these will broadcast so we don't see any increase in constant size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362599 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx512-shuffles/partial_permute.ll
test/CodeGen/X86/pr29112.ll
test/CodeGen/X86/vector-shuffle-256-v32.ll