[llvm] [X86] Improve transform for add-like nodes to `add` (PR #83691)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sat Mar 2 17:27:07 PST 2024
topperc wrote:
This seems like maybe the better patch
```
def or_is_add : PatFrag<(ops node:$lhs, node:$rhs), (or node:$lhs, node:$rhs),[{
- if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1)))
- return CurDAG->MaskedValueIsZero(N->getOperand(0), CN->getAPIntValue());
-
- KnownBits Known0 = CurDAG->computeKnownBits(N->getOperand(0), 0);
- KnownBits Known1 = CurDAG->computeKnownBits(N->getOperand(1), 0);
- return (~Known0.Zero & ~Known1.Zero) == 0;
+ return CurDAG->isADDLike(SDValue(N, 0));
}]>;
```
https://github.com/llvm/llvm-project/pull/83691
More information about the llvm-commits
mailing list