[llvm] [InstCombine] Support reassoc for foldLogicOfFCmps (PR #116065)

via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 13 07:26:47 PST 2024


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff 9c928d0308eb75f52e570d61330975a67e0be71c c23092a7ce4ddcdb808b139f91ef71bfddc1257a --extensions cpp -- llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
index 882604e79a..0e2bd19f13 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
@@ -2739,29 +2739,25 @@ Instruction *InstCombinerImpl::visitAnd(BinaryOperator &I) {
     bool IsLogical = isa<SelectInst>(Op1);
     // Op0 & (X && Y) --> (Op0 && X) && Y
     if (Value *Res = foldBooleanAndOr(Op0, X, I, /* IsAnd */ true, IsLogical))
-      return replaceInstUsesWith(I, IsLogical
-                                        ? Builder.CreateLogicalAnd(Res, Y)
-                                        : Builder.CreateAnd(Res, Y));
+      return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(Res, Y)
+                                              : Builder.CreateAnd(Res, Y));
     // Op0 & (X && Y) --> X && (Op0 & Y)
     if (Value *Res = foldBooleanAndOr(Op0, Y, I, /* IsAnd */ true,
                                       /* IsLogical */ false))
-      return replaceInstUsesWith(I, IsLogical
-                                        ? Builder.CreateLogicalAnd(X, Res)
-                                        : Builder.CreateAnd(X, Res));
+      return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(X, Res)
+                                              : Builder.CreateAnd(X, Res));
   }
   if (match(Op0, m_OneUse(m_LogicalAnd(m_Value(X), m_Value(Y))))) {
     bool IsLogical = isa<SelectInst>(Op0);
     // (X && Y) & Op1 --> (X && Op1) && Y
     if (Value *Res = foldBooleanAndOr(X, Op1, I, /* IsAnd */ true, IsLogical))
-      return replaceInstUsesWith(I, IsLogical
-                                        ? Builder.CreateLogicalAnd(Res, Y)
-                                        : Builder.CreateAnd(Res, Y));
+      return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(Res, Y)
+                                              : Builder.CreateAnd(Res, Y));
     // (X && Y) & Op1 --> X && (Y & Op1)
     if (Value *Res = foldBooleanAndOr(Y, Op1, I, /* IsAnd */ true,
                                       /* IsLogical */ false))
-      return replaceInstUsesWith(I, IsLogical
-                                        ? Builder.CreateLogicalAnd(X, Res)
-                                        : Builder.CreateAnd(X, Res));
+      return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(X, Res)
+                                              : Builder.CreateAnd(X, Res));
   }
 
   if (Instruction *FoldedFCmps = reassociateFCmps(I, Builder))

``````````

</details>


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


More information about the llvm-commits mailing list