summaryrefslogtreecommitdiffstats
path: root/lib/msun/src/s_fmal.c
Commit message (Collapse)AuthorAgeFilesLines
* Make the order of operations for lib/msun more clear.eadler2013-06-241-1/+1
| | | | | | | Tested with md5 sum of object code Reported by: swildner@DragonFlyBSD.org Submitted by: bde
* Fix some regressions caused by the switch from gcc to clang. The fixesdas2013-05-271-2/+6
| | | | | | | | | | are workarounds for various symptoms of the problem described in clang bugs 3929, 8100, 8241, 10409, and 12958. The regression tests did their job: they failed, someone brought it up on the mailing lists, and then the issue got ignored for 6 months. Oops. There may still be some regressions for functions we don't have test coverage for yet.
* Fix a regression introduced in r226371: When the high part of x*ydas2011-10-211-3/+3
| | | | | exactly cancels with z, return the low part of x*y instead of discarding it.
* Fix a double-rounding bug in fma{,f,l}. The bug would occur indas2011-10-151-52/+97
| | | | | | | | | | round-to-nearest mode when the result, rounded to twice machine precision, was exactly halfway between two machine-precision values. The essence of the fix is to simulate a "sticky bit" in the pathological cases, which is how hardware implementations break the ties. MFC after: 1 month
* Refactor this code by introducing separate functions to handle thedas2011-10-111-48/+84
| | | | | extra-precision add and multiply operations. This simplifies future work but shouldn't result in any functional change.
* Fix some corner cases:das2008-04-031-5/+10
| | | | | | | | | - fma(x, y, z) returns z, not NaN, if z is infinite, x and y are finite, x*y overflows, and x*y and z have opposite signs. - fma(x, y, z) doesn't generate an overflow, underflow, or inexact exception if z is NaN or infinite, as per IEEE 754R. - If the rounding mode is set to FE_DOWNWARD, fma(1.0, 0.0, -0.0) is -0.0, not +0.0.
* Fix the double rounding problem with subnormals, anddas2005-03-181-5/+17
| | | | remove the XXX comments, which no longer apply.
* Implement fmal.das2005-03-071-0/+170
OpenPOWER on IntegriCloud