Lines Matching refs:GPR
348 (ins GPR:$rs1, GPR:$rs2, simm13_lsb0:$imm12),
357 : RVInstI<funct3, OPC_LOAD, (outs GPR:$rd), (ins GPR:$rs1, simm12:$imm12),
366 (ins GPR:$rs2, GPR:$rs1, simm12:$imm12),
371 : RVInstI<funct3, OPC_OP_IMM, (outs GPR:$rd), (ins GPR:$rs1, simm12:$imm12),
377 : RVInstIShift<arithshift, funct3, OPC_OP_IMM, (outs GPR:$rd),
378 (ins GPR:$rs1, uimmlog2xlen:$shamt), opcodestr,
384 : RVInstR<funct7, funct3, OPC_OP, (outs GPR:$rd), (ins GPR:$rs1, GPR:$rs2),
390 : RVInstI<funct3, OPC_SYSTEM, (outs GPR:$rd), (ins csr_sysreg:$imm12, GPR:$rs1),
396 : RVInstI<funct3, OPC_SYSTEM, (outs GPR:$rd),
402 : RVInstIShiftW<arithshift, funct3, OPC_OP_IMM_32, (outs GPR:$rd),
403 (ins GPR:$rs1, uimm5:$shamt), opcodestr,
409 : RVInstR<funct7, funct3, OPC_OP_32, (outs GPR:$rd),
410 (ins GPR:$rs1, GPR:$rs2), opcodestr, "$rd, $rs1, $rs2">;
414 : RVInstR<funct7, 0b000, OPC_SYSTEM, (outs), (ins GPR:$rs1, GPR:$rs2),
423 def LUI : RVInstU<OPC_LUI, (outs GPR:$rd), (ins uimm20_lui:$imm20),
426 def AUIPC : RVInstU<OPC_AUIPC, (outs GPR:$rd), (ins uimm20_auipc:$imm20),
430 def JAL : RVInstJ<OPC_JAL, (outs GPR:$rd), (ins simm21_lsb0_jal:$imm20),
434 def JALR : RVInstI<0b000, OPC_JALR, (outs GPR:$rd),
435 (ins GPR:$rs1, simm12:$imm12),
551 def ADDIW : RVInstI<0b000, OPC_OP_IMM_32, (outs GPR:$rd),
552 (ins GPR:$rs1, simm12:$imm12),
604 (ins GPR:$rs1, GPR:$rs2),
633 def PseudoLI : Pseudo<(outs GPR:$rd), (ins ixlenimm_li:$imm), [],
652 def : InstAlias<"mv $rd, $rs", (ADDI GPR:$rd, GPR:$rs, 0)>;
653 def : InstAlias<"not $rd, $rs", (XORI GPR:$rd, GPR:$rs, -1)>;
654 def : InstAlias<"neg $rd, $rs", (SUB GPR:$rd, X0, GPR:$rs)>;
657 def : InstAlias<"negw $rd, $rs", (SUBW GPR:$rd, X0, GPR:$rs)>;
658 def : InstAlias<"sext.w $rd, $rs", (ADDIW GPR:$rd, GPR:$rs, 0)>;
661 def : InstAlias<"seqz $rd, $rs", (SLTIU GPR:$rd, GPR:$rs, 1)>;
662 def : InstAlias<"snez $rd, $rs", (SLTU GPR:$rd, X0, GPR:$rs)>;
663 def : InstAlias<"sltz $rd, $rs", (SLT GPR:$rd, GPR:$rs, X0)>;
664 def : InstAlias<"sgtz $rd, $rs", (SLT GPR:$rd, X0, GPR:$rs)>;
668 def : InstAlias<"sgt $rd, $rs, $rt", (SLT GPR:$rd, GPR:$rt, GPR:$rs), 0>;
669 def : InstAlias<"sgtu $rd, $rs, $rt", (SLTU GPR:$rd, GPR:$rt, GPR:$rs), 0>;
672 (BEQ GPR:$rs, X0, simm13_lsb0:$offset)>;
674 (BNE GPR:$rs, X0, simm13_lsb0:$offset)>;
676 (BGE X0, GPR:$rs, simm13_lsb0:$offset)>;
678 (BGE GPR:$rs, X0, simm13_lsb0:$offset)>;
680 (BLT GPR:$rs, X0, simm13_lsb0:$offset)>;
682 (BLT X0, GPR:$rs, simm13_lsb0:$offset)>;
689 (BLT GPR:$rt, GPR:$rs, simm13_lsb0:$offset), 0>;
691 (BGE GPR:$rt, GPR:$rs, simm13_lsb0:$offset), 0>;
693 (BLTU GPR:$rt, GPR:$rs, simm13_lsb0:$offset), 0>;
695 (BGEU GPR:$rt, GPR:$rs, simm13_lsb0:$offset), 0>;
702 def : InstAlias<"jr $rs", (JALR X0, GPR:$rs, 0), 3>;
703 def : InstAlias<"jr ${offset}(${rs})", (JALR X0, GPR:$rs, simm12:$offset)>;
704 def : InstAlias<"jalr $rs", (JALR X1, GPR:$rs, 0), 3>;
705 def : InstAlias<"jalr ${offset}(${rs})", (JALR X1, GPR:$rs, simm12:$offset)>;
706 def : InstAlias<"jalr $rd, $rs", (JALR GPR:$rd, GPR:$rs, 0), 2>;
710 def : InstAlias<"jr $rs, $offset", (JALR X0, GPR:$rs, simm12:$offset), 0>;
711 def : InstAlias<"jalr $rs, $offset", (JALR X1, GPR:$rs, simm12:$offset), 0>;
712 def : InstAlias<"jalr $rd, $rs, $offset", (JALR GPR:$rd, GPR:$rs, simm12:$offset), 0>;
716 def : InstAlias<"rdinstret $rd", (CSRRS GPR:$rd, INSTRET.Encoding, X0)>;
717 def : InstAlias<"rdcycle $rd", (CSRRS GPR:$rd, CYCLE.Encoding, X0)>;
718 def : InstAlias<"rdtime $rd", (CSRRS GPR:$rd, TIME.Encoding, X0)>;
721 def : InstAlias<"rdinstreth $rd", (CSRRS GPR:$rd, INSTRETH.Encoding, X0)>;
722 def : InstAlias<"rdcycleh $rd", (CSRRS GPR:$rd, CYCLEH.Encoding, X0)>;
723 def : InstAlias<"rdtimeh $rd", (CSRRS GPR:$rd, TIMEH.Encoding, X0)>;
726 def : InstAlias<"csrr $rd, $csr", (CSRRS GPR:$rd, csr_sysreg:$csr, X0)>;
727 def : InstAlias<"csrw $csr, $rs", (CSRRW X0, csr_sysreg:$csr, GPR:$rs)>;
728 def : InstAlias<"csrs $csr, $rs", (CSRRS X0, csr_sysreg:$csr, GPR:$rs)>;
729 def : InstAlias<"csrc $csr, $rs", (CSRRC X0, csr_sysreg:$csr, GPR:$rs)>;
740 def : InstAlias<"csrrw $rd, $csr, $imm", (CSRRWI GPR:$rd, csr_sysreg:$csr, uimm5:$imm)>;
741 def : InstAlias<"csrrs $rd, $csr, $imm", (CSRRSI GPR:$rd, csr_sysreg:$csr, uimm5:$imm)>;
742 def : InstAlias<"csrrc $rd, $csr, $imm", (CSRRCI GPR:$rd, csr_sysreg:$csr, uimm5:$imm)>;
746 def : InstAlias<"sfence.vma $rs", (SFENCE_VMA GPR:$rs, X0)>;
750 (LB GPR:$rd, GPR:$rs1, 0)>;
752 (LH GPR:$rd, GPR:$rs1, 0)>;
754 (LW GPR:$rd, GPR:$rs1, 0)>;
756 (LBU GPR:$rd, GPR:$rs1, 0)>;
758 (LHU GPR:$rd, GPR:$rs1, 0)>;
761 (SB GPR:$rs2, GPR:$rs1, 0)>;
763 (SH GPR:$rs2, GPR:$rs1, 0)>;
765 (SW GPR:$rs2, GPR:$rs1, 0)>;
768 (ADDI GPR:$rd, GPR:$rs1, simm12:$imm12)>;
770 (ANDI GPR:$rd, GPR:$rs1, simm12:$imm12)>;
772 (XORI GPR:$rd, GPR:$rs1, simm12:$imm12)>;
774 (ORI GPR:$rd, GPR:$rs1, simm12:$imm12)>;
776 (SLLI GPR:$rd, GPR:$rs1, uimmlog2xlen:$shamt)>;
778 (SRLI GPR:$rd, GPR:$rs1, uimmlog2xlen:$shamt)>;
780 (SRAI GPR:$rd, GPR:$rs1, uimmlog2xlen:$shamt)>;
783 (LWU GPR:$rd, GPR:$rs1, 0)>;
785 (LD GPR:$rd, GPR:$rs1, 0)>;
787 (SD GPR:$rs2, GPR:$rs1, 0)>;
790 (ADDIW GPR:$rd, GPR:$rs1, simm12:$imm12)>;
792 (SLLIW GPR:$rd, GPR:$rs1, uimm5:$shamt)>;
794 (SRLIW GPR:$rd, GPR:$rs1, uimm5:$shamt)>;
796 (SRAIW GPR:$rd, GPR:$rs1, uimm5:$shamt)>;
799 (SLTI GPR:$rd, GPR:$rs1, simm12:$imm12)>;
801 (SLTIU GPR:$rd, GPR:$rs1, simm12:$imm12)>;
823 : Pat<(OpNode GPR:$rs1, GPR:$rs2), (Inst GPR:$rs1, GPR:$rs2)>;
825 : Pat<(OpNode GPR:$rs1, simm12:$imm12), (Inst GPR:$rs1, simm12:$imm12)>;
827 : Pat<(OpNode GPR:$rs1, uimmlog2xlen:$shamt),
828 (Inst GPR:$rs1, uimmlog2xlen:$shamt)>;
888 def PseudoAddTPRel : Pseudo<(outs GPR:$rd),
889 (ins GPR:$rs1, GPR:$rs2, tprel_add_symbol:$src), [],
908 def : Pat<(seteq GPR:$rs1, 0), (SLTIU GPR:$rs1, 1)>;
909 def : Pat<(seteq GPR:$rs1, GPR:$rs2), (SLTIU (XOR GPR:$rs1, GPR:$rs2), 1)>;
910 def : Pat<(seteq GPR:$rs1, simm12_plus1:$imm12),
911 (SLTIU (ADDI GPR:$rs1, (NegImm simm12_plus1:$imm12)), 1)>;
912 def : Pat<(setne GPR:$rs1, 0), (SLTU X0, GPR:$rs1)>;
913 def : Pat<(setne GPR:$rs1, GPR:$rs2), (SLTU X0, (XOR GPR:$rs1, GPR:$rs2))>;
914 def : Pat<(setne GPR:$rs1, simm12_plus1:$imm12),
915 (SLTU X0, (ADDI GPR:$rs1, (NegImm simm12_plus1:$imm12)))>;
916 def : Pat<(setugt GPR:$rs1, GPR:$rs2), (SLTU GPR:$rs2, GPR:$rs1)>;
917 def : Pat<(setuge GPR:$rs1, GPR:$rs2), (XORI (SLTU GPR:$rs1, GPR:$rs2), 1)>;
918 def : Pat<(setule GPR:$rs1, GPR:$rs2), (XORI (SLTU GPR:$rs2, GPR:$rs1), 1)>;
919 def : Pat<(setgt GPR:$rs1, GPR:$rs2), (SLT GPR:$rs2, GPR:$rs1)>;
920 def : Pat<(setge GPR:$rs1, GPR:$rs2), (XORI (SLT GPR:$rs1, GPR:$rs2), 1)>;
921 def : Pat<(setle GPR:$rs1, GPR:$rs2), (XORI (SLT GPR:$rs2, GPR:$rs1), 1)>;
931 def Select_GPR_Using_CC_GPR : SelectCC_rrirr<GPR, GPR>;
938 : Pat<(brcond (XLenVT (CondOp GPR:$rs1, GPR:$rs2)), bb:$imm12),
939 (Inst GPR:$rs1, GPR:$rs2, simm13_lsb0:$imm12)>;
949 : Pat<(brcond (XLenVT (CondOp GPR:$rs1, GPR:$rs2)), bb:$imm12),
950 (InstBcc GPR:$rs2, GPR:$rs1, bb:$imm12)>;
961 def : Pat<(brcond GPR:$cond, bb:$imm12), (BNE GPR:$cond, X0, bb:$imm12)>;
968 def PseudoBRIND : Pseudo<(outs), (ins GPR:$rs1, simm12:$imm12), []>,
969 PseudoInstExpansion<(JALR X0, GPR:$rs1, simm12:$imm12)>;
971 def : Pat<(brind GPR:$rs1), (PseudoBRIND GPR:$rs1, 0)>;
972 def : Pat<(brind (add GPR:$rs1, simm12:$imm12)),
973 (PseudoBRIND GPR:$rs1, simm12:$imm12)>;
982 def PseudoCALLReg : Pseudo<(outs GPR:$rd), (ins call_symbol:$func), []> {
1005 def PseudoCALLIndirect : Pseudo<(outs), (ins GPR:$rs1),
1006 [(riscv_call GPR:$rs1)]>,
1007 PseudoInstExpansion<(JALR X1, GPR:$rs1, 0)>;
1025 PseudoInstExpansion<(JALR X0, GPR:$rs1, 0)>;
1034 def PseudoJump : Pseudo<(outs GPR:$rd), (ins pseudo_jump_symbol:$target), []> {
1040 def PseudoLLA : Pseudo<(outs GPR:$dst), (ins bare_symbol:$src), [],
1045 def PseudoLA : Pseudo<(outs GPR:$dst), (ins bare_symbol:$src), [],
1050 def PseudoLA_TLS_IE : Pseudo<(outs GPR:$dst), (ins bare_symbol:$src), [],
1055 def PseudoLA_TLS_GD : Pseudo<(outs GPR:$dst), (ins bare_symbol:$src), [],
1061 def : Pat<(LoadOp GPR:$rs1), (Inst GPR:$rs1, 0)>;
1063 def : Pat<(LoadOp (add GPR:$rs1, simm12:$imm12)),
1064 (Inst GPR:$rs1, simm12:$imm12)>;
1082 def : Pat<(StoreOp StTy:$rs2, GPR:$rs1), (Inst StTy:$rs2, GPR:$rs1, 0)>;
1084 def : Pat<(StoreOp StTy:$rs2, (add GPR:$rs1, simm12:$imm12)),
1085 (Inst StTy:$rs2, GPR:$rs1, simm12:$imm12)>;
1092 defm : StPat<truncstorei8, SB, GPR>;
1093 defm : StPat<truncstorei16, SH, GPR>;
1094 defm : StPat<store, SW, GPR>, Requires<[IsRV32]>;
1129 def : Pat<(and GPR:$rs1, 0xffffffff), (SRLI (SLLI GPR:$rs1, 32), 32)>;
1135 def : Pat<(sext_inreg GPR:$rs1, i32), (ADDIW GPR:$rs1, 0)>;
1139 def : Pat<(sext_inreg (add GPR:$rs1, GPR:$rs2), i32),
1140 (ADDW GPR:$rs1, GPR:$rs2)>;
1141 def : Pat<(sext_inreg (add GPR:$rs1, simm12:$imm12), i32),
1142 (ADDIW GPR:$rs1, simm12:$imm12)>;
1143 def : Pat<(sext_inreg (sub GPR:$rs1, GPR:$rs2), i32),
1144 (SUBW GPR:$rs1, GPR:$rs2)>;
1145 def : Pat<(sext_inreg (shl GPR:$rs1, uimm5:$shamt), i32),
1146 (SLLIW GPR:$rs1, uimm5:$shamt)>;
1149 def : Pat<(srl (shl GPR:$rs1, (i64 32)), uimm6gt32:$shamt),
1150 (SRLIW GPR:$rs1, (ImmSub32 uimm6gt32:$shamt))>;
1151 def : Pat<(sra (sext_inreg GPR:$rs1, i32), uimm5:$shamt),
1152 (SRAIW GPR:$rs1, uimm5:$shamt)>;
1153 def : Pat<(sra (shl GPR:$rs1, (i64 32)), uimm6gt32:$shamt),
1154 (SRAIW GPR:$rs1, (ImmSub32 uimm6gt32:$shamt))>;
1169 defm : StPat<truncstorei32, SW, GPR>;
1170 defm : StPat<store, SD, GPR>;
1180 def ReadCycleWide : Pseudo<(outs GPR:$lo, GPR:$hi), (ins),
1181 [(set GPR:$lo, GPR:$hi, (riscv_read_cycle_wide))],