[llvm] [NFC][InstCombine] fix duplicate `CreateNot` in ((A^C)^B) & (B^A) fold (PR #197163)

via llvm-commits llvm-commits at lists.llvm.org
Tue May 12 04:56:27 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-transforms

Author: Iris Shi (el-ev)

<details>
<summary>Changes</summary>

It obviously should use the `NotC` created 4 lines above

---
Full diff: https://github.com/llvm/llvm-project/pull/197163.diff


1 Files Affected:

- (modified) llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp (+1-1) 


``````````diff
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
index c9f2418fae6fd..5f9fecc7c5675 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
@@ -2754,7 +2754,7 @@ Instruction *InstCombinerImpl::visitAnd(BinaryOperator &I) {
                         ? Builder.CreateNot(C)
                         : getFreelyInverted(C, C->hasOneUse(), &Builder);
       if (NotC != nullptr)
-        return BinaryOperator::CreateAnd(Op1, Builder.CreateNot(C));
+        return BinaryOperator::CreateAnd(Op1, NotC);
     }
 
     // (A | B) & (~A ^ B) -> A & B

``````````

</details>


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


More information about the llvm-commits mailing list