https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107569
--- Comment #41 from Jakub Jelinek <jakub at gcc dot gnu.org> --- As for #c1, with trunk -O3 -march=skylake it is: vmovsd 8(%rdi), %xmm1 vmovsd (%rdi), %xmm0 vmulsd %xmm1, %xmm1, %xmm1 vfmadd132sd %xmm0, %xmm1, %xmm0 vsqrtsd %xmm0, %xmm0, %xmm0 which is I think what we want.