aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/fpu
AgeCommit message (Collapse)Author
2013-10-04PowerPC floating point little-endian [10 of 15]Alan Modra
http://sourceware.org/ml/libc-alpha/2013-07/msg00201.html These two functions oddly test x+1>0 when a double x is >= 0.0, and similarly when x is negative. I don't see the point of that since the test should always be true. I also don't see any need to convert x+1 to integer rather than simply using xr+1. Note that the standard allows these functions to return any value when the input is outside the range of long long, but it's not too hard to prevent xr+1 overflowing so that's what I've done. (With rounding mode FE_UPWARD, x+1 can be a lot more than what you might naively expect, but perhaps that situation was covered by the x - xrf < 1.0 test.) * sysdeps/powerpc/fpu/s_llround.c (__llround): Rewrite. * sysdeps/powerpc/fpu/s_llroundf.c (__llroundf): Rewrite.
2013-10-04PowerPC floating point little-endian [9 of 15]Alan Modra
http://sourceware.org/ml/libc-alpha/2013-07/msg00200.html This works around the fact that vsx is disabled in current little-endian gcc. Also, float constants take 4 bytes in memory vs. 16 bytes for vector constants, and we don't need to write one lot of masks for double (register format) and another for float (mem format). * sysdeps/powerpc/fpu/s_float_bitwise.h (__float_and_test28): Don't use vector int constants. (__float_and_test24, __float_and8, __float_get_exp): Likewise.
2013-10-04PowerPC floating point little-endian [8 of 15]Anton Blanchard
http://sourceware.org/ml/libc-alpha/2013-07/msg00199.html Corrects floating-point environment code for little-endian. * sysdeps/powerpc/fpu/fenv_libc.h (fenv_union_t): Replace int array with long long. * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Adjust. * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Adjust. * sysdeps/powerpc/fpu/fclrexcpt.c (__feclearexcept): Adjust. * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Adjust. * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Adjust. * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Adjust. * sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Adjust. * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Adjust. * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Adjust. * sysdeps/powerpc/fpu/fgetexcptflg.c (__fegetexceptflag): Adjust. * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Adjust. * sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Adjust. * sysdeps/powerpc/fpu/ftestexcept.c (fetestexcept): Adjust.
2013-10-04PowerPC floating point little-endian [3 of 15]Alan Modra
http://sourceware.org/ml/libc-alpha/2013-08/msg00083.html Further replacement of ieee854 macros and unions. These files also have some optimisations for comparison against 0.0L, infinity and nan. Since the ABI specifies that the high double of an IBM long double pair is the value rounded to double, a high double of 0.0 means the low double must also be 0.0. The ABI also says that infinity and nan are encoded in the high double, with the low double unspecified. This means that tests for 0.0L, +/-Infinity and +/-NaN need only check the high double. * sysdeps/ieee754/ldbl-128ibm/e_atan2l.c (__ieee754_atan2l): Rewrite all uses of ieee854 long double macros and unions. Simplify tests for long doubles that are fully specified by the high double. * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c (__ieee754_ilogbl): Likewise. Remove dead code too. * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise. (__ieee754_ynl): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise. Remove dead code too. * sysdeps/ieee754/ldbl-128ibm/k_tanl.c (__kernel_tanl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_isinf_nsl.c (__isinf_nsl): Likewise. Simplify. * sysdeps/ieee754/ldbl-128ibm/s_isinfl.c (___isinfl): Likewise. Simplify. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_modfl.c (__modfl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Likewise. Comment on variable precision. * sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c (__nexttoward): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c (__nexttowardf): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_remquol.c (__remquol): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c (__scalblnl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c (__scalbnl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_tanhl.c (__tanhl): Likewise. * sysdeps/powerpc/fpu/libm-test-ulps: Adjust tan_towardzero ulps.
2013-09-11Update powerpc-fpu ULPs.Adhemerval Zanella
2013-07-04Update powerpc-fpu ULPs.Adhemerval Zanella
2013-06-05Remove trailing whitespace.Joseph Myers
2013-05-31Link extra-libs consistently with libc and ld.so.Joseph Myers
2013-05-28Update powerpc libm-test ULPs.Adhemerval Zanella
2013-05-22Don't include expected results in libm-test test names.Joseph Myers
2013-05-19Handle sincos with generic libm-test logic.Joseph Myers
2013-05-17PowerPC: fix hypot/hypotf check for -INFAdhemerval Zanella
2013-05-16Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold
2013-05-08 Update powerpc libm-test ULPsAdhemerval Zanella
2013-05-06PowerPC: fix hypot/hypof FP exceptionsAdhemerval Zanella
This patch fixes hypot/hypotf spurious floating-point exceptions generate by internal operations.
2013-05-03Update powerpc libm-test ULPsAdhemerval Zanella
2013-04-30Update powerpc libm-test ULPsAdhemerval Zanella
2013-04-29Update powerpc libm-test ULPsAdhemerval Zanella
2013-03-28Fix e_logl (128ibm) spurious underflowAdhemerval Zanella
2013-03-26PowerPC: fix libm ABI issue for llroundlAdhemerval Zanella
2013-03-21PowerPC: fix sqrtl ABI issueAdhemerval Zanella
This patch fixes a sqrtl ABI issue when building for powerpc64.
2013-03-15Promote a math test for sNaN handling to the top-level.Thomas Schwinge
2013-03-15Use GCC's builtins for generating NaNs.Thomas Schwinge
2013-03-15Better distinguish between NaN/qNaN/sNaN.Thomas Schwinge
2013-03-08PowerPC: unify math_ldbl.h implementationsAdhemerval Zanella
This patch removes redudant definition from PowerPC specific math_ldbl, using the definitions from ieee754 math_ldbl.h.
2013-03-01Use same installed powerpc headers for hard and soft float.Joseph Myers
2013-02-14Remove bp-sym.h and BP_SYM uses from C code.Joseph Myers
2013-01-17Adapt installed powerpc headers better for soft-float / no-FPRs.Joseph Myers
2013-01-09Update powerpc ULPsSiddhesh Poyarekar
2013-01-07Fix spelling errors in sysdeps/powerpc files.Anton Blanchard
2013-01-04Fix warnings in test-powerpc-snan.cAndreas Schwab
2013-01-04Update powerpc libm ULPsAndreas Schwab
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-11-23Update powerpc libm-test ULPsAndreas Schwab
2012-11-03Make fma use of Dekker and Knuth algorithms use round-to-nearest (bug 14796).Joseph Myers
2012-10-31Update powerpc libm ULPsAndreas Schwab
2012-07-11Fix ctan, ctanh of subnormals in round-upwards mode (bug 14328).Adhemerval Zanella
IBM long double fixes and POWER ulps update.
2012-07-06Fix float range reduction problems (#14283)Andreas Schwab
2012-06-01PowerPC: Fix for POWER7 sinf/cosfAdhemerval Zanella
This patch fixes some sinf/cosf calculations that generated unexpected underflows exceptions.
2012-06-01Sort sysdeps/powerpc/fpu/libm-test-ulpsAndreas Schwab
2012-05-24Don't include exceptions in libm-test-ulps test names.Joseph Myers
2012-05-21PowerPC: ULPs updateAdhemerval Zanella
Adjustments for libm ulps added with commit d8b82cad1b525bdcbfff88d218c7c45032e4a3af, 495fd99f3a119e5c0c542ccc6cf9c93b1fb9e892, and 5ba3cc691c856e5c67a7d4cd4713f20a79f7ba81. I also adjusted some exp10 ulps definition that was higher than needed.
2012-05-19Update powerpc ULPs for ccos, csin, ccosh, csinh tests.Adhemerval Zanella
2012-05-04Fix for ldbl-128ibm acosl/asinl inaccuraciesAdhemerval Zanella
2012-05-02 Adhemerval Zanella <azanella@linux.vnet.ibm.com> * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Fix long double comparison inaccuracies. * sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): * Likewise. * sysdeps/powerpc/fpu/libm-test-ulps: Update.
2012-04-26Fix ctan, ctanh overflow for ldbl-128ibm (bug 11521).Adhemerval Zanella
2012-04-24Correct powerpc64 s_floorl edge cases (bug 13886).Adhemerval Zanella
[BZ #13886] Remove powerpc64/fpu/s_floorl. Use fully correct ldbl-128bim/s_floorl.c.
2012-03-26Update powerpc libm test ULPsAndreas Schwab
2012-03-21Update powerpc libm-test ULPsAndreas Schwab
2012-03-18Update powerpc libm test ULPsAndreas Schwab
2012-03-15Use double precision instead of scaling for powerpc __ieee754_hypotfAndreas Schwab