[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
David Greene
dag at cray.com
Fri Feb 25 13:19:57 PST 2011
In ToT, LowerVECTOR_SHUFFLE for x86 has this code:
if (X86::isUNPCKLMask(SVOp))
getTargetShuffleNode(getUNPCKLOpcode(VT) dl, VT, V1, V2, DAG);
why would this not be:
if (X86::isUNPCKLMask(SVOp))
return SVOp;
I'm trying to add support for VUNPCKL and am getting into trouble
because the existing code ends up creating:
VUNPCKLPS
load
load
which is badness come selection time. Legalize doesn't get a chance to
look below the target shuffle node to see that there are two memory
operands.
Back in the 2.7 days, we used to just return the shuffle as is if it was
already legal. Why the change to create a target node? Will there be
problems if I change the code to return the shuffle as-is?
Thanks!
-Dave
More information about the llvm-dev
mailing list