mips.c (mips_rtx_costs): Only recognize reciprocals if ISA_HAS_FP4.
authorRichard Sandiford <rsandifo@nildram.co.uk>
Sun, 21 Oct 2007 09:13:06 +0000 (09:13 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 21 Oct 2007 09:13:06 +0000 (09:13 +0000)
gcc/
* config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
if ISA_HAS_FP4.

From-SVN: r129524

gcc/ChangeLog
gcc/config/mips/mips.c

index cbc431f8e9b621a2550969476689644bd4a4b534..154bcc84e25976a1856202bfc702b22fbc831f5b 100644 (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.
index 0948832b8ab06b7f4482d3feede00cd57012d09c..2ddb778462af590000891ea977b79abe54042c10 100644 (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.  */