mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-28 22:20:43 +00:00
Add VPERMQ/VPERMPD to the list of target specific shuffles that can be looked through for DAG combine purposes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156266 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
156f5bb56e
commit
bdcbcb3ae7
@ -2914,6 +2914,7 @@ static bool isTargetShuffle(unsigned Opcode) {
|
||||
case X86ISD::UNPCKH:
|
||||
case X86ISD::VPERMILP:
|
||||
case X86ISD::VPERM2X128:
|
||||
case X86ISD::VPERMI:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -4455,6 +4456,11 @@ static bool getTargetShuffleMask(SDNode *N, EVT VT,
|
||||
DecodePSHUFLWMask(VT, cast<ConstantSDNode>(ImmN)->getZExtValue(), Mask);
|
||||
IsUnary = true;
|
||||
break;
|
||||
case X86ISD::VPERMI:
|
||||
ImmN = N->getOperand(N->getNumOperands()-1);
|
||||
DecodeVPERMMask(cast<ConstantSDNode>(ImmN)->getZExtValue(), Mask);
|
||||
IsUnary = true;
|
||||
break;
|
||||
case X86ISD::MOVSS:
|
||||
case X86ISD::MOVSD: {
|
||||
// The index 0 always comes from the first element of the second source,
|
||||
|
Loading…
Reference in New Issue
Block a user