diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-05-06 21:04:31 -0500 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-05-16 18:58:12 -0500 |
commit | 99795afb28af4a93e128597b47579e05da2340b3 (patch) | |
tree | e818a641b254ca6c96b113f0974a3ef4503c687d /llvm/lib/Analysis/ValueTracking.cpp | |
parent | 7d05ab99edb9f5ef06c3d635afcd22502866f447 (diff) | |
download | llvm-99795afb28af4a93e128597b47579e05da2340b3.zip llvm-99795afb28af4a93e128597b47579e05da2340b3.tar.gz llvm-99795afb28af4a93e128597b47579e05da2340b3.tar.bz2 |
[ValueTracking] Pass `exact` flag to `KnownBits::udiv` in `computeKnownBits`
This information was previously missing but we can use it for
determining the low-bits.
Differential Revision: https://reviews.llvm.org/D150095
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 2862e42..77b99f9 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -1208,7 +1208,8 @@ static void computeKnownBitsFromOperator(const Operator *I, case Instruction::UDiv: { computeKnownBits(I->getOperand(0), Known, Depth + 1, Q); computeKnownBits(I->getOperand(1), Known2, Depth + 1, Q); - Known = KnownBits::udiv(Known, Known2); + Known = + KnownBits::udiv(Known, Known2, Q.IIQ.isExact(cast<BinaryOperator>(I))); break; } case Instruction::Select: { |