From owner-freebsd-bugs@freebsd.org Fri Nov 27 14:37:20 2015 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD4EFA3A07C for ; Fri, 27 Nov 2015 14:37:20 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF44D1CC4 for ; Fri, 27 Nov 2015 14:37:20 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id tAREbK8d014533 for ; Fri, 27 Nov 2015 14:37:20 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 204671] clang floating point wrong around Inf (i386) Date: Fri, 27 Nov 2015 14:37:21 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 10.2-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: jilles@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Nov 2015 14:37:21 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204671 --- Comment #4 from Jilles Tjoelker --- 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.