[llvm] [InstCombine] smin(smax(X, -1), 1) -> scmp(X, 0) and smax(smin(X, 1), -1) -> scmp(X, 0) (PR #145736)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 25 09:25:46 PDT 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 HEAD~1 HEAD --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 5f1624abf..47ce06906 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -1940,14 +1940,16 @@ Instruction *InstCombinerImpl::visitCallInst(CallInst &CI) {
     }
 
     if (IID == Intrinsic::smax) {
-      if (match(I0, m_OneUse(m_Intrinsic<Intrinsic::smin>(m_Value(X), m_One()))) &&
+      if (match(I0,
+                m_OneUse(m_Intrinsic<Intrinsic::smin>(m_Value(X), m_One()))) &&
           match(I1, m_AllOnes())) {
         Value *Zero = ConstantInt::get(X->getType(), 0);
-        return replaceInstUsesWith(CI,
+        return replaceInstUsesWith(
+            CI,
             Builder.CreateIntrinsic(II->getType(), Intrinsic::scmp, {X, Zero}));
       }
     }
-    
+
     if (match(I0, m_SExt(m_Value(X))) && match(I1, m_SExt(m_Value(Y))) &&
         (I0->hasOneUse() || I1->hasOneUse()) && X->getType() == Y->getType()) {
       Value *NarrowMaxMin = Builder.CreateBinaryIntrinsic(IID, X, Y);

``````````

</details>


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


More information about the llvm-commits mailing list