[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