[llvm] Reapply [AMDGPU] prevent shrinking udiv/urem if either operand exceeds signed max (PR #119325)

via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 10 14:55:09 PST 2024


================
@@ -1220,7 +1236,7 @@ Value *AMDGPUCodeGenPrepareImpl::expandDivRem24(IRBuilder<> &Builder,
   // If Num bits <= 24, assume 0 signbits.
   unsigned AtLeast = (SSBits <= 24) ? 0 : (SSBits - 24 + IsSigned);
   int DivBits = getDivNumBits(I, Num, Den, AtLeast, IsSigned);
-  if (DivBits == -1)
+  if (DivBits == -1 || DivBits > 24)
----------------
choikwa wrote:

Looks like sdiv/srem failures are from catching at least one group of cases of valid shrinking where it wasn't before because of early exit from testing for -1. Thanks!

https://github.com/llvm/llvm-project/pull/119325


More information about the llvm-commits mailing list