http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52621
--- Comment #11 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-04-11 12:17:12 UTC --- evolution_function_is_invariant_rec_p returns true for (integer(kind=8)) {0, +, {2, +, 2}_2}_2 and loop 1 even if loop 2 is nested inside loop 1. Thus, @@ -1011,6 +1029,8 @@ evolution_function_is_invariant_rec_p (t if (TREE_CODE (chrec) == POLYNOMIAL_CHREC) { if (CHREC_VARIABLE (chrec) == (unsigned) loopnum + || flow_loop_nested_p (get_loop (loopnum), + get_loop (CHREC_VARIABLE (chrec))) || !evolution_function_is_invariant_rec_p (CHREC_RIGHT (chrec), loopnum) || !evolution_function_is_invariant_rec_p (CHREC_LEFT (chrec), is required, IMHO, too.