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

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 8 06:03:52 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()));
----------------
arsenm wrote:

You don't need mi_match, you can directly check the flags on the instruction the same as the dag pattern 

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


More information about the llvm-commits mailing list