http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56068
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> 2013-01-21 17:30:38 UTC --- What is the illegal instruction? What version of glibc are you using? I debugged a very similar problem last week where GCC was generating vmovsd on a host without AVX support. /proc/cpuinfo showed no avx flag, but glibc's __cpuid reported the AVX bit set which makes GCC use -mavx. This is a glibc bug, it should not set the AVX bit if the OSXSAVE bit is not also set. This seems to predominantly affect VMs, but in my case was not a VM. The glibc bug is fixed in 2.15, see http://sourceware.org/bugzilla/show_bug.cgi?id=14059 and http://sourceware.org/bugzilla/show_bug.cgi?id=13753 Using -mno-avx (or replacing -march=cirei7) worked for me.