https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88778
Bug ID: 88778 Summary: Odd Complex float load Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com CC: ubizjak at gmail dot com Target Milestone: --- [hjl@gnu-cfl-1 fp16-9]$ cat y.i _Complex float foo (_Complex float *p) { return *p; } [hjl@gnu-cfl-1 fp16-9]$ gcc -S -O2 y.i [hjl@gnu-cfl-1 fp16-9]$ cat y.s .file "y.i" .text .p2align 4,,15 .globl foo .type foo, @function foo: .LFB0: .cfi_startproc movss 4(%rdi), %xmm0 movss (%rdi), %xmm1 movss %xmm0, -4(%rsp) movss %xmm1, -8(%rsp) movq -8(%rsp), %xmm0 ret .cfi_endproc A single load should be used.