patch: make instcombine remove shuffles by reordering vector elements

Bob Wilson bob.wilson at apple.com
Sat May 4 21:32:24 PDT 2013


On May 4, 2013, at 6:27 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> 
> Maybe that's not so bad ;) The PPC has a whole perfect-shuffle generation framework to handle these kinds of things for Altivec. Have you ever looked at PPCPerfectShuffle.h and utils/PerfectShuffle/PerfectShuffle.cpp? 

We use "perfect shuffle" code for ARM Neon, too, except only for vectors with 4 elements.  The tables get way too big with 8- and 16-element vectors.

If InstCombine creates a shuffle for a 16-element Neon vector that doesn't directly match an instruction, you can end up with absolutely terrible code.  Until someone comes up with a general solution to that, it is really important that none of the target-independent code create new shuffles that might cause trouble for code-gen.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130504/782abc9d/attachment.html>


More information about the llvm-commits mailing list