diff --git a/llvm/lib/Target/RISCV/RISCVGISel.td b/llvm/lib/Target/RISCV/RISCVGISel.td index 19d5aff023d53..af1ceb6bcda4e 100644 --- a/llvm/lib/Target/RISCV/RISCVGISel.td +++ b/llvm/lib/Target/RISCV/RISCVGISel.td @@ -118,7 +118,7 @@ let Predicates = [HasAtomicLdSt] in { } let Predicates = [HasAtomicLdSt, IsRV64] in { - def : LdPat; + // Load pattern is in RISCVInstrInfoA.td and shared with RV32. def : StPat; } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td index 99992d196b43d..25accd93eaa03 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td @@ -174,15 +174,14 @@ let Predicates = [HasAtomicLdSt] in { def : StPat, SB, GPR, XLenVT>; def : StPat, SH, GPR, XLenVT>; def : StPat, SW, GPR, XLenVT>; -} -let Predicates = [HasAtomicLdSt, IsRV32] in { - def : LdPat, LW>; + // Used by GISel for RV32 and RV64. + def : LdPat, LW, i32>; } let Predicates = [HasAtomicLdSt, IsRV64] in { - def : LdPat, LW>; - def : LdPat, LWU>; + def : LdPat, LW, i64>; + def : LdPat, LWU, i64>; def : LdPat, LD, i64>; def : StPat, SD, GPR, i64>; }