http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59714
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- You'll find other cases where fused operations make complex multiplication and division *more* accurate. There is, I suppose, a case for having a version of complex multiplication and division that follow the same accuracy goals as glibc libm (i.e. real and imaginary parts within a few ulp of the mathematically exact values, with corresponding exceptions, avoiding spurious overflow / underflow) - or even correctly rounding versions. But (a) people wouldn't want them as default, on grounds of speed, and (b) they would be tricky to implement in libgcc because of needing to change the rounding mode temporarily (libgcc can't depend on libm) and because of depending on details of the floating-point formats that libgcc otherwise doesn't need to depend on. Maybe people interested in complex arithmetic should propose new facilities for accurate multiplication / division when the C standard is next being revised (there's some interest in other new functions, see N1704, but no current project in which they could be added to the standard).