On Thu, 21 Nov 2013, FX wrote: > Indeed, 387/SSE has flush-to-zero modes. But other APIs do not (glibc, > SysV, AIX).
Note that glibc libm functions may not work when called in a flush-to-zero mode, only in modes that can be established by the <fenv.h> functions. If any argument to a function is subnormal or the function result underflows, you certainly get undefined behavior in such a mode (I've seen infinite loops in libm functions running the glibc testsuite in such configurations); if things work in non-underflowing cases with normal arguments to functions, that's probably a side effect of the functions trying to avoid raising undue underflow exceptions and so not using underflowing arithmetic internally unless the final result will underflow. -- Joseph S. Myers jos...@codesourcery.com