http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43616
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Target|arm-eabi |arm-eabi, x86 Known to fail| | --- Comment #2 from Uros Bizjak <ubizjak at gmail dot com> 2012-06-17 11:03:47 UTC --- The same problem happens on x86_64: --cut here-- void foo (void); float test (float a, float b) { foo (); return b; } --cut here-- gcc -O2 test: .LFB0: subq $24, %rsp movss %xmm1, (%rsp) call foo A movss (%rsp), %xmm1 addq $24, %rsp B movaps %xmm1, %xmm0 ret We could move from stack directly to xmm0