http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56918
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-04-11 Known to work| |4.9.0 Target Milestone|--- |4.8.1 Summary|incorrect |[4.8 Regression] incorrect |auto-vectorization of array |auto-vectorization of array |initialization |initialization Ever Confirmed|0 |1 Known to fail| |4.8.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-11 11:42:49 UTC --- extern void abort (void); double data[4]; int main() { int i; for (i = 0; i < 2 * 2; ++i) data[i] = ((i + 2) % 3) + 1; if (data[0] != 3) abort (); return 0; } Seems to work on trunk.