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

Hongtao.liu <crazylht at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |crazylht at gmail dot com

--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> ---
It looks like a regression since GCC9

typedef float v1sf __attribute__((vector_size(4)));

v1sf
foo43 (v1sf a, v1sf b, v1sf c)
{
    return a * b + c;
}

gcc9 also don't generate vfmaddXXXss.

        pushq   %rbp
        movq    %rdi, %rax
        movq    %rsp, %rbp
        andq    $-32, %rsp
        vmovss  24(%rbp), %xmm0
        vmulss  16(%rbp), %xmm0, %xmm0
        vaddss  32(%rbp), %xmm0, %xmm0
        vmovss  %xmm0, -64(%rsp)
        movl    -64(%rsp), %edx
        movl    %edx, (%rdi)
        leave
        ret

Reply via email to