Skip to content

Commit a7425f9

Browse files
committed
[RISCV] Use (i64 GPR:$rs1) instead of i64:$rs1 in isel patterns.
1 parent 7c2f109 commit a7425f9

File tree

3 files changed

+14
-12
lines changed

3 files changed

+14
-12
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,7 @@ foreach vti = AllIntegerVectors in {
910910
foreach vti = I64IntegerVectors in {
911911
let Predicates = [HasVInstructionsI64] in {
912912
def : Pat<(add (vti.Vector vti.RegClass:$rs1),
913-
(vti.Vector (SplatPat_imm64_neg i64:$rs2))),
913+
(vti.Vector (SplatPat_imm64_neg (i64 GPR:$rs2)))),
914914
(!cast<Instruction>("PseudoVSUB_VX_"#vti.LMul.MX)
915915
(vti.Vector (IMPLICIT_DEF)),
916916
vti.RegClass:$rs1,

llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2123,7 +2123,7 @@ foreach vti = AllIntegerVectors in {
21232123
foreach vti = I64IntegerVectors in {
21242124
let Predicates = [HasVInstructionsI64] in {
21252125
def : Pat<(riscv_add_vl (vti.Vector vti.RegClass:$rs1),
2126-
(vti.Vector (SplatPat_imm64_neg i64:$rs2)),
2126+
(vti.Vector (SplatPat_imm64_neg (i64 GPR:$rs2))),
21272127
vti.RegClass:$passthru, (vti.Mask VMV0:$vm), VLOpFrag),
21282128
(!cast<Instruction>("PseudoVSUB_VX_"#vti.LMul.MX#"_MASK")
21292129
vti.RegClass:$passthru, vti.RegClass:$rs1,

llvm/lib/Target/RISCV/RISCVInstrInfoXTHead.td

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -590,12 +590,12 @@ let Predicates = [HasVendorXTHeadBb, IsRV64] in {
590590
def : PatGprImm<riscv_rorw, TH_SRRIW, uimm5>;
591591
def : Pat<(riscv_rolw GPR:$rs1, uimm5:$rs2),
592592
(TH_SRRIW GPR:$rs1, (ImmSubFrom32 uimm5:$rs2))>;
593-
def : Pat<(sra (bswap i64:$rs1), (i64 32)),
594-
(TH_REVW i64:$rs1)>;
595-
def : Pat<(binop_allwusers<srl> (bswap i64:$rs1), (i64 32)),
596-
(TH_REVW i64:$rs1)>;
597-
def : Pat<(riscv_clzw i64:$rs1),
598-
(TH_FF0 (i64 (SLLI (i64 (XORI i64:$rs1, -1)), 32)))>;
593+
def : Pat<(i64 (sra (bswap GPR:$rs1), (i64 32))),
594+
(TH_REVW GPR:$rs1)>;
595+
def : Pat<(binop_allwusers<srl> (bswap GPR:$rs1), (i64 32)),
596+
(TH_REVW GPR:$rs1)>;
597+
def : Pat<(riscv_clzw GPR:$rs1),
598+
(TH_FF0 (i64 (SLLI (i64 (XORI GPR:$rs1, -1)), 32)))>;
599599
} // Predicates = [HasVendorXTHeadBb, IsRV64]
600600

601601
let Predicates = [HasVendorXTHeadBs] in {
@@ -697,11 +697,13 @@ def uimm2_4 : Operand<XLenVT>, ImmLeaf<XLenVT, [{
697697
}], uimm2_4_XFORM>;
698698

699699
let Predicates = [HasVendorXTHeadMemPair, IsRV64] in {
700-
def : Pat<(th_lwud i64:$rs1, uimm2_3:$uimm2_3), (TH_LWUD i64:$rs1, uimm2_3:$uimm2_3, 3)>;
701-
def : Pat<(th_ldd i64:$rs1, uimm2_4:$uimm2_4), (TH_LDD i64:$rs1, uimm2_4:$uimm2_4, 4)>;
700+
def : Pat<(th_lwud GPR:$rs1, (i64 uimm2_3:$uimm2_3)),
701+
(TH_LWUD GPR:$rs1, uimm2_3:$uimm2_3, 3)>;
702+
def : Pat<(th_ldd GPR:$rs1, (i64 uimm2_4:$uimm2_4)),
703+
(TH_LDD GPR:$rs1, uimm2_4:$uimm2_4, 4)>;
702704

703-
def : Pat<(th_sdd i64:$rd1, i64:$rd2, i64:$rs1, uimm2_4:$uimm2_4),
704-
(TH_SDD i64:$rd1, i64:$rd2, i64:$rs1, uimm2_4:$uimm2_4, 4)>;
705+
def : Pat<(th_sdd (i64 GPR:$rd1), GPR:$rd2, GPR:$rs1, uimm2_4:$uimm2_4),
706+
(TH_SDD GPR:$rd1, GPR:$rd2, GPR:$rs1, uimm2_4:$uimm2_4, 4)>;
705707
}
706708

707709
let Predicates = [HasVendorXTHeadMemPair] in {

0 commit comments

Comments
 (0)