http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46085
--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2010-10-19 19:48:35 UTC --- [...@gnu-18 gcc]$ cat x.c extern void abort (); float b[16] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45}; float c[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int main () { int i; float diff = 2; for (i = 0; i < 16; i++) { diff += (b[i] - c[i]); } if (diff != 242) abort (); return 0; } [...@gnu-18 gcc]$ ./xgcc -B./ x.c -ftree-vectorize -g -mavx -O -ffast-math [...@gnu-18 gcc]$ ./a.out Aborted [...@gnu-18 gcc]$ ./xgcc -B./ x.c -ftree-vectorize -g -mavx -O -ffast-math -mno-avx -msse4 [...@gnu-18 gcc]$ ./a.out [...@gnu-18 gcc]$