Skip to content

Commit 9575991

Browse files
committed
Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMask
llvm-svn: 113050
1 parent 2917bd0 commit 9575991

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5471,11 +5471,19 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
54715471
// FIXME: pshufb, blends, shifts.
54725472
if (VT.getVectorNumElements() == 2 ||
54735473
ShuffleVectorSDNode::isSplatMask(&M[0], VT) ||
5474-
isPSHUFHWMask(M, VT) ||
5475-
isPSHUFLWMask(M, VT) ||
54765474
isPALIGNRMask(M, VT, Subtarget->hasSSSE3()))
54775475
return Op;
54785476

5477+
if (isPSHUFHWMask(M, VT))
5478+
return getTargetShuffleNode(X86ISD::PSHUFHW, dl, VT, V1,
5479+
X86::getShufflePSHUFHWImmediate(SVOp),
5480+
DAG);
5481+
5482+
if (isPSHUFLWMask(M, VT))
5483+
return getTargetShuffleNode(X86ISD::PSHUFLW, dl, VT, V1,
5484+
X86::getShufflePSHUFLWImmediate(SVOp),
5485+
DAG);
5486+
54795487
if (isSHUFPMask(M, VT)) {
54805488
unsigned TargetMask = X86::getShuffleSHUFImmediate(SVOp);
54815489
if (VT == MVT::v4f32 || VT == MVT::v4i32)

0 commit comments

Comments
 (0)