Skip to content

Commit 6b9fb88

Browse files
committed
Add a few more opcodes found by asserting on frame indexes with mayLoad/mayStore.
One test looks like a regression, which is probably rematerialization not being handled for something.
1 parent 84d6f12 commit 6b9fb88

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ Register RISCVInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
118118
case RISCV::FLD:
119119
MemBytes = 8;
120120
break;
121+
case RISCV::VL1RE8_V:
122+
case RISCV::VL2RE8_V:
123+
case RISCV::VL4RE8_V:
121124
case RISCV::VL8RE8_V:
122125
if (!MI.getOperand(1).isFI())
123126
return Register();
@@ -164,6 +167,9 @@ Register RISCVInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
164167
case RISCV::FSD:
165168
MemBytes = 8;
166169
break;
170+
case RISCV::VS1R_V:
171+
case RISCV::VS2R_V:
172+
case RISCV::VS4R_V:
167173
case RISCV::VS8R_V:
168174
if (!MI.getOperand(1).isFI())
169175
return Register();

llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -781,13 +781,13 @@ define {<8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>} @load_
781781
; RV64-NEXT: vl8r.v v16, (a1) # Unknown-size Folded Reload
782782
; RV64-NEXT: vsetivli zero, 16, e64, m8, ta, ma
783783
; RV64-NEXT: vmerge.vvm v24, v16, v8, v0
784-
; RV64-NEXT: vmv8r.v v16, v8
785784
; RV64-NEXT: csrr a1, vlenb
786785
; RV64-NEXT: li a3, 76
787786
; RV64-NEXT: mul a1, a1, a3
788787
; RV64-NEXT: add a1, sp, a1
789788
; RV64-NEXT: addi a1, a1, 16
790789
; RV64-NEXT: vs8r.v v8, (a1) # Unknown-size Folded Spill
790+
; RV64-NEXT: vmv8r.v v16, v8
791791
; RV64-NEXT: vrgatherei16.vv v8, v24, v2
792792
; RV64-NEXT: csrr a1, vlenb
793793
; RV64-NEXT: slli a1, a1, 5
@@ -904,7 +904,6 @@ define {<8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>} @load_
904904
; RV64-NEXT: add a1, sp, a1
905905
; RV64-NEXT: addi a1, a1, 16
906906
; RV64-NEXT: vs8r.v v24, (a1) # Unknown-size Folded Spill
907-
; RV64-NEXT: vmv8r.v v16, v8
908907
; RV64-NEXT: vmv1r.v v0, v7
909908
; RV64-NEXT: csrr a1, vlenb
910909
; RV64-NEXT: li a3, 72
@@ -917,10 +916,10 @@ define {<8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>} @load_
917916
; RV64-NEXT: mul a1, a1, a3
918917
; RV64-NEXT: add a1, sp, a1
919918
; RV64-NEXT: addi a1, a1, 16
920-
; RV64-NEXT: vl8r.v v24, (a1) # Unknown-size Folded Reload
921-
; RV64-NEXT: vmv4r.v v8, v24
919+
; RV64-NEXT: vl8r.v v16, (a1) # Unknown-size Folded Reload
920+
; RV64-NEXT: vmv4r.v v8, v16
922921
; RV64-NEXT: vsetivli zero, 8, e64, m4, ta, mu
923-
; RV64-NEXT: vrgather.vi v12, v24, 5, v0.t
922+
; RV64-NEXT: vrgather.vi v12, v16, 5, v0.t
924923
; RV64-NEXT: csrr a1, vlenb
925924
; RV64-NEXT: li a3, 72
926925
; RV64-NEXT: mul a1, a1, a3
@@ -939,7 +938,7 @@ define {<8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>} @load_
939938
; RV64-NEXT: addi a1, a1, 16
940939
; RV64-NEXT: vl4r.v v24, (a1) # Unknown-size Folded Reload
941940
; RV64-NEXT: vsetivli zero, 8, e64, m4, ta, mu
942-
; RV64-NEXT: vrgatherei16.vv v24, v8, v12, v0.t
941+
; RV64-NEXT: vrgatherei16.vv v24, v16, v12, v0.t
943942
; RV64-NEXT: csrr a1, vlenb
944943
; RV64-NEXT: slli a1, a1, 6
945944
; RV64-NEXT: add a1, sp, a1
@@ -955,7 +954,12 @@ define {<8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>, <8 x i64>} @load_
955954
; RV64-NEXT: vmv.v.x v12, a4
956955
; RV64-NEXT: vsetivli zero, 16, e64, m8, ta, ma
957956
; RV64-NEXT: vle16.v v6, (a1)
958-
; RV64-NEXT: vmv8r.v v24, v16
957+
; RV64-NEXT: csrr a1, vlenb
958+
; RV64-NEXT: li a3, 40
959+
; RV64-NEXT: mul a1, a1, a3
960+
; RV64-NEXT: add a1, sp, a1
961+
; RV64-NEXT: addi a1, a1, 16
962+
; RV64-NEXT: vl8r.v v24, (a1) # Unknown-size Folded Reload
959963
; RV64-NEXT: csrr a1, vlenb
960964
; RV64-NEXT: li a3, 76
961965
; RV64-NEXT: mul a1, a1, a3

0 commit comments

Comments
 (0)