------- Comment #7 from rguenth at gcc dot gnu dot org 2010-01-22 15:24 ------- With these patches I get for
void foo(int * __restrict__ a, int * __restrict__ b, int * __restrict__ c, int N) { int i; for (i = 0; i < N; ++i) a[i] = b[i] + c[i]; } and -O2 -funroll-all-loops all stores scheduled to the bottom of the loop and all adds to the top of the loop. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42617