diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1da349155d2bb91998f8f37f67d8584fe7759239..9ef7e64c2c8711b5be7a0e66a8dea1b71e410a46 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-10-20 Richard Guenther <rguenther@suse.de> + + * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR + and rotates to the set of expensive operations. + 2011-10-19 David S. Miller <davem@davemloft.net> * config/sparc/sparc.c (sparc_expand_move): Use diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index cb527913d4f1b4d0df4001289ea2c114e4753552..4bc9ffd0effc4c14433dcdfca37bf82e1d8236b6 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -549,6 +549,11 @@ stmt_cost (gimple stmt) 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: @@ -565,6 +570,9 @@ stmt_cost (gimple stmt) case LSHIFT_EXPR: case RSHIFT_EXPR: + case WIDEN_LSHIFT_EXPR: + case LROTATE_EXPR: + case RROTATE_EXPR: cost += 20; break;