[llvm] [ValueTracking][RISCV] Use ConstantRange::getUnsignedMax instead of getUpper to simplify some code. (PR #96816)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 26 13:28:28 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-analysis
Author: Craig Topper (topperc)
<details>
<summary>Changes</summary>
This avoids the need to subtract 1 and explain why.
---
Full diff: https://github.com/llvm/llvm-project/pull/96816.diff
1 Files Affected:
- (modified) llvm/lib/Analysis/ValueTracking.cpp (+1-3)
``````````diff
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 777b2792a1ed2..1dfc6cfac4551 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -1740,10 +1740,8 @@ static void computeKnownBitsFromOperator(const Operator *I,
cast<ConstantInt>(II->getArgOperand(HasAVL))->getZExtValue());
RISCVII::VLMUL VLMUL = static_cast<RISCVII::VLMUL>(
cast<ConstantInt>(II->getArgOperand(1 + HasAVL))->getZExtValue());
- // The Range is [Lower, Upper), so we need to subtract 1 here to get the
- // real upper value.
uint64_t MaxVLEN =
- (Range.getUpper().getZExtValue() - 1) * RISCV::RVVBitsPerBlock;
+ Range.getUnsignedMax().getZExtValue() * RISCV::RVVBitsPerBlock;
uint64_t MaxVL = MaxVLEN / RISCVVType::getSEWLMULRatio(SEW, VLMUL);
// Result of vsetvli must be not larger than AVL.
``````````
</details>
https://github.com/llvm/llvm-project/pull/96816
More information about the llvm-commits
mailing list