[llvm] [AArch64] Lower disjoint_or+not to eon. (PR #147279)

David Green via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 8 06:21:10 PDT 2025


================
@@ -1140,6 +1140,19 @@ def not  : PatFrag<(ops node:$in), (xor node:$in, -1)>;
 def vnot : PatFrag<(ops node:$in), (xor node:$in, immAllOnesV)>;
 def ineg : PatFrag<(ops node:$in), (sub 0, node:$in)>;
 
+def or_disjoint : PatFrag<(ops node:$lhs, node:$rhs),
+                          (or node:$lhs, node:$rhs), [{
+  return N->getFlags().hasDisjoint();
+}]> {
+  let GISelPredicateCode = [{
+    return mi_match(MI, MRI, m_GDisjointOr(m_Reg(), m_Reg()));
----------------
davemgreen wrote:

(It looks like it is failing on some backends too, as they don't include MIPatternMatch.h)

https://github.com/llvm/llvm-project/pull/147279


More information about the llvm-commits mailing list