[PATCH] D67155: [InstCombine] Fold sub (and A, B) (or A, B)) to not (xor A, B)

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 4 05:30:03 PDT 2019


lebedev.ri requested changes to this revision.
lebedev.ri added inline comments.
This revision now requires changes to proceed.


================
Comment at: lib/Transforms/InstCombine/InstCombineAddSub.cpp:1731-1732
+    Value *A, *B;
+    if (match(Op0, m_And(m_Value(A), m_Value(B))) &&
+        match(Op1, m_c_Or(m_Specific(A), m_Specific(B))))
+      return BinaryOperator::CreateNot(Builder.CreateXor(A, B));
----------------
&& (Op0.hasOneUse() || Op1.hasOneUse())


================
Comment at: lib/Transforms/InstCombine/InstCombineAddSub.cpp:1733
+        match(Op1, m_c_Or(m_Specific(A), m_Specific(B))))
+      return BinaryOperator::CreateNot(Builder.CreateXor(A, B));
+  }
----------------
Not != Neg


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67155/new/

https://reviews.llvm.org/D67155





More information about the llvm-commits mailing list