------- Comment #3 from irar at il dot ibm dot com 2009-03-17 13:33 ------- (In reply to comment #2) > Or like the following, which is just a bunch of reductions of two elements > float data[1024]; > void foo(void) > { > int i; > for (i = 1; i < 1024; ++i) > data[i] = data[i] + data[i-1]; > }
Actually, this loop is not vectorizable. res and data have to be different arrays, otherwise we get read after write dependence with distance 1. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35229