https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89991
--- Comment #17 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >Doesn't this gets the wrong answer for __y = -0 (as -0 < 0 is false)? No, you missed this part: // The branch cut is on the negative axis. So maybe the bug is inside FreeBSD and Window's libm. Glibc fixed the branch cuts issues back in 2012 for csqrt but the other OS's did not change theirs.