Commit a1569a0e by Richard Sandiford Committed by Richard Sandiford

mips.c (mips_rtx_costs): Only recognize reciprocals if ISA_HAS_FP4.

gcc/
	* config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
	if ISA_HAS_FP4.

From-SVN: r129524
parent f457938f
2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk> 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
* config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
if ISA_HAS_FP4.
2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
* config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro. * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
* config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
instead of checking mips_isa. instead of checking mips_isa.
...@@ -3305,22 +3305,18 @@ mips_rtx_costs (rtx x, int code, int outer_code, int *total) ...@@ -3305,22 +3305,18 @@ mips_rtx_costs (rtx x, int code, int outer_code, int *total)
case DIV: case DIV:
/* Check for a reciprocal. */ /* Check for a reciprocal. */
if (float_mode_p && XEXP (x, 0) == CONST1_RTX (mode)) if (float_mode_p
&& ISA_HAS_FP4
&& flag_unsafe_math_optimizations
&& XEXP (x, 0) == CONST1_RTX (mode))
{ {
if (ISA_HAS_FP4 if (outer_code == SQRT || GET_CODE (XEXP (x, 1)) == SQRT)
&& flag_unsafe_math_optimizations /* An rsqrt<mode>a or rsqrt<mode>b pattern. Count the
&& (outer_code == SQRT || GET_CODE (XEXP (x, 1)) == SQRT)) division as being free. */
{ *total = rtx_cost (XEXP (x, 1), 0);
/* An rsqrt<mode>a or rsqrt<mode>b pattern. Count the else
division as being free. */ *total = mips_fp_div_cost (mode) + rtx_cost (XEXP (x, 1), 0);
*total = rtx_cost (XEXP (x, 1), 0); return true;
return true;
}
if (!ISA_MIPS1)
{
*total = mips_fp_div_cost (mode) + rtx_cost (XEXP (x, 1), 0);
return true;
}
} }
/* Fall through. */ /* Fall through. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment