mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 08:10:28 +08:00
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:
parent
f457938f7f
commit
a1569a0e15
@ -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.
|
||||
|
@ -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. */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user