@@ -590,12 +590,12 @@ let Predicates = [HasVendorXTHeadBb, IsRV64] in {
590
590
def : PatGprImm<riscv_rorw, TH_SRRIW, uimm5>;
591
591
def : Pat<(riscv_rolw GPR:$rs1, uimm5:$rs2),
592
592
(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)))>;
599
599
} // Predicates = [HasVendorXTHeadBb, IsRV64]
600
600
601
601
let Predicates = [HasVendorXTHeadBs] in {
@@ -697,11 +697,13 @@ def uimm2_4 : Operand<XLenVT>, ImmLeaf<XLenVT, [{
697
697
}], uimm2_4_XFORM>;
698
698
699
699
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)>;
702
704
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)>;
705
707
}
706
708
707
709
let Predicates = [HasVendorXTHeadMemPair] in {
0 commit comments