mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
[X86] Return from SimplifyDemandedBitsForTargetNode after calculating known bits for VSHLI/VSRAI/VSRLI.
We were breaking out of the switch which falls into the default implementation of SimplifyDemandedBitsForTargetNode which is a wrapper around computeKnownBits. So we end up doing the recursion and known bits calculation all over again. Instead we should return with the known bits we calculated in the switch.
This commit is contained in:
parent
3e4cfa99b8
commit
cba5d6bed8
@ -38084,7 +38084,7 @@ bool X86TargetLowering::SimplifyDemandedBitsForTargetNode(
|
||||
|
||||
// Low bits known zero.
|
||||
Known.Zero.setLowBits(ShAmt);
|
||||
break;
|
||||
return false;
|
||||
}
|
||||
case X86ISD::VSRLI: {
|
||||
unsigned ShAmt = Op.getConstantOperandVal(1);
|
||||
@ -38103,7 +38103,7 @@ bool X86TargetLowering::SimplifyDemandedBitsForTargetNode(
|
||||
|
||||
// High bits known zero.
|
||||
Known.Zero.setHighBits(ShAmt);
|
||||
break;
|
||||
return false;
|
||||
}
|
||||
case X86ISD::VSRAI: {
|
||||
SDValue Op0 = Op.getOperand(0);
|
||||
@ -38152,7 +38152,7 @@ bool X86TargetLowering::SimplifyDemandedBitsForTargetNode(
|
||||
// High bits are known one.
|
||||
if (Known.One[BitWidth - ShAmt - 1])
|
||||
Known.One.setHighBits(ShAmt);
|
||||
break;
|
||||
return false;
|
||||
}
|
||||
case X86ISD::PEXTRB:
|
||||
case X86ISD::PEXTRW: {
|
||||
|
Loading…
Reference in New Issue
Block a user