[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