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")])

Reply via email to