Skip to content

Commit a6e5616

Browse files
authored
[RISCV] Modify operand regclass in load store patterns (#133071)
$rs1 is defined as GPRMem in the correspoding instruction definition classes.
1 parent 39e7efe commit a6e5616

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,8 +1836,8 @@ def PseudoZEXT_W : Pseudo<(outs GPR:$rd), (ins GPR:$rs), [], "zext.w", "$rd, $rs
18361836
/// Loads
18371837

18381838
class LdPat<PatFrag LoadOp, RVInst Inst, ValueType vt = XLenVT>
1839-
: Pat<(vt (LoadOp (AddrRegImm (XLenVT GPR:$rs1), simm12:$imm12))),
1840-
(Inst GPR:$rs1, simm12:$imm12)>;
1839+
: Pat<(vt (LoadOp (AddrRegImm (XLenVT GPRMem:$rs1), simm12:$imm12))),
1840+
(Inst GPRMem:$rs1, simm12:$imm12)>;
18411841

18421842
def : LdPat<sextloadi8, LB>;
18431843
def : LdPat<extloadi8, LBU>; // Prefer unsigned due to no c.lb in Zcb.
@@ -1851,9 +1851,9 @@ def : LdPat<zextloadi16, LHU>;
18511851

18521852
class StPat<PatFrag StoreOp, RVInst Inst, RegisterClass StTy,
18531853
ValueType vt>
1854-
: Pat<(StoreOp (vt StTy:$rs2), (AddrRegImm (XLenVT GPR:$rs1),
1854+
: Pat<(StoreOp (vt StTy:$rs2), (AddrRegImm (XLenVT GPRMem:$rs1),
18551855
simm12:$imm12)),
1856-
(Inst StTy:$rs2, GPR:$rs1, simm12:$imm12)>;
1856+
(Inst StTy:$rs2, GPRMem:$rs1, simm12:$imm12)>;
18571857

18581858
def : StPat<truncstorei8, SB, GPR, XLenVT>;
18591859
def : StPat<truncstorei16, SH, GPR, XLenVT>;

0 commit comments

Comments
 (0)