------- Comment #7 from ebotcazou at gcc dot gnu dot org 2009-08-25 00:37 ------- I tweaked IVOPTS a few months ago to help in similar cases on PowerPC:
2009-05-29 Eric Botcazou <ebotca...@adacore.com> * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case. (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise. (ptr_difference_cost): Use affine combinations to compute it. (difference_cost): Likewise. (get_computation_cost_at): Compute more accurate cost for addresses if the ratio is a multiplier allowed in addresses. For non-addresses, consider that an additional offset or symbol is added only once. Maybe this helped for MIPS in this case. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36223