https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79709
--- Comment #8 from Marc Glisse <glisse at gcc dot gnu.org> --- Thomas, the code generated by gcc has changed (after some patches by Jakub IIRC). Do you consider the issue fixed or is the generated asm still problematic? .L13: vpextrq $1, %xmm2, %rax testq %rax, %rax je .L2 vextractf128 $0x1, %ymm2, %xmm2 vmovq %xmm2, %rax testq %rax, %rax jne .L2 vpextrq $1, %xmm2, %rax vmovapd %ymm4, %ymm3 testq %rax, %rax jne .L2 .L3: vmulpd %ymm3, %ymm3, %ymm4 vmulpd %ymm8, %ymm3, %ymm3 vsubpd %ymm10, %ymm4, %ymm4 vmulpd %ymm9, %ymm3, %ymm3 vaddpd %ymm0, %ymm4, %ymm4 vaddpd %ymm1, %ymm3, %ymm9 vaddpd %ymm4, %ymm4, %ymm2 vmulpd %ymm9, %ymm9, %ymm10 vaddpd %ymm10, %ymm2, %ymm2 vcmpltpd %ymm7, %ymm2, %ymm2 vpaddq %xmm2, %xmm5, %xmm3 vextractf128 $1, %ymm2, %xmm6 vmovq %xmm2, %rax vextractf128 $1, %ymm5, %xmm5 testq %rax, %rax vpaddq %xmm6, %xmm5, %xmm5 vinsertf128 $0x1, %xmm5, %ymm3, %ymm5 jne .L13