[llvm-commits] [llvm] r113050 - /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Bruno Cardoso Lopes
bruno.cardoso at gmail.com
Fri Sep 3 18:36:46 PDT 2010
Author: bruno
Date: Fri Sep 3 20:36:45 2010
New Revision: 113050
URL: http://llvm.org/viewvc/llvm-project?rev=113050&view=rev
Log:
Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMask
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=113050&r1=113049&r2=113050&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Fri Sep 3 20:36:45 2010
@@ -5471,11 +5471,19 @@
// FIXME: pshufb, blends, shifts.
if (VT.getVectorNumElements() == 2 ||
ShuffleVectorSDNode::isSplatMask(&M[0], VT) ||
- isPSHUFHWMask(M, VT) ||
- isPSHUFLWMask(M, VT) ||
isPALIGNRMask(M, VT, Subtarget->hasSSSE3()))
return Op;
+ if (isPSHUFHWMask(M, VT))
+ return getTargetShuffleNode(X86ISD::PSHUFHW, dl, VT, V1,
+ X86::getShufflePSHUFHWImmediate(SVOp),
+ DAG);
+
+ if (isPSHUFLWMask(M, VT))
+ return getTargetShuffleNode(X86ISD::PSHUFLW, dl, VT, V1,
+ X86::getShufflePSHUFLWImmediate(SVOp),
+ DAG);
+
if (isSHUFPMask(M, VT)) {
unsigned TargetMask = X86::getShuffleSHUFImmediate(SVOp);
if (VT == MVT::v4f32 || VT == MVT::v4i32)
More information about the llvm-commits
mailing list