Lines Matching full:ext
184 string opcodestr, ExtInfo Ext> {
185 let Predicates = Ext.Predicates, DecoderNamespace = Ext.Space in
186 def Ext.Suffix : FPFMA_rrr_frm<opcode, funct2, opcodestr, Ext.PrimaryTy>;
197 ExtInfo Ext, bit Commutable = 0> {
198 let Predicates = Ext.Predicates, DecoderNamespace = Ext.Space in
199 def Ext.Suffix : FPALU_rr<funct7, funct3, opcodestr, Ext.PrimaryTy, Commutable>;
212 ExtInfo Ext, bit Commutable = 0> {
213 let Predicates = Ext.Predicates, DecoderNamespace = Ext.Space in
214 def Ext.Suffix : FPALU_rr_frm<funct7, opcodestr, Ext.PrimaryTy, Commutable>;
225 ExtInfo Ext, DAGOperand rdty, DAGOperand rs1ty,
227 let Predicates = Ext.Predicates, DecoderNamespace = Ext.Space in
228 def Ext.Suffix : FPUnaryOp_r<funct7, rs2val, funct3, rdty, rs1ty, opcodestr>;
241 ExtInfo Ext, DAGOperand rdty, DAGOperand rs1ty,
243 let Predicates = !listconcat(Ext.Predicates, ExtraPreds),
244 DecoderNamespace = Ext.Space in
245 def Ext.Suffix : FPUnaryOp_r_frm<funct7, rs2val, rdty, rs1ty,
259 ExtInfo Ext, DAGOperand rdty, DAGOperand rs1ty,
261 let Predicates = !listconcat(Ext.Predicates, ExtraPreds),
262 DecoderNamespace = Ext.Space in
263 def Ext.Suffix : FPUnaryOp_r_frmlegacy<funct7, rs2val, rdty, rs1ty,
276 ExtInfo Ext, bit Commutable = 0> {
277 let Predicates = Ext.Predicates, DecoderNamespace = Ext.Space in
278 def Ext.Suffix : FPCmp_rr<funct7, funct3, opcodestr, Ext.PrimaryTy, Commutable>;
304 foreach Ext = FExts in {
306 defm FMADD_S : FPFMA_rrr_frm_m<OPC_MADD, 0b00, "fmadd.s", Ext>;
307 defm FMSUB_S : FPFMA_rrr_frm_m<OPC_MSUB, 0b00, "fmsub.s", Ext>;
308 defm FNMSUB_S : FPFMA_rrr_frm_m<OPC_NMSUB, 0b00, "fnmsub.s", Ext>;
309 defm FNMADD_S : FPFMA_rrr_frm_m<OPC_NMADD, 0b00, "fnmadd.s", Ext>;
313 defm FADD_S : FPALU_rr_frm_m<0b0000000, "fadd.s", Ext, Commutable=1>;
314 defm FSUB_S : FPALU_rr_frm_m<0b0000100, "fsub.s", Ext>;
318 defm FMUL_S : FPALU_rr_frm_m<0b0001000, "fmul.s", Ext, Commutable=1>;
321 defm FDIV_S : FPALU_rr_frm_m<0b0001100, "fdiv.s", Ext>;
323 defm FSQRT_S : FPUnaryOp_r_frm_m<0b0101100, 0b00000, Ext, Ext.PrimaryTy,
324 Ext.PrimaryTy, "fsqrt.s">,
329 defm FSGNJ_S : FPALU_rr_m<0b0010000, 0b000, "fsgnj.s", Ext>;
330 defm FSGNJN_S : FPALU_rr_m<0b0010000, 0b001, "fsgnjn.s", Ext>;
331 defm FSGNJX_S : FPALU_rr_m<0b0010000, 0b010, "fsgnjx.s", Ext>;
335 defm FMIN_S : FPALU_rr_m<0b0010100, 0b000, "fmin.s", Ext, Commutable=1>;
336 defm FMAX_S : FPALU_rr_m<0b0010100, 0b001, "fmax.s", Ext, Commutable=1>;
340 defm FCVT_W_S : FPUnaryOp_r_frm_m<0b1100000, 0b00000, Ext, GPR, Ext.PrimaryTy,
345 defm FCVT_WU_S : FPUnaryOp_r_frm_m<0b1100000, 0b00001, Ext, GPR, Ext.PrimaryTy,
350 defm FEQ_S : FPCmp_rr_m<0b1010000, 0b010, "feq.s", Ext, Commutable=1>;
351 defm FLT_S : FPCmp_rr_m<0b1010000, 0b001, "flt.s", Ext>;
352 defm FLE_S : FPCmp_rr_m<0b1010000, 0b000, "fle.s", Ext>;
356 defm FCLASS_S : FPUnaryOp_r_m<0b1110000, 0b00000, 0b001, Ext, GPR, Ext.PrimaryTy,
360 defm FCVT_S_W : FPUnaryOp_r_frm_m<0b1101000, 0b00000, Ext, Ext.PrimaryTy, GPR,
364 defm FCVT_S_WU : FPUnaryOp_r_frm_m<0b1101000, 0b00001, Ext, Ext.PrimaryTy, GPR,
368 defm FCVT_L_S : FPUnaryOp_r_frm_m<0b1100000, 0b00010, Ext, GPR, Ext.PrimaryTy,
372 defm FCVT_LU_S : FPUnaryOp_r_frm_m<0b1100000, 0b00011, Ext, GPR, Ext.PrimaryTy,
376 defm FCVT_S_L : FPUnaryOp_r_frm_m<0b1101000, 0b00010, Ext, Ext.PrimaryTy, GPR,
380 defm FCVT_S_LU : FPUnaryOp_r_frm_m<0b1101000, 0b00011, Ext, Ext.PrimaryTy, GPR,
383 } // foreach Ext = FExts
484 RVInst Inst, ExtInfo Ext> {
485 let Predicates = Ext.Predicates in
486 def Ext.Suffix : PatSetCC<Ext.PrimaryTy, OpNode, Cond,
487 !cast<RVInst>(Inst#Ext.Suffix), Ext.PrimaryVT>;
494 ExtInfo Ext> {
495 let Predicates = Ext.Predicates in
496 def Ext.Suffix : PatFprFpr<OpNode, !cast<RVInstR>(Inst#Ext.Suffix),
497 Ext.PrimaryTy, Ext.PrimaryVT>;
504 ExtInfo Ext> {
505 let Predicates = Ext.Predicates in
506 def Ext.Suffix : PatFprFprDynFrm<OpNode,
507 !cast<RVInstRFrm>(Inst#Ext.Suffix),
508 Ext.PrimaryTy, Ext.PrimaryVT>;
517 foreach Ext = FExts in {
518 defm : PatFprFprDynFrm_m<any_fadd, FADD_S, Ext>;
519 defm : PatFprFprDynFrm_m<any_fsub, FSUB_S, Ext>;
520 defm : PatFprFprDynFrm_m<any_fmul, FMUL_S, Ext>;
521 defm : PatFprFprDynFrm_m<any_fdiv, FDIV_S, Ext>;
542 foreach Ext = FExts in
543 defm : PatFprFpr_m<fcopysign, FSGNJ_S, Ext>;
596 foreach Ext = FExts in {
597 defm : PatFprFpr_m<fminnum, FMIN_S, Ext>;
598 defm : PatFprFpr_m<fmaxnum, FMAX_S, Ext>;
599 defm : PatFprFpr_m<riscv_fmin, FMIN_S, Ext>;
600 defm : PatFprFpr_m<riscv_fmax, FMAX_S, Ext>;
608 foreach Ext = FExts in {
609 defm : PatSetCC_m<any_fsetcc, SETEQ, FEQ_S, Ext>;
610 defm : PatSetCC_m<any_fsetcc, SETOEQ, FEQ_S, Ext>;
611 defm : PatSetCC_m<strict_fsetcc, SETLT, PseudoQuietFLT_S, Ext>;
612 defm : PatSetCC_m<strict_fsetcc, SETOLT, PseudoQuietFLT_S, Ext>;
613 defm : PatSetCC_m<strict_fsetcc, SETLE, PseudoQuietFLE_S, Ext>;
614 defm : PatSetCC_m<strict_fsetcc, SETOLE, PseudoQuietFLE_S, Ext>;
647 foreach Ext = FExts in {
648 defm : PatSetCC_m<any_fsetccs, SETLT, FLT_S, Ext>;
649 defm : PatSetCC_m<any_fsetccs, SETOLT, FLT_S, Ext>;
650 defm : PatSetCC_m<any_fsetccs, SETLE, FLE_S, Ext>;
651 defm : PatSetCC_m<any_fsetccs, SETOLE, FLE_S, Ext>;