Skip to content

Commit 5148669

Browse files
committed
[RISCV] Add LD_RV32/SD_RV32 to RISCVInstrInfo::canFoldIntoAddrMode.
1 parent d75782f commit 5148669

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2935,6 +2935,7 @@ bool RISCVInstrInfo::canFoldIntoAddrMode(const MachineInstr &MemI, Register Reg,
29352935
case RISCV::LW_INX:
29362936
case RISCV::LWU:
29372937
case RISCV::LD:
2938+
case RISCV::LD_RV32:
29382939
case RISCV::FLH:
29392940
case RISCV::FLW:
29402941
case RISCV::FLD:
@@ -2944,6 +2945,7 @@ bool RISCVInstrInfo::canFoldIntoAddrMode(const MachineInstr &MemI, Register Reg,
29442945
case RISCV::SW:
29452946
case RISCV::SW_INX:
29462947
case RISCV::SD:
2948+
case RISCV::SD_RV32:
29472949
case RISCV::FSH:
29482950
case RISCV::FSW:
29492951
case RISCV::FSD:

llvm/test/CodeGen/RISCV/fold-addi-loadstore-zilsd.ll

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,13 @@ define double @fold_addi_from_different_bb(i32 %k, i32 %n, ptr %a) nounwind {
4646
; CHECK-NEXT: mv s0, a2
4747
; CHECK-NEXT: mv s1, a1
4848
; CHECK-NEXT: slli a0, a0, 4
49-
; CHECK-NEXT: add a0, a2, a0
50-
; CHECK-NEXT: addi s4, a0, 8
49+
; CHECK-NEXT: add s4, a2, a0
5150
; CHECK-NEXT: fcvt.d.w s2, zero
5251
; CHECK-NEXT: .LBB2_2: # %for.body
5352
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
5453
; CHECK-NEXT: mv a0, s0
5554
; CHECK-NEXT: call f
56-
; CHECK-NEXT: ld a0, 0(s4)
55+
; CHECK-NEXT: ld a0, 8(s4)
5756
; CHECK-NEXT: addi s1, s1, -1
5857
; CHECK-NEXT: fadd.d s2, a0, s2
5958
; CHECK-NEXT: bnez s1, .LBB2_2
@@ -102,11 +101,10 @@ define void @split_offset(ptr %dest, double %x) {
102101
; CHECK-NEXT: mv a3, a2
103102
; CHECK-NEXT: addi a0, a0, 2047
104103
; CHECK-NEXT: mv a2, a1
105-
; CHECK-NEXT: addi a1, a0, 1
106104
; CHECK-NEXT: sd a2, 1(a0)
107-
; CHECK-NEXT: sd a2, 8(a1)
108-
; CHECK-NEXT: sd a2, 16(a1)
109-
; CHECK-NEXT: sd a2, 24(a1)
105+
; CHECK-NEXT: sd a2, 9(a0)
106+
; CHECK-NEXT: sd a2, 17(a0)
107+
; CHECK-NEXT: sd a2, 25(a0)
110108
; CHECK-NEXT: ret
111109
%p1 = getelementptr double, ptr %dest, i32 256
112110
store double %x, ptr %p1

0 commit comments

Comments
 (0)