Index: lib/Target/ARC/ARCInstrInfo.td =================================================================== --- lib/Target/ARC/ARCInstrInfo.td +++ lib/Target/ARC/ARCInstrInfo.td @@ -125,18 +125,36 @@ (ins GPR32:$B, GPR32:$C), !strconcat(opasm, "\t$A, $B, $C"), []>; + def _f_rrr : F32_DOP_RR + { let Defs = [STATUS32]; } // 2 register with unsigned 6-bit immediate variant. def _rru6 : F32_DOP_RU6; + def _f_rru6 : F32_DOP_RU6 + { let Defs = [STATUS32]; } + // 2 register with 32-bit immediate variant. def _rrlimm : F32_DOP_RLIMM; + (outs GPR32:$A), + (ins GPR32:$B, i32imm:$LImm), + !strconcat(opasm, "\t$A, $B, $LImm"), + []>; + def _f_rrlimm : F32_DOP_RLIMM + { let Defs = [STATUS32]; } + // 2 matched-register with signed 12-bit immediate variant (add r0, r0, -1). def _rrs12 : F32_DOP_RS12 { let Constraints = "$B = $in"; } + def _f_rrs12 : F32_DOP_RS12:$S12), + !strconcat(opasm, ".f\t$B, $in, $S12"), + []> + { let Constraints = "$B = $in"; let Defs = [STATUS32]; } } // Special multivariant GEN4 DOP format instruction that take 2 registers. @@ -168,6 +192,10 @@ string opasm> { def _rr : F32_SOP_RR; + + def _f_rr : F32_SOP_RR + { let Defs = [STATUS32]; } }