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
This commit is contained in:
Richard Sandiford 2007-10-21 09:13:06 +00:00 committed by Richard Sandiford
parent f457938f7f
commit a1569a0e15
2 changed files with 16 additions and 15 deletions

View File

@ -1,3 +1,8 @@
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.

View File

@ -3305,22 +3305,18 @@ mips_rtx_costs (rtx x, int code, int outer_code, int *total)
case DIV:
/* 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
&& flag_unsafe_math_optimizations
&& (outer_code == SQRT || GET_CODE (XEXP (x, 1)) == SQRT))
{
/* An rsqrt<mode>a or rsqrt<mode>b pattern. Count the
division as being free. */
*total = rtx_cost (XEXP (x, 1), 0);
return true;
}
if (!ISA_MIPS1)
{
*total = mips_fp_div_cost (mode) + rtx_cost (XEXP (x, 1), 0);
return true;
}
if (outer_code == SQRT || GET_CODE (XEXP (x, 1)) == SQRT)
/* An rsqrt<mode>a or rsqrt<mode>b pattern. Count the
division as being free. */
*total = rtx_cost (XEXP (x, 1), 0);
else
*total = mips_fp_div_cost (mode) + rtx_cost (XEXP (x, 1), 0);
return true;
}
/* Fall through. */