Lines Matching refs:rs3

71 def any_fma_nsz : PatFrag<(ops node:$rs1, node:$rs2, node:$rs3),
72 (any_fma node:$rs1, node:$rs2, node:$rs3), [{
180 (ins rty:$rs1, rty:$rs2, rty:$rs3, frmarg:$frm),
181 opcodestr, "$rd, $rs1, $rs2, $rs3$frm">;
548 // fmadd: rs1 * rs2 + rs3
549 def : Pat<(any_fma FPR32:$rs1, FPR32:$rs2, FPR32:$rs3),
550 (FMADD_S $rs1, $rs2, $rs3, FRM_DYN)>;
552 // fmsub: rs1 * rs2 - rs3
553 def : Pat<(any_fma FPR32:$rs1, FPR32:$rs2, (fneg FPR32:$rs3)),
554 (FMSUB_S FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, FRM_DYN)>;
556 // fnmsub: -rs1 * rs2 + rs3
557 def : Pat<(any_fma (fneg FPR32:$rs1), FPR32:$rs2, FPR32:$rs3),
558 (FNMSUB_S FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, FRM_DYN)>;
560 // fnmadd: -rs1 * rs2 - rs3
561 def : Pat<(any_fma (fneg FPR32:$rs1), FPR32:$rs2, (fneg FPR32:$rs3)),
562 (FNMADD_S FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, FRM_DYN)>;
564 // fnmadd: -(rs1 * rs2 + rs3) (the nsz flag on the FMA)
565 def : Pat<(fneg (any_fma_nsz FPR32:$rs1, FPR32:$rs2, FPR32:$rs3)),
566 (FNMADD_S FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, FRM_DYN)>;
572 // fmadd: rs1 * rs2 + rs3
573 def : Pat<(any_fma FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3),
574 (FMADD_S_INX $rs1, $rs2, $rs3, FRM_DYN)>;
576 // fmsub: rs1 * rs2 - rs3
577 def : Pat<(any_fma FPR32INX:$rs1, FPR32INX:$rs2, (fneg FPR32INX:$rs3)),
578 (FMSUB_S_INX FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3, FRM_DYN)>;
580 // fnmsub: -rs1 * rs2 + rs3
581 def : Pat<(any_fma (fneg FPR32INX:$rs1), FPR32INX:$rs2, FPR32INX:$rs3),
582 (FNMSUB_S_INX FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3, FRM_DYN)>;
584 // fnmadd: -rs1 * rs2 - rs3
585 def : Pat<(any_fma (fneg FPR32INX:$rs1), FPR32INX:$rs2, (fneg FPR32INX:$rs3)),
586 (FNMADD_S_INX FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3, FRM_DYN)>;
588 // fnmadd: -(rs1 * rs2 + rs3) (the nsz flag on the FMA)
589 def : Pat<(fneg (any_fma_nsz FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3)),
590 (FNMADD_S_INX FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3, FRM_DYN)>;