[llvm] [RISCV][GISel] Lower G_SSUBE (PR #157855)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 10 06:18:32 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 origin/main HEAD --extensions h,cpp -- llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 518cb6616..ab4023d8b 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -9300,21 +9300,20 @@ LegalizerHelper::lowerSADDO_SSUBO(MachineInstr &MI) {
return Legalized;
}
-LegalizerHelper::LegalizeResult
-LegalizerHelper::lowerSSUBE(MachineInstr &MI) {
+LegalizerHelper::LegalizeResult LegalizerHelper::lowerSSUBE(MachineInstr &MI) {
auto [Res, OvOut, LHS, RHS, CarryIn] = MI.getFirst5Regs();
- const LLT Ty = MRI.getType(Res);
+ const LLT Ty = MRI.getType(Res);
// sum = LHS - (RHS + zext(CarryIn))
auto CarryZ = MIRBuilder.buildZExt(Ty, CarryIn);
- auto RHSp = MIRBuilder.buildAdd(Ty, RHS, CarryZ);
- auto Sum = MIRBuilder.buildSub(Ty, LHS, RHSp);
+ auto RHSp = MIRBuilder.buildAdd(Ty, RHS, CarryZ);
+ auto Sum = MIRBuilder.buildSub(Ty, LHS, RHSp);
MIRBuilder.buildCopy(Res, Sum);
// ov = msb( (LHS ^ RHS) & (LHS ^ Sum) )
- auto X1 = MIRBuilder.buildXor(Ty, LHS, RHS);
- auto X2 = MIRBuilder.buildXor(Ty, LHS, Sum);
- auto T = MIRBuilder.buildAnd(Ty, X1, X2);
+ auto X1 = MIRBuilder.buildXor(Ty, LHS, RHS);
+ auto X2 = MIRBuilder.buildXor(Ty, LHS, Sum);
+ auto T = MIRBuilder.buildAnd(Ty, X1, X2);
auto Zero = MIRBuilder.buildConstant(Ty, 0);
MIRBuilder.buildICmp(CmpInst::ICMP_SLT, OvOut, T, Zero);
diff --git a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
index d5354aad7..1146ed441 100644
--- a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
+++ b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
@@ -151,7 +151,9 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
getActionDefinitionsBuilder(
{G_UADDE, G_UADDO, G_USUBE, G_USUBO}).lower();
- getActionDefinitionsBuilder({G_SADDO, G_SSUBO, G_SSUBE}).minScalar(0, sXLen).lower();
+ getActionDefinitionsBuilder({G_SADDO, G_SSUBO, G_SSUBE})
+ .minScalar(0, sXLen)
+ .lower();
// TODO: Use Vector Single-Width Saturating Instructions for vector types.
getActionDefinitionsBuilder(
``````````
</details>
https://github.com/llvm/llvm-project/pull/157855
More information about the llvm-commits
mailing list