[llvm-branch-commits] [llvm-branch] r115298 - /llvm/branches/release_28/lib/Target/X86/X86ISelLowering.cpp
Bill Wendling
isanbard at gmail.com
Thu Sep 30 23:48:32 PDT 2010
Author: void
Date: Fri Oct 1 01:48:31 2010
New Revision: 115298
URL: http://llvm.org/viewvc/llvm-project?rev=115298&view=rev
Log:
PR8200: The MMX unpack instructions were no longer selected. Reverted the parts
that caused this to happen.
Modified:
llvm/branches/release_28/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/branches/release_28/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_28/lib/Target/X86/X86ISelLowering.cpp?rev=115298&r1=115297&r2=115298&view=diff
==============================================================================
--- llvm/branches/release_28/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/branches/release_28/lib/Target/X86/X86ISelLowering.cpp Fri Oct 1 01:48:31 2010
@@ -5414,11 +5414,11 @@
return getMOVL(DAG, dl, VT, V2, V1);
}
- if (X86::isUNPCKLMask(SVOp))
+ if (X86::isUNPCKL_v_undef_Mask(SVOp) || X86::isUNPCKLMask(SVOp))
return (isMMX) ?
Op : getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V1, V2, DAG);
- if (X86::isUNPCKHMask(SVOp))
+ if (X86::isUNPCKH_v_undef_Mask(SVOp) || X86::isUNPCKHMask(SVOp))
return (isMMX) ?
Op : getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V1, V2, DAG);
@@ -5443,11 +5443,11 @@
SDValue NewOp = CommuteVectorShuffle(SVOp, DAG);
ShuffleVectorSDNode *NewSVOp = cast<ShuffleVectorSDNode>(NewOp);
- if (X86::isUNPCKLMask(NewSVOp))
+ if (X86::isUNPCKL_v_undef_Mask(NewSVOp) || X86::isUNPCKLMask(NewSVOp))
return (isMMX) ?
NewOp : getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V2, V1, DAG);
- if (X86::isUNPCKHMask(NewSVOp))
+ if (X86::isUNPCKH_v_undef_Mask(NewSVOp) || X86::isUNPCKHMask(NewSVOp))
return (isMMX) ?
NewOp : getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V2, V1, DAG);
}
@@ -5494,13 +5494,6 @@
TargetMask, DAG);
}
- if (X86::isUNPCKL_v_undef_Mask(SVOp))
- if (VT != MVT::v2i64 && VT != MVT::v2f64)
- return getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V1, V1, DAG);
- if (X86::isUNPCKH_v_undef_Mask(SVOp))
- if (VT != MVT::v2i64 && VT != MVT::v2f64)
- return getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V1, V1, DAG);
-
// Handle v8i16 specifically since SSE can do byte extraction and insertion.
if (VT == MVT::v8i16) {
SDValue NewOp = LowerVECTOR_SHUFFLEv8i16(Op, DAG);
More information about the llvm-branch-commits
mailing list