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

Reply via email to