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