[llvm] [SelectionDAG] Fix incorrect fold condition in foldSetCCWithFunnelShift. (PR #137637)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri May 2 07:15:58 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();
----------------
RKSimon wrote:
Why not:
```cpp
uint64_t AmtVal = ShAmtC->getAPIntValue().urem(BitWidth);
if (AmtVal == 0)
return SDValue();
```
https://github.com/llvm/llvm-project/pull/137637
More information about the llvm-commits
mailing list