[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