mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[ValueTracking] computeKnownBitsFromShiftOperator - remove non-zero shift amount handling.
This no longer affects any tests after the improvements to the KnownBits shift helpers.
This commit is contained in:
parent
68e88416c9
commit
b83d98e3a8
@ -1018,15 +1018,10 @@ static void computeKnownBitsFromShiftOperator(
|
||||
// If we know the shifter operand is nonzero, we can sometimes infer more
|
||||
// known bits. However this is expensive to compute, so be lazy about it and
|
||||
// only compute it when absolutely necessary.
|
||||
Optional<bool> ShifterOperandIsNonZero;
|
||||
|
||||
// Early exit if we can't constrain any well-defined shift amount.
|
||||
if (!(ShiftAmtKZ & (PowerOf2Ceil(BitWidth) - 1)) &&
|
||||
!(ShiftAmtKO & (PowerOf2Ceil(BitWidth) - 1))) {
|
||||
ShifterOperandIsNonZero =
|
||||
isKnownNonZero(I->getOperand(1), DemandedElts, Depth + 1, Q);
|
||||
if (!*ShifterOperandIsNonZero)
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
Known.Zero.setAllBits();
|
||||
@ -1038,17 +1033,6 @@ static void computeKnownBitsFromShiftOperator(
|
||||
continue;
|
||||
if ((ShiftAmt | ShiftAmtKO) != ShiftAmt)
|
||||
continue;
|
||||
// If we know the shifter is nonzero, we may be able to infer more known
|
||||
// bits. This check is sunk down as far as possible to avoid the expensive
|
||||
// call to isKnownNonZero if the cheaper checks above fail.
|
||||
if (ShiftAmt == 0) {
|
||||
if (!ShifterOperandIsNonZero.hasValue())
|
||||
ShifterOperandIsNonZero =
|
||||
isKnownNonZero(I->getOperand(1), DemandedElts, Depth + 1, Q);
|
||||
if (*ShifterOperandIsNonZero)
|
||||
continue;
|
||||
}
|
||||
|
||||
Known = KnownBits::commonBits(
|
||||
Known, KF(Known2, KnownBits::makeConstant(APInt(32, ShiftAmt))));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user