http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55247
--- Comment #11 from Uros Bizjak <ubizjak at gmail dot com> 2012-11-10 11:55:55 UTC --- ~/gcc-build/gcc/cc1 -O2 -mx32 -maddress-mode=long pr55247.c results in following sequence: movdqu (%eax), %xmm0 movdqa %xmm0, (%rsp) movq (%rsp), %rax movq 8(%rsp), %rdx movq %rax, 16(%rsp) movq %rdx, 24(%rsp) while -maddress=mode=short produces expected code: movq 8(%eax), %rdx movq (%eax), %rax movq %rdx, 8(%esp) movq %rax, (%esp)