* config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Sep 2005 17:05:44 +0000 (17:05 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Sep 2005 17:05:44 +0000 (17:05 +0000)
        for a memory source.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104425 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 2a56ded..addadd5 100644 (file)
@@ -4,6 +4,9 @@
        * real.c (exact_real_truncate): Return false if the format cannot
        represent the number as a normal.
 
+       * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
+       for a memory source.
+
 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
 
        * tree-ssa-operands.c (swap_tree_operands): Export.
index 808116a..1e31db4 100644 (file)
@@ -1473,11 +1473,17 @@ alpha_rtx_costs (rtx x, int code, int outer_code, int *total)
     case UNSIGNED_FLOAT:
     case FIX:
     case UNSIGNED_FIX:
-    case FLOAT_EXTEND:
     case FLOAT_TRUNCATE:
       *total = cost_data->fp_add;
       return false;
 
+    case FLOAT_EXTEND:
+      if (GET_CODE (XEXP (x, 0)) == MEM)
+       *total = 0;
+      else
+       *total = cost_data->fp_add;
+      return false;
+
     default:
       return false;
     }