diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-01-19 23:04:56 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-01-19 23:04:56 +0000 |
| commit | 4b919b2ab3e7cc46c9228e277371dc7f0580f9fd (patch) | |
| tree | f1a010d0335903bbe853f66c6d05033ecd0e7c3d /llvm/lib | |
| parent | fe4a7b3ccdf8efd92b77dad6753f2947634bee15 (diff) | |
| download | bcm5719-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.cpp | 5 |
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); |

