summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2016-01-19 23:04:56 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2016-01-19 23:04:56 +0000
commit4b919b2ab3e7cc46c9228e277371dc7f0580f9fd (patch)
treef1a010d0335903bbe853f66c6d05033ecd0e7c3d /llvm/lib
parentfe4a7b3ccdf8efd92b77dad6753f2947634bee15 (diff)
downloadbcm5719-llvm-4b919b2ab3e7cc46c9228e277371dc7f0580f9fd.tar.gz
bcm5719-llvm-4b919b2ab3e7cc46c9228e277371dc7f0580f9fd.zip
[X86][SSE] Add VZEXT_MOVL target shuffle decoding.
Add support for decoding VZEXT_MOVL target shuffle masks, allowing it to be used as a source in target shuffle combines. llvm-svn: 258215
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index fa1a5301bb7..15e6037ee0a 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -3939,6 +3939,7 @@ static bool isTargetShuffle(unsigned Opcode) {
case X86ISD::VPERMI:
case X86ISD::VPERMV:
case X86ISD::VPERMV3:
+ case X86ISD::VZEXT_MOVL:
return true;
}
}
@@ -4886,6 +4887,10 @@ static bool getTargetShuffleMask(SDNode *N, MVT VT, bool AllowSentinelZero,
DecodePSHUFLWMask(VT, cast<ConstantSDNode>(ImmN)->getZExtValue(), Mask);
IsUnary = true;
break;
+ case X86ISD::VZEXT_MOVL:
+ DecodeZeroMoveLowMask(VT, Mask);
+ IsUnary = true;
+ break;
case X86ISD::PSHUFB: {
IsUnary = true;
SDValue MaskNode = N->getOperand(1);
OpenPOWER on IntegriCloud