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 <[email protected]>
* 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")])