InstCombine: form shuffles from wider range of insert/extractelements
authorTim Northover <tnorthover@apple.com>
Fri, 7 Mar 2014 10:24:44 +0000 (10:24 +0000)
committerTim Northover <tnorthover@apple.com>
Fri, 7 Mar 2014 10:24:44 +0000 (10:24 +0000)
commit69d2b2aa5a04a6a4e296517c9b9c5160a75b3b3b
tree175312832e675e33717136d4e130a3fe3083c6fa
parentcd68cff830c88778ff01997565d6a776e9ed4194
InstCombine: form shuffles from wider range of insert/extractelements

Sequences of insertelement/extractelements are sometimes used to build
vectorsr; this code tries to put them back together into shuffles, but
could only produce a completely uniform shuffle types (<N x T> from two
<N x T> sources).

This should allow shuffles with different numbers of elements on the
input and output sides as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203229 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64InstrNEON.td
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
test/Transforms/InstCombine/insert-extract-shuffle.ll [new file with mode: 0644]