I've committed the patch below to fix a build failure after rsqrt_optab changes applied. Now rsqrtsf2 is expected to have just 2 operands and HAVE_rsqrtsf2 should be simple enough. Tested with build for sh4-unknown-linux-gnu and running gcc.target/sh/sh4a-fsrra.c.
Regards, kaz -- 2015-12-06 Kaz Kojima <kkoj...@gcc.gnu.org> * config/sh/sh.md (rsqrtsf2): Adjust for canonical form with unspec. diff --git a/config/sh/sh.md b/config/sh/sh.md index 083febe..b6fe05c 100644 --- a/config/sh/sh.md +++ b/config/sh/sh.md @@ -13744,12 +13744,11 @@ label: (define_insn "rsqrtsf2" [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") - (div:SF (match_operand:SF 1 "immediate_operand" "i") - (sqrt:SF (match_operand:SF 2 "fp_arith_reg_operand" "0")))) + (unspec:SF [(match_operand:SF 1 "fp_arith_reg_operand" "0")] + UNSPEC_FSRRA)) (clobber (reg:SI FPSCR_STAT_REG)) (use (reg:SI FPSCR_MODES_REG))] - "TARGET_FPU_ANY && TARGET_FSRRA - && operands[1] == CONST1_RTX (SFmode)" + "TARGET_FPU_ANY && TARGET_FSRRA" "fsrra %0" [(set_attr "type" "fsrra") (set_attr "fp_mode" "single")])