[llvm] [SelectionDAG] Fix incorrect fold condition in foldSetCCWithFunnelShift. (PR #137637)
    via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sat May  3 01:06:31 PDT 2025
    
    
  
================
@@ -4462,7 +4462,11 @@ static SDValue foldSetCCWithFunnelShift(EVT VT, SDValue N0, SDValue N1,
 
   unsigned BitWidth = N0.getScalarValueSizeInBits();
   auto *ShAmtC = isConstOrConstSplat(N0.getOperand(2));
-  if (!ShAmtC || ShAmtC->getAPIntValue().uge(BitWidth))
+  if (!ShAmtC)
+    return SDValue();
+
+  APInt AmtVal = ShAmtC->getAPIntValue();
+  if (AmtVal.uge(BitWidth) || AmtVal.isZero())
     return SDValue();
----------------
Ruhung wrote:
@RKSimon You're right. It's OK to take the modulo first. I've fixed it. Thanks!
https://github.com/llvm/llvm-project/pull/137637
    
    
More information about the llvm-commits
mailing list