http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48609
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Inefficient complex float |Inefficient complex float |store |load/store --- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2011-04-14 14:04:20 UTC --- Load has the same problem: [hjl@gnu-6 pr1000]$ cat load.i typedef _Complex float SCtype; extern SCtype foo; SCtype bar () { return foo; } [hjl@gnu-6 pr1000]$ /usr/gcc-4.7/bin/gcc -S -O2 load.i [hjl@gnu-6 pr1000]$ cat load.s .file "load.i" .text .p2align 4,,15 .globl bar .type bar, @function bar: .LFB0: .cfi_startproc movl foo(%rip), %eax movl %eax, -8(%rsp) movl foo+4(%rip), %eax movl %eax, -4(%rsp) movq -8(%rsp), %xmm0 ret .cfi_endproc .LFE0: .size bar, .-bar