[PATCH] D98877: [RISCV] Use selectImm for RV32. NFC
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 23 08:57:53 PDT 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rG839a46d88fc3: [RISCV] Use selectImm for RV32. NFC (authored by craig.topper).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D98877/new/
https://reviews.llvm.org/D98877
Files:
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
llvm/lib/Target/RISCV/RISCVInstrInfo.td
Index: llvm/lib/Target/RISCV/RISCVInstrInfo.td
===================================================================
--- llvm/lib/Target/RISCV/RISCVInstrInfo.td
+++ llvm/lib/Target/RISCV/RISCVInstrInfo.td
@@ -308,21 +308,6 @@
def AddrFI : ComplexPattern<iPTR, 1, "SelectAddrFI", [frameindex], []>;
def BaseAddr : ComplexPattern<iPTR, 1, "SelectBaseAddr">;
-// Extract least significant 12 bits from an immediate value and sign extend
-// them.
-def LO12Sext : SDNodeXForm<imm, [{
- return CurDAG->getTargetConstant(SignExtend64<12>(N->getZExtValue()),
- SDLoc(N), N->getValueType(0));
-}]>;
-
-// Extract the most significant 20 bits from an immediate value. Add 1 if bit
-// 11 is 1, to compensate for the low 12 bits in the matching immediate addi
-// or ld/st being negative.
-def HI20 : SDNodeXForm<imm, [{
- return CurDAG->getTargetConstant(((N->getZExtValue()+0x800) >> 12) & 0xfffff,
- SDLoc(N), N->getValueType(0));
-}]>;
-
// Return the negation of an immediate value.
def NegImm : SDNodeXForm<imm, [{
return CurDAG->getTargetConstant(-N->getSExtValue(), SDLoc(N),
@@ -874,13 +859,6 @@
return MatchSLLIUW(N);
}]>;
-/// Immediates
-
-def : Pat<(simm12:$imm), (ADDI X0, simm12:$imm)>;
-def : Pat<(simm32hi20:$imm), (LUI (HI20 imm:$imm))>;
-def : Pat<(i32 (simm32:$imm)), (ADDI (LUI (HI20 imm:$imm)), (LO12Sext imm:$imm))>,
- Requires<[IsRV32]>;
-
/// Simple arithmetic operations
def : PatGprGpr<add, ADD>;
Index: llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
===================================================================
--- llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+++ llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
@@ -416,11 +416,8 @@
ReplaceNode(Node, New.getNode());
return;
}
- int64_t Imm = ConstNode->getSExtValue();
- if (XLenVT == MVT::i64) {
- ReplaceNode(Node, selectImm(CurDAG, DL, Imm, XLenVT));
- return;
- }
+ ReplaceNode(Node, selectImm(CurDAG, DL, ConstNode->getSExtValue(), XLenVT));
+ return;
break;
}
case ISD::FrameIndex: {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98877.332690.patch
Type: text/x-patch
Size: 2105 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210323/f7cf40cc/attachment.bin>
More information about the llvm-commits
mailing list