Add the minimal amount of smarts necessary to instcombine of shufflevectors to recognize
authorNate Begeman <natebegeman@mac.com>
Tue, 10 Aug 2010 21:38:12 +0000 (21:38 +0000)
committerNate Begeman <natebegeman@mac.com>
Tue, 10 Aug 2010 21:38:12 +0000 (21:38 +0000)
commit95743d8748a85bbb03aff3b3baae728c138acbab
treedddd6feaf7002fa6e9fa6a12ee5ab7791fd65944
parent75486dbf4e9611f2070bf13b874f78a5587ed7ff
Add the minimal amount of smarts necessary to instcombine of shufflevectors to recognize
patterns generated by clang for transpose of a matrix in generic vectors.  This is made
of two parts:

1) Propagating vector extracts of hi/lo half into their users
2) Recognizing an insertion of even elements followed by the odd elements as an unpack.

Testcase to come, but this shrinks the # of shuffle instructions generated on x86 from ~40 to the minimal 8.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110734 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineVectorOps.cpp