https://issues.dlang.org/show_bug.cgi?id=21376
--- Comment #3 from Iain Buclaw <ibuc...@gdcproject.org> --- hypot() isn't necessary, so that leaves just the lack of fstp/fld after calling fsqrt. --- import core.math; float abs(float re, float im) { float u = fabs(re); float v = fabs(im); return sqrt(u*u + v*v); } void log(real x) { assert(x == 1); } void main() { float re = 0.866025403784438646787; float im = 0.5; return log(abs(re, im)); } --