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)
commitfad2761ca0924216c9296cbdbaefc81b58067128
treea29caab1340a92508adb326f510d7f0b7f6c5006
parentf0e88c72ec34c4524a4cff24b3c199f30ed3e347
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.

llvm-svn: 203229
llvm/lib/Target/AArch64/AArch64InstrNEON.td
llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
llvm/test/Transforms/InstCombine/insert-extract-shuffle.ll [new file with mode: 0644]