[llvm] [DAG] isKnownNeverZero - add ISD::SHL DemandedElts handling and tests (PR #183772)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 6 03:18:55 PST 2026
================
@@ -6256,13 +6256,13 @@ bool SelectionDAG::isKnownNeverZero(SDValue Op, const APInt &DemandedElts,
case ISD::SHL: {
if (Op->getFlags().hasNoSignedWrap() || Op->getFlags().hasNoUnsignedWrap())
- return isKnownNeverZero(Op.getOperand(0), Depth + 1);
- KnownBits ValKnown = computeKnownBits(Op.getOperand(0), Depth + 1);
+ return isKnownNeverZero(Op.getOperand(0),DemandedElts, Depth + 1);
+ KnownBits ValKnown = computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1);
// 1 << X is never zero.
if (ValKnown.One[0])
return true;
// If max shift cnt of known ones is non-zero, result is non-zero.
- APInt MaxCnt = computeKnownBits(Op.getOperand(1), Depth + 1).getMaxValue();
+ APInt MaxCnt = computeKnownBits(Op.getOperand(1),DemandedElts ,Depth + 1).getMaxValue();
----------------
RKSimon wrote:
clang-format?
```suggestion
APInt MaxCnt = computeKnownBits(Op.getOperand(1), DemandedElts,Depth + 1).getMaxValue();
```
https://github.com/llvm/llvm-project/pull/183772
More information about the llvm-commits
mailing list