[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