Lines Matching refs:rj
635 : Fmt3R<op, (outs GPR:$rd), (ins GPR:$rj, GPR:$rk), "$rd, $rj, $rk">;
637 : Fmt2R<op, (outs GPR:$rd), (ins GPR:$rj), "$rd, $rj">;
640 : Fmt3RI2<op, (outs GPR:$rd), (ins GPR:$rj, GPR:$rk, ImmOpnd:$imm2),
641 "$rd, $rj, $rk, $imm2">;
643 : Fmt3RI3<op, (outs GPR:$rd), (ins GPR:$rj, GPR:$rk, ImmOpnd:$imm3),
644 "$rd, $rj, $rk, $imm3">;
646 : Fmt2RI5<op, (outs GPR:$rd), (ins GPR:$rj, ImmOpnd:$imm5),
647 "$rd, $rj, $imm5">;
649 : Fmt2RI6<op, (outs GPR:$rd), (ins GPR:$rj, ImmOpnd:$imm6),
650 "$rd, $rj, $imm6">;
652 : Fmt2RI12<op, (outs GPR:$rd), (ins GPR:$rj, ImmOpnd:$imm12),
653 "$rd, $rj, $imm12">;
655 : Fmt2RI16<op, (outs GPR:$rd), (ins GPR:$rj, ImmOpnd:$imm16),
656 "$rd, $rj, $imm16">;
667 : Fmt2R<op, (outs GPR:$rd, GPR:$rj), (ins), "$rd, $rj">;
671 : Fmt2RI16<op, (outs), (ins GPR:$rj, GPR:$rd, simm16_lsl2_br:$imm16),
672 "$rj, $rd, $imm16"> {
677 : Fmt1RI21<op, (outs), (ins GPR:$rj, simm21_lsl2:$imm21),
678 "$rj, $imm21"> {
692 : Fmt3R<op, (outs GPR:$rd), (ins GPR:$rj, GPR:$rk), "$rd, $rj, $rk">;
694 : Fmt2RI12<op, (outs GPR:$rd), (ins GPR:$rj, simm12_addlike:$imm12),
695 "$rd, $rj, $imm12">;
697 : Fmt2RI14<op, (outs GPR:$rd), (ins GPR:$rj, simm14_lsl2:$imm14),
698 "$rd, $rj, $imm14">;
703 : Fmt3R<op, (outs), (ins GPR:$rd, GPR:$rj, GPR:$rk),
704 "$rd, $rj, $rk">;
706 : Fmt2RI12<op, (outs), (ins GPR:$rd, GPR:$rj, simm12_addlike:$imm12),
707 "$rd, $rj, $imm12">;
709 : Fmt2RI14<op, (outs), (ins GPR:$rd, GPR:$rj, simm14_lsl2:$imm14),
710 "$rd, $rj, $imm14">;
715 : Fmt3R<op, (outs GPR:$rd), (ins GPR:$rk, GPRMemAtomic:$rj),
716 "$rd, $rk, $rj">;
720 : Fmt2RI14<op, (outs GPR:$rd), (ins GPR:$rj, simm14_lsl2:$imm14),
721 "$rd, $rj, $imm14">;
723 : Fmt2R<op, (outs GPR:$rd), (ins GPR:$rj), "$rd, $rj">;
728 : Fmt2RI14<op, (outs GPR:$dst), (ins GPR:$rd, GPR:$rj, simm14_lsl2:$imm14),
729 "$rd, $rj, $imm14">;
731 : Fmt3R<op, (outs GPR:$dst), (ins GPR:$rd, GPR:$rk, GPR:$rj),
732 "$rd, $rk, $rj">;
734 : Fmt2R<op, (outs GPR:$dst), (ins GPR:$rd, GPR:$rj), "$rd, $rj">;
739 : Fmt2R<op, (outs GPR:$rd), (ins GPR:$rj), "$rd, $rj">;
743 : Fmt2R<op, (outs), (ins GPR:$rd, GPR:$rj), "$rd, $rj">;
810 (ins GPR:$rd, GPR:$rj, uimm5:$msbw, uimm5:$lsbw),
811 "$rd, $rj, $msbw, $lsbw">;
814 (ins GPR:$rj, uimm5:$msbw, uimm5:$lsbw),
815 "$rd, $rj, $msbw, $lsbw">;
834 (ins GPR:$rj, simm16_lsl2:$imm16), "$rd, $rj, $imm16">;
846 def PRELD : FmtPRELD<(outs), (ins uimm5:$imm5, GPR:$rj, simm12:$imm12),
847 "$imm5, $rj, $imm12">;
867 def CACOP : FmtCACOP<(outs), (ins uimm5:$op, GPR:$rj, simm12:$imm12),
868 "$op, $rj, $imm12">;
934 (ins GPR:$rd, GPR:$rj, uimm6:$msbd, uimm6:$lsbd),
935 "$rd, $rj, $msbd, $lsbd">;
938 (ins GPR:$rj, uimm6:$msbd, uimm6:$lsbd),
939 "$rd, $rj, $msbd, $lsbd">;
961 def PRELDX : FmtPRELDX<(outs), (ins uimm5:$imm5, GPR:$rj, GPR:$rk),
962 "$imm5, $rj, $rk">;
1052 def ASRTLE_D : FmtASRT<0x00010000, (outs), (ins GPR:$rj, GPR:$rk),
1053 "$rj, $rk">;
1054 def ASRTGT_D : FmtASRT<0x00018000, (outs), (ins GPR:$rj, GPR:$rk),
1055 "$rj, $rk">;
1072 : Pat<(OpNode GPR:$rj, GPR:$rk), (Inst GPR:$rj, GPR:$rk)>;
1074 …: Pat<(sext_inreg (OpNode (assertsexti32 GPR:$rj), (assertsexti32 GPR:$rk)), i32), (Inst GPR:$rj, …
1076 : Pat<(OpNode GPR:$rj), (Inst GPR:$rj)>;
1079 : Pat<(OpNode GPR:$rj, ImmOpnd:$imm),
1080 (Inst GPR:$rj, ImmOpnd:$imm)>;
1082 : Pat<(sext_inreg (OpNode GPR:$rj, ImmOpnd:$imm), i32),
1083 (Inst GPR:$rj, ImmOpnd:$imm)>;
1135 def : Pat<(or (shl GPR:$rk, (i32 ShamtA)), (srl GPR:$rj, (i32 ShamtB))),
1136 (BYTEPICK_W GPR:$rj, GPR:$rk, Idx)>;
1164 def : Pat<(i64 (mul (sext_inreg GPR:$rj, i32), (sext_inreg GPR:$rk, i32))),
1165 (MULW_D_W GPR:$rj, GPR:$rk)>;
1168 def : Pat<(i64 (mul (loongarch_bstrpick GPR:$rj, (i64 31), (i64 0)),
1170 (MULW_D_WU GPR:$rj, GPR:$rk)>;
1172 def : Pat<(add GPR:$rj, simm16_lsl16:$imm),
1173 (ADDU16I_D GPR:$rj, (HI16 $imm))>;
1174 def : Pat<(add GPR:$rj, simm32_hi16_lo12:$imm),
1175 (ADDI_D (ADDU16I_D GPR:$rj, (HI16ForAddu16idAddiPair $imm)),
1177 def : Pat<(sext_inreg (add GPR:$rj, simm32_hi16_lo12:$imm), i32),
1178 (ADDI_W (ADDU16I_D GPR:$rj, (HI16ForAddu16idAddiPair $imm)),
1182 def : Pat<(add GPR:$rj, (AddiPair:$im)),
1183 (ADDI_W (ADDI_W GPR:$rj, (AddiPairImmLarge AddiPair:$im)),
1188 def : Pat<(add GPR:$rj, (AddiPair:$im)),
1189 (ADDI_D (ADDI_D GPR:$rj, (AddiPairImmLarge AddiPair:$im)),
1191 def : Pat<(sext_inreg (add GPR:$rj, (AddiPair:$im)), i32),
1192 (ADDI_W (ADDI_W GPR:$rj, (AddiPairImmLarge AddiPair:$im)),
1243 def : Pat<(mul GPR:$rj, (AlslSlliImm:$im)),
1244 (SLLI_W (ALSL_W GPR:$rj, GPR:$rj, (AlslSlliImmI0 AlslSlliImm:$im)),
1249 def : Pat<(sext_inreg (mul GPR:$rj, (AlslSlliImm:$im)), i32),
1250 (SLLI_W (ALSL_W GPR:$rj, GPR:$rj, (AlslSlliImmI0 AlslSlliImm:$im)),
1252 def : Pat<(mul GPR:$rj, (AlslSlliImm:$im)),
1253 (SLLI_D (ALSL_D GPR:$rj, GPR:$rj, (AlslSlliImmI0 AlslSlliImm:$im)),
1260 def : Pat<(or (shl GPR:$rk, (i64 ShamtA)), (srl GPR:$rj, (i64 ShamtB))),
1261 (BYTEPICK_D GPR:$rj, GPR:$rk, Idx)>;
1270 (loongarch_bstrpick GPR:$rj, (i64 31),
1272 (BYTEPICK_W GPR:$rj, GPR:$rk, Idx)>;
1282 def : Pat<(not GPR:$rj), (NOR GPR:$rj, R0)>;
1283 def : Pat<(not (or GPR:$rj, GPR:$rk)), (NOR GPR:$rj, GPR:$rk)>;
1284 def : Pat<(or GPR:$rj, (not GPR:$rk)), (ORN GPR:$rj, GPR:$rk)>;
1285 def : Pat<(and GPR:$rj, (not GPR:$rk)), (ANDN GPR:$rj, GPR:$rk)>;
1288 def : Pat<(and GPR:$rj, BstrinsImm:$imm),
1289 (BSTRINS_W GPR:$rj, R0, (BstrinsMsb BstrinsImm:$imm),
1294 def : Pat<(and GPR:$rj, BstrinsImm:$imm),
1295 (BSTRINS_D GPR:$rj, R0, (BstrinsMsb BstrinsImm:$imm),
1301 // We lower `trap` to `amswap.w rd:$r0, rk:$r1, rj:$r0`, as this is guaranteed
1319 def : Pat<(ctlz (not GPR:$rj)), (CLO_D GPR:$rj)>;
1320 def : Pat<(cttz (not GPR:$rj)), (CTO_D GPR:$rj)>;
1323 def : Pat<(loongarch_clzw (not GPR:$rj)), (CLO_W GPR:$rj)>;
1324 def : Pat<(loongarch_ctzw (not GPR:$rj)), (CTO_W GPR:$rj)>;
1330 def : Pat<(ctlz (not GPR:$rj)), (CLO_W GPR:$rj)>;
1331 def : Pat<(cttz (not GPR:$rj)), (CTO_W GPR:$rj)>;
1336 def : Pat<(AddLike (i32 BaseAddr:$rj), simm12:$imm12),
1337 (ADDI_W (i32 BaseAddr:$rj), simm12:$imm12)>;
1340 def : Pat<(AddLike (i64 BaseAddr:$rj), simm12:$imm12),
1341 (ADDI_D (i64 BaseAddr:$rj), simm12:$imm12)>;
1346 def : Pat<(add GPR:$rk, (shl GPR:$rj, uimm2_plus1:$imm2)),
1347 (ALSL_W GPR:$rj, GPR:$rk, uimm2_plus1:$imm2)>;
1350 def : Pat<(add GPR:$rk, (shl GPR:$rj, uimm2_plus1:$imm2)),
1351 (ALSL_D GPR:$rj, GPR:$rk, uimm2_plus1:$imm2)>;
1352 def : Pat<(sext_inreg (add GPR:$rk, (shl GPR:$rj, uimm2_plus1:$imm2)), i32),
1353 (ALSL_W GPR:$rj, GPR:$rk, uimm2_plus1:$imm2)>;
1354 def : Pat<(loongarch_bstrpick (add GPR:$rk, (shl GPR:$rj, uimm2_plus1:$imm2)),
1356 (ALSL_WU GPR:$rj, GPR:$rk, uimm2_plus1:$imm2)>;
1384 def : Pat<(sext_inreg GPR:$rj, i8), (EXT_W_B GPR:$rj)>;
1385 def : Pat<(sext_inreg GPR:$rj, i16), (EXT_W_H GPR:$rj)>;
1388 def : Pat<(sext_inreg GPR:$rj, i32), (ADDI_W GPR:$rj, 0)>;
1400 def : Pat<(seteq GPR:$rj, 0), (SLTUI GPR:$rj, 1)>;
1401 def : Pat<(seteq GPR:$rj, GPR:$rk), (SLTUI (XOR GPR:$rj, GPR:$rk), 1)>;
1403 def : Pat<(seteq GPR:$rj, simm12_plus1:$imm12),
1404 (SLTUI (ADDI_W GPR:$rj, (NegImm simm12_plus1:$imm12)), 1)>;
1407 def : Pat<(seteq GPR:$rj, simm12_plus1:$imm12),
1408 (SLTUI (ADDI_D GPR:$rj, (NegImm simm12_plus1:$imm12)), 1)>;
1410 def : Pat<(setne GPR:$rj, 0), (SLTU R0, GPR:$rj)>;
1411 def : Pat<(setne GPR:$rj, GPR:$rk), (SLTU R0, (XOR GPR:$rj, GPR:$rk))>;
1413 def : Pat<(setne GPR:$rj, simm12_plus1:$imm12),
1414 (SLTU R0, (ADDI_W GPR:$rj, (NegImm simm12_plus1:$imm12)))>;
1417 def : Pat<(setne GPR:$rj, simm12_plus1:$imm12),
1418 (SLTU R0, (ADDI_D GPR:$rj, (NegImm simm12_plus1:$imm12)))>;
1420 def : Pat<(setugt GPR:$rj, GPR:$rk), (SLTU GPR:$rk, GPR:$rj)>;
1421 def : Pat<(setuge GPR:$rj, GPR:$rk), (XORI (SLTU GPR:$rj, GPR:$rk), 1)>;
1422 def : Pat<(setule GPR:$rj, GPR:$rk), (XORI (SLTU GPR:$rk, GPR:$rj), 1)>;
1423 def : Pat<(setgt GPR:$rj, GPR:$rk), (SLT GPR:$rk, GPR:$rj)>;
1424 def : Pat<(setge GPR:$rj, GPR:$rk), (XORI (SLT GPR:$rj, GPR:$rk), 1)>;
1425 def : Pat<(setle GPR:$rj, GPR:$rk), (XORI (SLT GPR:$rk, GPR:$rj), 1)>;
1437 : Pat<(brcond (GRLenVT (CondOp GPR:$rj, GPR:$rd)), bb:$imm16),
1438 (Inst GPR:$rj, GPR:$rd, bb:$imm16)>;
1448 : Pat<(brcond (GRLenVT (CondOp GPR:$rd, GPR:$rj)), bb:$imm16),
1449 (InstBcc GPR:$rj, GPR:$rd, bb:$imm16)>;
1460 def : Pat<(brcond GPR:$rj, bb:$imm21), (BNEZ GPR:$rj, bb:$imm21)>;
1462 def : Pat<(brcond (GRLenVT (seteq GPR:$rj, 0)), bb:$imm21),
1463 (BEQZ GPR:$rj, bb:$imm21)>;
1464 def : Pat<(brcond (GRLenVT (setne GPR:$rj, 0)), bb:$imm21),
1465 (BNEZ GPR:$rj, bb:$imm21)>;
1472 def PseudoBRIND : Pseudo<(outs), (ins GPR:$rj, simm16_lsl2:$imm16)>,
1473 PseudoInstExpansion<(JIRL R0, GPR:$rj, simm16_lsl2:$imm16)>;
1475 def : Pat<(brind GPR:$rj), (PseudoBRIND GPR:$rj, 0)>;
1476 def : Pat<(brind (add GPR:$rj, simm16_lsl2:$imm16)),
1477 (PseudoBRIND GPR:$rj, simm16_lsl2:$imm16)>;
1509 def PseudoCALLIndirect : Pseudo<(outs), (ins GPR:$rj),
1510 [(loongarch_call GPR:$rj)]>,
1511 PseudoInstExpansion<(JIRL R1, GPR:$rj, 0)>;
1513 def : Pat<(loongarch_call_medium GPR:$rj), (PseudoCALLIndirect GPR:$rj)>;
1514 def : Pat<(loongarch_call_large GPR:$rj), (PseudoCALLIndirect GPR:$rj)>;
1518 def PseudoJIRL_CALL : Pseudo<(outs), (ins GPR:$rj, simm16_lsl2:$imm16)>,
1519 PseudoInstExpansion<(JIRL R1, GPR:$rj,
1560 def PseudoTAILIndirect : Pseudo<(outs), (ins GPRT:$rj),
1561 [(loongarch_tail GPRT:$rj)]>,
1562 PseudoInstExpansion<(JIRL R0, GPR:$rj, 0)>;
1564 def : Pat<(loongarch_tail_medium GPR:$rj), (PseudoTAILIndirect GPR:$rj)>;
1565 def : Pat<(loongarch_tail_large GPR:$rj), (PseudoTAILIndirect GPR:$rj)>;
1575 def PseudoJIRL_TAIL : Pseudo<(outs), (ins GPR:$rj, simm16_lsl2:$imm16)>,
1576 PseudoInstExpansion<(JIRL R0, GPR:$rj,
1598 (ins GPR:$rj, GPR:$rk, tprel_add_symbol:$sym), [],
1599 "add.w", "$rd, $rj, $rk, $sym">,
1602 (ins GPR:$rj, GPR:$rk, tprel_add_symbol:$sym), [],
1603 "add.d", "$rd, $rj, $rk, $sym">,
1661 def PseudoDESC_CALL : Pseudo<(outs GPR:$rd), (ins GPR:$rj, simm16_lsl2:$imm16)>,
1662 PseudoInstExpansion<(JIRL GPR:$rd, GPR:$rj,
1739 def : Pat<(loongarch_bstrins GPR:$rd, GPR:$rj, uimm5:$msbd, uimm5:$lsbd),
1740 (BSTRINS_W GPR:$rd, GPR:$rj, uimm5:$msbd, uimm5:$lsbd)>;
1741 def : Pat<(loongarch_bstrpick GPR:$rj, uimm5:$msbd, uimm5:$lsbd),
1742 (BSTRPICK_W GPR:$rj, uimm5:$msbd, uimm5:$lsbd)>;
1746 def : Pat<(loongarch_bstrins GPR:$rd, GPR:$rj, uimm6:$msbd, uimm6:$lsbd),
1747 (BSTRINS_D GPR:$rd, GPR:$rj, uimm6:$msbd, uimm6:$lsbd)>;
1748 def : Pat<(loongarch_bstrpick GPR:$rj, uimm6:$msbd, uimm6:$lsbd),
1749 (BSTRPICK_D GPR:$rj, uimm6:$msbd, uimm6:$lsbd)>;
1754 def : Pat<(loongarch_revb_2h GPR:$rj), (REVB_2H GPR:$rj)>;
1755 def : Pat<(loongarch_bitrev_4b GPR:$rj), (BITREV_4B GPR:$rj)>;
1758 def : Pat<(bswap GPR:$rj), (ROTRI_W (REVB_2H GPR:$rj), 16)>;
1759 def : Pat<(bitreverse GPR:$rj), (BITREV_W GPR:$rj)>;
1760 def : Pat<(bswap (bitreverse GPR:$rj)), (BITREV_4B GPR:$rj)>;
1761 def : Pat<(bitreverse (bswap GPR:$rj)), (BITREV_4B GPR:$rj)>;
1765 def : Pat<(loongarch_revb_2w GPR:$rj), (REVB_2W GPR:$rj)>;
1766 def : Pat<(bswap GPR:$rj), (REVB_D GPR:$rj)>;
1767 def : Pat<(loongarch_bitrev_w GPR:$rj), (BITREV_W GPR:$rj)>;
1768 def : Pat<(bitreverse GPR:$rj), (BITREV_D GPR:$rj)>;
1769 def : Pat<(bswap (bitreverse GPR:$rj)), (BITREV_8B GPR:$rj)>;
1770 def : Pat<(bitreverse (bswap GPR:$rj)), (BITREV_8B GPR:$rj)>;
1776 def : Pat<(vt (LoadOp BaseAddr:$rj)), (Inst BaseAddr:$rj, 0)>;
1777 def : Pat<(vt (LoadOp (AddrConstant GPR:$rj, simm12:$imm12))),
1778 (Inst GPR:$rj, simm12:$imm12)>;
1779 def : Pat<(vt (LoadOp (AddLike BaseAddr:$rj, simm12:$imm12))),
1780 (Inst BaseAddr:$rj, simm12:$imm12)>;
1800 : Pat<(vt (LoadOp (add NonFIBaseAddr:$rj, GPR:$rk))),
1801 (Inst NonFIBaseAddr:$rj, GPR:$rk)>;
1819 def : Pat<(StoreOp (vt StTy:$rd), BaseAddr:$rj),
1820 (Inst StTy:$rd, BaseAddr:$rj, 0)>;
1821 def : Pat<(StoreOp (vt StTy:$rs2), (AddrConstant GPR:$rj, simm12:$imm12)),
1822 (Inst StTy:$rs2, GPR:$rj, simm12:$imm12)>;
1823 def : Pat<(StoreOp (vt StTy:$rd), (AddLike BaseAddr:$rj, simm12:$imm12)),
1824 (Inst StTy:$rd, BaseAddr:$rj, simm12:$imm12)>;
1836 def : Pat<(i64 (sextloadi32 (AddLike BaseAddr:$rj, simm14_lsl2:$imm14))),
1837 (LDPTR_W BaseAddr:$rj, simm14_lsl2:$imm14)>;
1838 def : Pat<(i64 (load (AddLike BaseAddr:$rj, simm14_lsl2:$imm14))),
1839 (LDPTR_D BaseAddr:$rj, simm14_lsl2:$imm14)>;
1841 (AddLike BaseAddr:$rj, simm14_lsl2:$imm14)),
1842 (STPTR_W GPR:$rd, BaseAddr:$rj, simm14_lsl2:$imm14)>;
1843 def : Pat<(store (i64 GPR:$rd), (AddLike BaseAddr:$rj, simm14_lsl2:$imm14)),
1844 (STPTR_D GPR:$rd, BaseAddr:$rj, simm14_lsl2:$imm14)>;
1851 : Pat<(StoreOp (vt StTy:$rd), (add NonFIBaseAddr:$rj, GPR:$rk)),
1852 (Inst StTy:$rd, NonFIBaseAddr:$rj, GPR:$rk)>;
1915 : Pseudo<(outs GPR:$dst), (ins GPR:$rk, GPR:$rj)>,
1916 PseudoInstExpansion<(AMSWAP__DB_W R0, GPR:$rk, GPRMemAtomic:$rj)>;
1918 def : Pat<(atomic_store_release_seqcst_32 GPR:$rj, GPR:$rk),
1919 (PseudoAtomicStoreW GPR:$rj, GPR:$rk)>;
1923 : Pseudo<(outs GPR:$dst), (ins GPR:$rk, GPR:$rj)>,
1924 PseudoInstExpansion<(AMSWAP__DB_D R0, GPR:$rk, GPRMemAtomic:$rj)>;
1926 def : Pat<(atomic_store_release_seqcst_64 GPR:$rj, GPR:$rk),
1927 (PseudoAtomicStoreD GPR:$rj, GPR:$rk)>;
2091 def : Pat<(atomic_load_add_i64 GPR:$rj, GPR:$rk),
2092 (AMADD__DB_D GPR:$rk, GPR:$rj)>;
2095 def : Pat<(atomic_load_sub_i32 GPR:$rj, GPR:$rk),
2096 (AMADD__DB_W (SUB_W R0, GPR:$rk), GPR:$rj)>;
2097 def : Pat<(atomic_load_sub_i64 GPR:$rj, GPR:$rk),
2098 (AMADD__DB_D (SUB_D R0, GPR:$rk), GPR:$rj)>;
2104 def : Pat<(atomic_load_add_i32 GPR:$rj, GPR:$rk),
2105 (AMADD__DB_W GPR:$rk, GPR:$rj)>;
2106 def : Pat<(atomic_load_and_i32 GPR:$rj, GPR:$rk),
2107 (AMAND__DB_W GPR:$rk, GPR:$rj)>;
2108 def : Pat<(atomic_load_and_i64 GPR:$rj, GPR:$rk),
2109 (AMAND__DB_D GPR:$rk, GPR:$rj)>;
2110 def : Pat<(atomic_load_or_i32 GPR:$rj, GPR:$rk),
2111 (AMOR__DB_W GPR:$rk, GPR:$rj)>;
2112 def : Pat<(atomic_load_or_i64 GPR:$rj, GPR:$rk),
2113 (AMOR__DB_D GPR:$rk, GPR:$rj)>;
2114 def : Pat<(atomic_load_xor_i32 GPR:$rj, GPR:$rk),
2115 (AMXOR__DB_W GPR:$rk, GPR:$rj)>;
2116 def : Pat<(atomic_load_xor_i64 GPR:$rj, GPR:$rk),
2117 (AMXOR__DB_D GPR:$rk, GPR:$rj)>;
2119 def : Pat<(atomic_load_umin_i32 GPR:$rj, GPR:$rk),
2120 (AMMIN__DB_WU GPR:$rk, GPR:$rj)>;
2121 def : Pat<(atomic_load_umin_i64 GPR:$rj, GPR:$rk),
2122 (AMMIN__DB_DU GPR:$rk, GPR:$rj)>;
2123 def : Pat<(atomic_load_umax_i32 GPR:$rj, GPR:$rk),
2124 (AMMAX__DB_WU GPR:$rk, GPR:$rj)>;
2125 def : Pat<(atomic_load_umax_i64 GPR:$rj, GPR:$rk),
2126 (AMMAX__DB_DU GPR:$rk, GPR:$rj)>;
2128 def : Pat<(atomic_load_min_i32 GPR:$rj, GPR:$rk),
2129 (AMMIN__DB_W GPR:$rk, GPR:$rj)>;
2130 def : Pat<(atomic_load_min_i64 GPR:$rj, GPR:$rk),
2131 (AMMIN__DB_D GPR:$rk, GPR:$rj)>;
2132 def : Pat<(atomic_load_max_i32 GPR:$rj, GPR:$rk),
2133 (AMMAX__DB_W GPR:$rk, GPR:$rj)>;
2134 def : Pat<(atomic_load_max_i64 GPR:$rj, GPR:$rk),
2135 (AMMAX__DB_D GPR:$rk, GPR:$rj)>;
2192 def : Pat<(int_loongarch_cacop_d timm:$op, i64:$rj, timm:$imm12),
2193 (CACOP timm:$op, GPR:$rj, timm:$imm12)>;
2194 def : Pat<(int_loongarch_cacop_w i32:$op, i32:$rj, i32:$imm12),
2195 (CACOP timm:$op, GPR:$rj, timm:$imm12)>;
2232 def : InstAlias<"jr $rj", (JIRL R0, GPR:$rj, 0)>;
2239 def : InstAlias<"bgt $rj, $rd, $imm16",
2240 (BLT GPR:$rd, GPR:$rj, simm16_lsl2_br:$imm16), 0>;
2241 def : InstAlias<"bgtu $rj, $rd, $imm16",
2242 (BLTU GPR:$rd, GPR:$rj, simm16_lsl2_br:$imm16), 0>;
2243 def : InstAlias<"ble $rj, $rd, $imm16",
2244 (BGE GPR:$rd, GPR:$rj, simm16_lsl2_br:$imm16), 0>;
2245 def : InstAlias<"bleu $rj, $rd, $imm16",
2246 (BGEU GPR:$rd, GPR:$rj, simm16_lsl2_br:$imm16), 0>;
2249 def : InstAlias<"bgtz $rj, $imm16",
2250 (BLT R0, GPR:$rj, simm16_lsl2_br:$imm16), 0>;
2251 def : InstAlias<"blez $rj, $imm16",
2252 (BGE R0, GPR:$rj, simm16_lsl2_br:$imm16), 0>;
2291 (ins GPR:$rd, GPR:$rj, uimm14:$csr_num),
2292 "$rd, $rj, $csr_num">;
2315 def INVTLB : FmtINVTLB<(outs), (ins GPR:$rk, GPR:$rj, uimm5:$op),
2316 "$op, $rj, $rk">;
2321 (ins GPR:$rj, uimm8:$imm8), "$rd, $rj, $imm8">;
2322 def LDPTE : FmtLDPTE<(outs), (ins GPR:$rj, uimm8:$seq), "$rj, $seq">;
2338 def : Pat<(loongarch_csrxchg GPR:$rd, GPR:$rj, uimm14:$imm14),
2339 (CSRXCHG GPR:$rd, GPR:$rj, uimm14:$imm14)>;
2341 def : Pat<(loongarch_iocsrrd_b GPR:$rj), (IOCSRRD_B GPR:$rj)>;
2342 def : Pat<(loongarch_iocsrrd_h GPR:$rj), (IOCSRRD_H GPR:$rj)>;
2343 def : Pat<(loongarch_iocsrrd_w GPR:$rj), (IOCSRRD_W GPR:$rj)>;
2345 def : Pat<(loongarch_iocsrwr_b GPR:$rd, GPR:$rj), (IOCSRWR_B GPR:$rd, GPR:$rj)>;
2346 def : Pat<(loongarch_iocsrwr_h GPR:$rd, GPR:$rj), (IOCSRWR_H GPR:$rd, GPR:$rj)>;
2347 def : Pat<(loongarch_iocsrwr_w GPR:$rd, GPR:$rj), (IOCSRWR_W GPR:$rd, GPR:$rj)>;
2349 def : Pat<(loongarch_cpucfg GPR:$rj), (CPUCFG GPR:$rj)>;
2352 def : Pat<(loongarch_iocsrrd_d GPR:$rj), (IOCSRRD_D GPR:$rj)>;
2353 def : Pat<(loongarch_iocsrwr_d GPR:$rd, GPR:$rj), (IOCSRWR_D GPR:$rd, GPR:$rj)>;
2354 def : Pat<(int_loongarch_asrtle_d GPR:$rj, GPR:$rk),
2355 (ASRTLE_D GPR:$rj, GPR:$rk)>;
2356 def : Pat<(int_loongarch_asrtgt_d GPR:$rj, GPR:$rk),
2357 (ASRTGT_D GPR:$rj, GPR:$rk)>;
2358 def : Pat<(int_loongarch_lddir_d GPR:$rj, timm:$imm8),
2359 (LDDIR GPR:$rj, timm:$imm8)>;
2360 def : Pat<(int_loongarch_ldpte_d GPR:$rj, timm:$imm8),
2361 (LDPTE GPR:$rj, timm:$imm8)>;