[llvm] [AMDGPU] Rework getDivNumBits API (PR #119768)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 7 01:59:26 PST 2025
================
@@ -1189,27 +1188,32 @@ static Value* getMulHu(IRBuilder<> &Builder, Value *LHS, Value *RHS) {
return getMul64(Builder, LHS, RHS).second;
}
-/// Figure out how many bits are really needed for this division. \p AtLeast is
-/// an optimization hint to bypass the second ComputeNumSignBits call if we the
-/// first one is insufficient. Returns -1 on failure.
-int AMDGPUCodeGenPrepareImpl::getDivNumBits(BinaryOperator &I, Value *Num,
- Value *Den, unsigned AtLeast,
- bool IsSigned) const {
+/// Figure out how many bits are really needed for this division.
+/// \p MaxDivBits is an optimization hint to bypass the second
+/// ComputeNumSignBits/computeKnownBits call if we the first one is
+/// insufficient.
+unsigned AMDGPUCodeGenPrepareImpl::getDivNumBits(BinaryOperator &I, Value *Num,
+ Value *Den,
+ unsigned MaxDivBits,
+ bool IsSigned) const {
assert(Num->getType()->getScalarSizeInBits() ==
Den->getType()->getScalarSizeInBits());
unsigned SSBits = Num->getType()->getScalarSizeInBits();
if (IsSigned) {
unsigned RHSSignBits = ComputeNumSignBits(Den, DL, 0, AC, &I);
- if (RHSSignBits < AtLeast)
- return -1;
+ // a SignBit needs to be reserved for shrinking
----------------
jayfoad wrote:
Comments should be full sentences. Capital letter, period.
https://github.com/llvm/llvm-project/pull/119768
More information about the llvm-commits
mailing list