gcc-4.2.2 seems to generating wrong/misaligned code for movapd. I have used the same test case mentione here (for almost the similar bug) http://gcc.gnu.org/bugzilla/attachment.cgi?id=6012
The relavent information about the version and the files are as follows: The version of gcc: gcc -v Using built-in specs. Target: i386-redhat-linux Configured with: ../../src/gcc-4.2.2/configure --prefix=/depot/gcc-4.2.2-static --disable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,fortran --with-cpu=generic --host=i386-redhat-linux Thread model: posi $ gcc -g -O2 -funsigned-bitfields -fsigned-char -ffloat-store -Wformat -msse2 -mfpmath=sse -c sse.c $ objdump -Sd sse.o > sse_asm.txt $ grep movapd sse_asm.txt a3: 66 0f 28 c2 movapd %xmm2,%xmm0 cb: 66 0f 28 c1 movapd %xmm1,%xmm0 f6: 66 0f 28 c4 movapd %xmm4,%xmm0 165: 66 0f 29 9d 38 fe ff movapd %xmm3,0xfffffe38(%ebp) #<============ 185: 66 0f 28 9d 38 fe ff movapd 0xfffffe38(%ebp),%xmm3 Is this a known issue? If so, is there are there any suggested workarounds (other than upgrading to later versions :-) ? Regards, Gowri Kumar -- Summary: 4.2.2 -mfpmath=sse causes movapd from non-16-byte aligned address Product: gcc Version: 4.2.2 Status: UNCONFIRMED Severity: major Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gkumar007 at gmail dot com GCC host triplet: x86_64-redhat-linux GCC target triplet: x86_64-redhat-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37003