Date: Fri, 27 Nov 2015 14:37:21 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 204671] clang floating point wrong around Inf (i386) Message-ID: <bug-204671-8-Q7ted3tDME@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-204671-8@https.bugs.freebsd.org/bugzilla/> References: <bug-204671-8@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204671 --- Comment #4 from Jilles Tjoelker <jilles@FreeBSD.org> --- It may be reasonable to make i386 fesetround() a non-inline function, at least when compiling without SSE (__test_sse() may be called). In that case, compilers are likely to save caller-save registers already, so part of the cost of a function call is already paid, even though an actual function call only happens the first time. Alternatively, __test_sse() could be called somewhere during startup, so the function call in the inlined fesetround() is not needed. This will reduce code size of fesetround() calls considerably, but rounding to float or double is still likely to use an incorrect rounding mode. When compiling with SSE, there is no __test_sse() call and the behaviour for the x87 is similar; however, if SSE2 is enabled, the x87 is probably only used for long double. -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-204671-8-Q7ted3tDME>