[LLVMdev] AVX Shuffles & PatLeaf Help Needed
dag at cray.com
Fri Dec 18 09:27:32 PST 2009
On Thursday 17 December 2009 23:48, Nate Begeman wrote:
> > PSHUFB is really a completely different instruction than PSHUFD, for
> > example.
> Aside from consuming one of its inputs, which is a regalloc problem, it
> isn't really different. It's just a one-input immediate shuffle, where the
> immediate is not encoded in the instruction. From the perspective of the
> shuffle instruction, all the x86 shuffles are just various byte shuffles.
> Writing them all in one canonical form would substantially simplify the
> code, especially given layering AVX on top of the existing
> barely-understandable code would probably result in something almost
But I don't think it can share a pattern with the immmediate-mask shuffles
because the operands are of different class (register vs. immediate).
I guess for PSHUFB the instruction works for all masks so we don't even
need a predicate to check for validity.
I'll think some more about this, but casting a vector to bytes is really
going to make debugging harder. It's easier to think about 4 or 8
index values than 16 or 32.
More information about the llvm-dev