aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2020-11-13 10:47:56 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2020-11-13 10:54:35 +0000
commit49623fa77a35de343e89ea2d8159ce719473ce71 (patch)
tree9b3a82fcc9477ba59a458045fe9302c102ebec89 /llvm/lib/Analysis/ValueTracking.cpp
parent185cface2e46d8d676f43ac07aaa348e95c64b2c (diff)
downloadllvm-49623fa77a35de343e89ea2d8159ce719473ce71.zip
llvm-49623fa77a35de343e89ea2d8159ce719473ce71.tar.gz
llvm-49623fa77a35de343e89ea2d8159ce719473ce71.tar.bz2
[ValueTracking] computeKnownBitsFromShiftOperator use KnownBits direct for constant shift amounts.
Let KnownBits shift handlers deal with out-of-range shift amounts.
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index b369f26..0a18718 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -993,8 +993,7 @@ static void computeKnownBitsFromShiftOperator(
computeKnownBits(I->getOperand(1), DemandedElts, Known, Depth + 1, Q);
if (Known.isConstant()) {
- unsigned ShiftAmt = Known.getConstant().getLimitedValue(BitWidth - 1);
- Known = KF(Known2, KnownBits::makeConstant(APInt(32, ShiftAmt)));
+ Known = KF(Known2, Known);
// If the known bits conflict, this must be an overflowing left shift, so
// the shift result is poison. We can return anything we want. Choose 0 for