[llvm] [InstCombine] Fold umax(nuw_mul(x, C0), x + 1) into (x == 0 ? 1 : nuw_mul(x, C0)) (PR #123468)

via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 18 16:02:17 PST 2025


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 6b12272353b45def33bf5814cdf9e8587f32d40e b5fd43070903b0f46ad713d987f04caf7c17f4b7 --extensions cpp -- llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
``````````

</details>

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

``````````diff
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index d3d9fe17e9..e5c99978fe 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -1857,20 +1857,20 @@ Instruction *InstCombinerImpl::visitCallInst(CallInst &CI) {
       auto matchShiftOrMul = [&](Value *I) {
         return ((match(I, m_NUWShl(m_Value(X), m_APInt(C0)))) ||
                 (match(I, m_NUWMul(m_Value(X), m_APInt(C0))) &&
-                !C0->isOne())) &&
-              !C0->isZero();
+                 !C0->isOne())) &&
+               !C0->isZero();
       };
       if (matchShiftOrMul(A) &&
           match(B, m_OneUse(m_Add(m_Specific(X), m_One())))) {
         Value *Cmp = Builder.CreateICmpEQ(X, ConstantInt::get(X->getType(), 0));
-        Value *NewSelect = Builder.CreateSelect(
-            Cmp, ConstantInt::get(X->getType(), 1), A);
+        Value *NewSelect =
+            Builder.CreateSelect(Cmp, ConstantInt::get(X->getType(), 1), A);
         return replaceInstUsesWith(*II, NewSelect);
       }
       return nullptr;
     };
 
-    if(IID == Intrinsic::umax){
+    if (IID == Intrinsic::umax) {
       if (Instruction *I = foldMaxMulShift(I0, I1))
         return I;
       if (Instruction *I = foldMaxMulShift(I1, I0))

``````````

</details>


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


More information about the llvm-commits mailing list