Skip to content

Commit c8806fa

Browse files
committed
[RISCV] Add LD_RV32/SD_RV32 to RISCVInstrInfo::canFoldIntoAddrMode.
1 parent 0f172f3 commit c8806fa

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
@@ -61,14 +61,13 @@ define double @fold_addi_from_different_bb(i64 %k, i64 %n, ptr %a) nounwind {
6161
; CHECK-NEXT: li s3, 0
6262
; CHECK-NEXT: li s6, 0
6363
; CHECK-NEXT: slli a0, a0, 4
64-
; CHECK-NEXT: add a0, s0, a0
65-
; CHECK-NEXT: addi s7, a0, 8
64+
; CHECK-NEXT: add s7, s0, a0
6665
; CHECK-NEXT: fcvt.d.w s4, zero
6766
; CHECK-NEXT: .LBB2_5: # %for.body
6867
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
6968
; CHECK-NEXT: mv a0, s0
7069
; CHECK-NEXT: call f
71-
; CHECK-NEXT: ld a0, 0(s7)
70+
; CHECK-NEXT: ld a0, 8(s7)
7271
; CHECK-NEXT: addi s3, s3, 1
7372
; CHECK-NEXT: seqz a2, s3
7473
; CHECK-NEXT: add s6, s6, a2
@@ -122,11 +121,10 @@ define void @split_offset(ptr %dest, double %x) {
122121
; CHECK-NEXT: mv a3, a2
123122
; CHECK-NEXT: addi a0, a0, 2047
124123
; CHECK-NEXT: mv a2, a1
125-
; CHECK-NEXT: addi a1, a0, 1
126124
; CHECK-NEXT: sd a2, 1(a0)
127-
; CHECK-NEXT: sd a2, 8(a1)
128-
; CHECK-NEXT: sd a2, 16(a1)
129-
; CHECK-NEXT: sd a2, 24(a1)
125+
; CHECK-NEXT: sd a2, 9(a0)
126+
; CHECK-NEXT: sd a2, 17(a0)
127+
; CHECK-NEXT: sd a2, 25(a0)
130128
; CHECK-NEXT: ret
131129
%p1 = getelementptr double, ptr %dest, i32 256
132130
store double %x, ptr %p1

0 commit comments

Comments
 (0)