We've got new tree codes, the following makes Loop IM cost
consider those expensive that make sense.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2011-10-19  Richard Guenther  <rguent...@suse.de>

        * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
        and rotates to the set of expensive operations.

Index: gcc/tree-ssa-loop-im.c
===================================================================
*** gcc/tree-ssa-loop-im.c      (revision 180191)
--- gcc/tree-ssa-loop-im.c      (working copy)
*************** stmt_cost (gimple stmt)
*** 549,554 ****
--- 549,559 ----
    switch (gimple_assign_rhs_code (stmt))
      {
      case MULT_EXPR:
+     case WIDEN_MULT_EXPR:
+     case WIDEN_MULT_PLUS_EXPR:
+     case WIDEN_MULT_MINUS_EXPR:
+     case DOT_PROD_EXPR:
+     case FMA_EXPR:
      case TRUNC_DIV_EXPR:
      case CEIL_DIV_EXPR:
      case FLOOR_DIV_EXPR:
*************** stmt_cost (gimple stmt)
*** 565,570 ****
--- 570,578 ----
  
      case LSHIFT_EXPR:
      case RSHIFT_EXPR:
+     case WIDEN_LSHIFT_EXPR:
+     case LROTATE_EXPR:
+     case RROTATE_EXPR:
        cost += 20;
        break;
  

Reply via email to