https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88778

--- Comment #7 from 刘袋鼠 <crazylht at gmail dot com> ---
Simple testcase below related to read_complex_part/write_complex_part
cat complex.c
_Complex float
foo (_Complex float a, _Complex float b)
{
  _Complex float c,d;
  c = a + b;
  return c;
}

cat complex.s


        .file   "complex.c"
        .text
        .p2align 4
        .globl  foo
        .type   foo, @function
foo:
.LFB0:
        .cfi_startproc
        movq    %xmm0, %rax
        movq    %xmm1, %rdx
        vaddss  %xmm1, %xmm0, %xmm0
        shrq    $32, %rax
        shrq    $32, %rdx
        vmovd   %eax, %xmm3
        vmovd   %edx, %xmm4
        vaddss  %xmm4, %xmm3, %xmm2
        vmovd   %xmm0, %edx
        vmovd   %xmm2, %eax
        salq    $32, %rax
        orq     %rdx, %rax
        movq    %rax, %xmm0
        ret
        .cfi_endproc
.LFE0:
        .size   foo, .-foo
        .ident  "GCC: (GNU) 9.0.0 20190110 (experimental)"
        .section        .note.GNU-stack,"",@progbits

Reply via email to