https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99228
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm, the trunk no longer does the if conversion: complex_sgn(std::complex<double> const&): .LFB2678: .cfi_startproc vmovsd xmm0, QWORD PTR [rdi] vxorpd xmm1, xmm1, xmm1 vcomisd xmm0, xmm1 jne .L8 vmovsd xmm0, QWORD PTR [rdi+8] vcomisd xmm0, xmm1 je .L13 .L8: vandpd xmm0, xmm0, XMMWORD PTR .LC1[rip] vorpd xmm0, xmm0, XMMWORD PTR .LC2[rip] ret