int a, b, c, d;
void foo ()
for(i=1; i< 99; i++)
a[i] = b[i-1] + c[i];
b[i] = b[i+1] + d[i];
gcc -O3 -ffast-math -ftree-vectorizer-verbose=2 -c foo.c
foo.c:6: note: not vectorized, possible dependence between data-refs b[D.2728_3] and b[i_17]
foo.c:3: note: vectorized 0 loops in function.
However, if we reorder the two statements in the loop, then it can be vectorized. open64 can do this reordering.
Looks similar to PR 32806.