[llvm] [InstCombine] Implemented missed optimization in muldivrem (PR #140916)

via llvm-commits llvm-commits at lists.llvm.org
Wed May 21 08:55:43 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/InstCombineMulDivRem.cpp
``````````

</details>

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

``````````diff
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp b/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
index 26839d4ca..17d1863e4 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
@@ -1297,14 +1297,16 @@ Instruction *InstCombinerImpl::commonIDivRemTransforms(BinaryOperator &I) {
                                           /*FoldWithMultiUse*/ true))
       return R;
   }
-  if (match(Op0, m_OneUse(m_Intrinsic<Intrinsic::smul_fix>(m_APInt(C1), m_APInt(C2)))) &&
-    match(Op1, m_OneUse(m_URem(m_Value(X), Op0))) &&
-    match(Op2, m_OneUse(m_UDiv(Op1, m_APInt(C2))))) {
-    
+  if (match(Op0, m_OneUse(m_Intrinsic<Intrinsic::smul_fix>(m_APInt(C1),
+                                                           m_APInt(C2)))) &&
+      match(Op1, m_OneUse(m_URem(m_Value(X), Op0))) &&
+      match(Op2, m_OneUse(m_UDiv(Op1, m_APInt(C2))))) {
+
     Value *XDivC2 = Builder.CreateUDiv(X, ConstantInt::get(X->getType(), *C2));
-    Value *Result = Builder.CreateURem(XDivC2, ConstantInt::get(X->getType(), *C1));
+    Value *Result =
+        Builder.CreateURem(XDivC2, ConstantInt::get(X->getType(), *C1));
     return replaceInstUsesWith(I, Result);
-}
+  }
 
   return nullptr;
 }

``````````

</details>


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


More information about the llvm-commits mailing list