[llvm] [RISCV] Refactor RISCVDAGToDAGISel::selectSimm5Shl2. NFC (PR #148731)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 14 14:48:26 PDT 2025
https://github.com/topperc created https://github.com/llvm/llvm-project/pull/148731
Return from the for loop body instead of using a break and checking the shift amount after.
>From 573fe97cc6521e0ba8a11a290b5fdbaf2b48d533 Mon Sep 17 00:00:00 2001
From: Craig Topper <craig.topper at sifive.com>
Date: Mon, 14 Jul 2025 14:46:15 -0700
Subject: [PATCH] [RISCV] Refactor RISCVDAGToDAGISel::selectSimm5Shl2. NFC
Return from the for loop body instead of using a break.
---
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp | 25 +++++++++------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
index c97b14a254cdc..815b014cfb4ce 100644
--- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
@@ -3776,21 +3776,18 @@ bool RISCVDAGToDAGISel::hasAllNBitUsers(SDNode *Node, unsigned Bits,
// Select a constant that can be represented as (sign_extend(imm5) << imm2).
bool RISCVDAGToDAGISel::selectSimm5Shl2(SDValue N, SDValue &Simm5,
SDValue &Shl2) {
- if (auto *C = dyn_cast<ConstantSDNode>(N)) {
- int64_t Offset = C->getSExtValue();
- unsigned Shift;
- for (Shift = 0; Shift < 4; Shift++)
- if (isInt<5>(Offset >> Shift) && ((Offset % (1LL << Shift)) == 0))
- break;
-
- // Constant cannot be encoded.
- if (Shift == 4)
- return false;
+ auto *C = dyn_cast<ConstantSDNode>(N);
+ if (!C)
+ return false;
- EVT Ty = N->getValueType(0);
- Simm5 = CurDAG->getSignedTargetConstant(Offset >> Shift, SDLoc(N), Ty);
- Shl2 = CurDAG->getTargetConstant(Shift, SDLoc(N), Ty);
- return true;
+ int64_t Offset = C->getSExtValue();
+ for (unsigned Shift = 0; Shift < 4; Shift++) {
+ if (isInt<5>(Offset >> Shift) && ((Offset % (1LL << Shift)) == 0)) {
+ EVT VT = N->getValueType(0);
+ Simm5 = CurDAG->getSignedTargetConstant(Offset >> Shift, SDLoc(N), VT);
+ Shl2 = CurDAG->getTargetConstant(Shift, SDLoc(N), VT);
+ return true;
+ }
}
return false;
More information about the llvm-commits
mailing list