llvm.org GIT mirror llvm / bbfc310
Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113050 91177308-0d34-0410-b5e6-96231b3b80d8 Bruno Cardoso Lopes 10 years ago
1 changed file(s) with 10 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
54705470 // FIXME: pshufb, blends, shifts.
54715471 if (VT.getVectorNumElements() == 2 ||
54725472 ShuffleVectorSDNode::isSplatMask(&M[0], VT) ||
5473 isPSHUFHWMask(M, VT) ||
5474 isPSHUFLWMask(M, VT) ||
54755473 isPALIGNRMask(M, VT, Subtarget->hasSSSE3()))
54765474 return Op;
5475
5476 if (isPSHUFHWMask(M, VT))
5477 return getTargetShuffleNode(X86ISD::PSHUFHW, dl, VT, V1,
5478 X86::getShufflePSHUFHWImmediate(SVOp),
5479 DAG);
5480
5481 if (isPSHUFLWMask(M, VT))
5482 return getTargetShuffleNode(X86ISD::PSHUFLW, dl, VT, V1,
5483 X86::getShufflePSHUFLWImmediate(SVOp),
5484 DAG);
54775485
54785486 if (isSHUFPMask(M, VT)) {
54795487 unsigned TargetMask = X86::getShuffleSHUFImmediate(SVOp);