diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2013-12-20 09:31:50 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2013-12-20 09:31:50 +0100 |
commit | d421cfc9bd0275f1d81bd8757b80ff568c7b2826 (patch) | |
tree | 46b47f0c1b7a64e2697516b627be8464d15ab797 /sysdeps/powerpc/fpu | |
parent | 1cbf52cde38c2c2c2d8ffdd55cd73f864d79abda (diff) | |
parent | b4578bab30f72cddd2cf38abfb39f9c8dc892249 (diff) |
Merge commit 'refs/top-bases/t/no-hp-timing' into t/no-hp-timing
Diffstat (limited to 'sysdeps/powerpc/fpu')
25 files changed, 5229 insertions, 293 deletions
diff --git a/sysdeps/powerpc/fpu/e_sqrt.c b/sysdeps/powerpc/fpu/e_sqrt.c index 3efe277f37..2d50fb525e 100644 --- a/sysdeps/powerpc/fpu/e_sqrt.c +++ b/sysdeps/powerpc/fpu/e_sqrt.c @@ -145,7 +145,7 @@ __slow_ieee754_sqrt (double x) feraiseexcept (FE_INVALID_SQRT); fenv_union_t u = { .fenv = fegetenv_register () }; - if ((u.l[1] & FE_INVALID) == 0) + if ((u.l & FE_INVALID) == 0) #endif feraiseexcept (FE_INVALID); x = a_nan.value; diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c index 6e50a3cd75..91d2d37d7b 100644 --- a/sysdeps/powerpc/fpu/e_sqrtf.c +++ b/sysdeps/powerpc/fpu/e_sqrtf.c @@ -121,7 +121,7 @@ __slow_ieee754_sqrtf (float x) feraiseexcept (FE_INVALID_SQRT); fenv_union_t u = { .fenv = fegetenv_register () }; - if ((u.l[1] & FE_INVALID) == 0) + if ((u.l & FE_INVALID) == 0) #endif feraiseexcept (FE_INVALID); x = a_nan.value; diff --git a/sysdeps/powerpc/fpu/fclrexcpt.c b/sysdeps/powerpc/fpu/fclrexcpt.c index 86575dba67..7f66e21ce2 100644 --- a/sysdeps/powerpc/fpu/fclrexcpt.c +++ b/sysdeps/powerpc/fpu/fclrexcpt.c @@ -28,8 +28,8 @@ __feclearexcept (int excepts) u.fenv = fegetenv_register (); /* Clear the relevant bits. */ - u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID) - | (excepts & FPSCR_STICKY_BITS)); + u.l = u.l & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID) + | (excepts & FPSCR_STICKY_BITS)); /* Put the new state in effect. */ fesetenv_register (u.fenv); diff --git a/sysdeps/powerpc/fpu/fe_nomask.c b/sysdeps/powerpc/fpu/fe_nomask.c index 5127000c26..f54c0760d5 100644 --- a/sysdeps/powerpc/fpu/fe_nomask.c +++ b/sysdeps/powerpc/fpu/fe_nomask.c @@ -24,10 +24,9 @@ normally involve a syscall. */ const fenv_t * -__fe_nomask_env(void) +__fe_nomask_env_priv (void) { __set_errno (ENOSYS); return FE_ENABLED_ENV; } -libm_hidden_def (__fe_nomask_env) -stub_warning (__fe_nomask_env) +stub_warning (__fe_nomask_env_priv) diff --git a/sysdeps/powerpc/fpu/fedisblxcpt.c b/sysdeps/powerpc/fpu/fedisblxcpt.c index 659566b67e..f2c45a60c6 100644 --- a/sysdeps/powerpc/fpu/fedisblxcpt.c +++ b/sysdeps/powerpc/fpu/fedisblxcpt.c @@ -32,15 +32,15 @@ fedisableexcept (int excepts) fe.fenv = fegetenv_register (); if (excepts & FE_INEXACT) - fe.l[1] &= ~(1 << (31 - FPSCR_XE)); + fe.l &= ~(1 << (31 - FPSCR_XE)); if (excepts & FE_DIVBYZERO) - fe.l[1] &= ~(1 << (31 - FPSCR_ZE)); + fe.l &= ~(1 << (31 - FPSCR_ZE)); if (excepts & FE_UNDERFLOW) - fe.l[1] &= ~(1 << (31 - FPSCR_UE)); + fe.l &= ~(1 << (31 - FPSCR_UE)); if (excepts & FE_OVERFLOW) - fe.l[1] &= ~(1 << (31 - FPSCR_OE)); + fe.l &= ~(1 << (31 - FPSCR_OE)); if (excepts & FE_INVALID) - fe.l[1] &= ~(1 << (31 - FPSCR_VE)); + fe.l &= ~(1 << (31 - FPSCR_VE)); fesetenv_register (fe.fenv); new = __fegetexcept (); diff --git a/sysdeps/powerpc/fpu/feenablxcpt.c b/sysdeps/powerpc/fpu/feenablxcpt.c index fc4bfffad5..35e977e1e0 100644 --- a/sysdeps/powerpc/fpu/feenablxcpt.c +++ b/sysdeps/powerpc/fpu/feenablxcpt.c @@ -32,20 +32,20 @@ feenableexcept (int excepts) fe.fenv = fegetenv_register (); if (excepts & FE_INEXACT) - fe.l[1] |= (1 << (31 - FPSCR_XE)); + fe.l |= (1 << (31 - FPSCR_XE)); if (excepts & FE_DIVBYZERO) - fe.l[1] |= (1 << (31 - FPSCR_ZE)); + fe.l |= (1 << (31 - FPSCR_ZE)); if (excepts & FE_UNDERFLOW) - fe.l[1] |= (1 << (31 - FPSCR_UE)); + fe.l |= (1 << (31 - FPSCR_UE)); if (excepts & FE_OVERFLOW) - fe.l[1] |= (1 << (31 - FPSCR_OE)); + fe.l |= (1 << (31 - FPSCR_OE)); if (excepts & FE_INVALID) - fe.l[1] |= (1 << (31 - FPSCR_VE)); + fe.l |= (1 << (31 - FPSCR_VE)); fesetenv_register (fe.fenv); new = __fegetexcept (); if (new != 0 && result == 0) - (void)__fe_nomask_env (); + (void) __fe_nomask_env_priv (); if ((new & excepts) != excepts) result = -1; diff --git a/sysdeps/powerpc/fpu/fegetexcept.c b/sysdeps/powerpc/fpu/fegetexcept.c index f3d5724e91..23d47a27e9 100644 --- a/sysdeps/powerpc/fpu/fegetexcept.c +++ b/sysdeps/powerpc/fpu/fegetexcept.c @@ -27,15 +27,15 @@ __fegetexcept (void) fe.fenv = fegetenv_register (); - if (fe.l[1] & (1 << (31 - FPSCR_XE))) + if (fe.l & (1 << (31 - FPSCR_XE))) result |= FE_INEXACT; - if (fe.l[1] & (1 << (31 - FPSCR_ZE))) + if (fe.l & (1 << (31 - FPSCR_ZE))) result |= FE_DIVBYZERO; - if (fe.l[1] & (1 << (31 - FPSCR_UE))) + if (fe.l & (1 << (31 - FPSCR_UE))) result |= FE_UNDERFLOW; - if (fe.l[1] & (1 << (31 - FPSCR_OE))) + if (fe.l & (1 << (31 - FPSCR_OE))) result |= FE_OVERFLOW; - if (fe.l[1] & (1 << (31 - FPSCR_VE))) + if (fe.l & (1 << (31 - FPSCR_VE))) result |= FE_INVALID; return result; diff --git a/sysdeps/powerpc/fpu/fegetround.c b/sysdeps/powerpc/fpu/fegetround.c index bcb6caab9d..078911f4a3 100644 --- a/sysdeps/powerpc/fpu/fegetround.c +++ b/sysdeps/powerpc/fpu/fegetround.c @@ -24,3 +24,4 @@ fegetround (void) { return __fegetround(); } +libm_hidden_def (fegetround) diff --git a/sysdeps/powerpc/fpu/feholdexcpt.c b/sysdeps/powerpc/fpu/feholdexcpt.c index 013d2bfbb4..0ecf0f7bc5 100644 --- a/sysdeps/powerpc/fpu/feholdexcpt.c +++ b/sysdeps/powerpc/fpu/feholdexcpt.c @@ -30,13 +30,12 @@ feholdexcept (fenv_t *envp) /* Clear everything except for the rounding modes and non-IEEE arithmetic flag. */ - new.l[1] = old.l[1] & 7; - new.l[0] = old.l[0]; + new.l = old.l & 0xffffffff00000007LL; /* If the old env had any enabled exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the FPU to run faster because it always takes the default action and can not generate SIGFPE. */ - if ((old.l[1] & _FPU_MASK_ALL) != 0) + if ((old.l & _FPU_MASK_ALL) != 0) (void)__fe_mask_env (); /* Put the new state in effect. */ diff --git a/sysdeps/powerpc/fpu/fenv_libc.h b/sysdeps/powerpc/fpu/fenv_libc.h index 1910951568..74d633d942 100644 --- a/sysdeps/powerpc/fpu/fenv_libc.h +++ b/sysdeps/powerpc/fpu/fenv_libc.h @@ -23,7 +23,9 @@ #include <ldsodefs.h> #include <sysdep.h> -libm_hidden_proto (__fe_nomask_env) +extern const fenv_t *__fe_nomask_env_priv (void); + +extern const fenv_t *__fe_mask_env (void) attribute_hidden; /* The sticky bits in the FPSCR indicating exceptions have occurred. */ #define FPSCR_STICKY_BITS ((FE_ALL_EXCEPT | FE_ALL_INVALID) & ~FE_INVALID) @@ -69,7 +71,7 @@ libm_hidden_proto (__fe_nomask_env) typedef union { fenv_t fenv; - unsigned int l[2]; + unsigned long long l; } fenv_union_t; @@ -81,7 +83,6 @@ __fegetround (void) "mfcr %0" : "=r"(result) : : "cr7"); return result & 3; } -#define fegetround() __fegetround() static inline int __fesetround (int round) @@ -105,7 +106,6 @@ __fesetround (int round) return 0; } -#define fesetround(mode) __fesetround(mode) /* Definitions of all the FPSCR bit numbers */ enum { diff --git a/sysdeps/powerpc/fpu/fenv_private.h b/sysdeps/powerpc/fpu/fenv_private.h new file mode 100644 index 0000000000..bc78c3ffb0 --- /dev/null +++ b/sysdeps/powerpc/fpu/fenv_private.h @@ -0,0 +1,274 @@ +/* Private floating point rounding and exceptions handling. PowerPC version. + Copyright (C) 2013 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef FENV_PRIVATE_H +#define FENV_PRIVATE_H 1 + +#include <fenv.h> +#include <fenv_libc.h> +#include <fpu_control.h> + +#define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM \ + | _FPU_MASK_XM | _FPU_MASK_IM) + +/* Mask everything but the rounding moded and non-IEEE arithmetic flags. */ +#define _FPU_MASK_ROUNDING 0xffffffff00000007LL + +/* Mask restore rounding mode and exception enabled. */ +#define _FPU_MASK_EXCEPT_ROUND 0xffffffff1fffff00LL + +/* Mask exception enable but fraction rounded/inexact and FP result/CC + bits. */ +#define _FPU_MASK_FRAC_INEX_RET_CC 0x1ff80fff + +static __always_inline void +libc_feholdexcept_ppc (fenv_t *envp) +{ + fenv_union_t old, new; + + old.fenv = *envp = fegetenv_register (); + + new.l = old.l & _FPU_MASK_ROUNDING; + + /* If the old env had any enabled exceptions, then mask SIGFPE in the + MSR FE0/FE1 bits. This may allow the FPU to run faster because it + always takes the default action and can not generate SIGFPE. */ + if ((old.l & _FPU_MASK_ALL) != 0) + (void) __fe_mask_env (); + + fesetenv_register (new.fenv); +} + +static __always_inline void +libc_fesetround_ppc (int r) +{ + __fesetround (r); +} + +static __always_inline void +libc_feholdexcept_setround_ppc (fenv_t *envp, int r) +{ + fenv_union_t old, new; + + old.fenv = *envp = fegetenv_register (); + + new.l = (old.l & _FPU_MASK_ROUNDING) | r; + + if ((old.l & _FPU_MASK_ALL) != 0) + (void) __fe_mask_env (); + + fesetenv_register (new.fenv); +} + +static __always_inline int +libc_fetestexcept_ppc (int e) +{ + fenv_union_t u; + u.fenv = fegetenv_register (); + return u.l & e; +} + +static __always_inline void +libc_fesetenv_ppc (const fenv_t *envp) +{ + fenv_union_t old, new; + + new.fenv = *envp; + old.fenv = fegetenv_register (); + + /* If the old env has no enabled exceptions and the new env has any enabled + exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put the + hardware into "precise mode" and may cause the FPU to run slower on some + hardware. */ + if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0) + (void) __fe_nomask_env_priv (); + + /* If the old env had any enabled exceptions and the new env has no enabled + exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the + FPU to run faster because it always takes the default action and can not + generate SIGFPE. */ + if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0) + (void) __fe_mask_env (); + + fesetenv_register (*envp); +} + +static __always_inline int +libc_feupdateenv_test_ppc (fenv_t *envp, int ex) +{ + fenv_union_t old, new; + + new.fenv = *envp; + old.fenv = fegetenv_register (); + + /* Restore rounding mode and exception enable from *envp and merge + exceptions. Leave fraction rounded/inexact and FP result/CC bits + unchanged. */ + new.l = (old.l & _FPU_MASK_EXCEPT_ROUND) + | (new.l & _FPU_MASK_FRAC_INEX_RET_CC); + + if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0) + (void) __fe_nomask_env_priv (); + + if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0) + (void) __fe_mask_env (); + + fesetenv_register (new.fenv); + + return old.l & ex; +} + +static __always_inline void +libc_feupdateenv_ppc (fenv_t *e) +{ + libc_feupdateenv_test_ppc (e, 0); +} + +static __always_inline void +libc_feholdsetround_ppc (fenv_t *e, int r) +{ + fenv_union_t old, new; + + old.fenv = fegetenv_register (); + /* Clear current precision and set newer one. */ + new.l = (old.l & ~0x3) | r; + *e = old.fenv; + + if ((old.l & _FPU_MASK_ALL) != 0) + (void) __fe_mask_env (); + fesetenv_register (new.fenv); +} + +static __always_inline void +libc_feresetround_ppc (fenv_t *envp) +{ + fenv_union_t old, new; + + new.fenv = *envp; + old.fenv = fegetenv_register (); + + /* Restore rounding mode and exception enable from *envp and merge + exceptions. Leave fraction rounded/inexact and FP result/CC bits + unchanged. */ + new.l = (old.l & _FPU_MASK_EXCEPT_ROUND) + | (new.l & _FPU_MASK_FRAC_INEX_RET_CC); + + if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0) + (void) __fe_nomask_env_priv (); + + if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0) + (void) __fe_mask_env (); + + /* Atomically enable and raise (if appropriate) exceptions set in `new'. */ + fesetenv_register (new.fenv); +} + +#define libc_feholdexceptf libc_feholdexcept_ppc +#define libc_feholdexcept libc_feholdexcept_ppc +#define libc_feholdexcept_setroundf libc_feholdexcept_setround_ppc +#define libc_feholdexcept_setround libc_feholdexcept_setround_ppc +#define libc_fetestexceptf libc_fetestexcept_ppc +#define libc_fetestexcept libc_fetestexcept_ppc +#define libc_fesetroundf libc_fesetround_ppc +#define libc_fesetround libc_fesetround_ppc +#define libc_fesetenvf libc_fesetenv_ppc +#define libc_fesetenv libc_fesetenv_ppc +#define libc_feupdateenv_testf libc_feupdateenv_test_ppc +#define libc_feupdateenv_test libc_feupdateenv_test_ppc +#define libc_feupdateenvf libc_feupdateenv_ppc +#define libc_feupdateenv libc_feupdateenv_ppc +#define libc_feholdsetroundf libc_feholdsetround_ppc +#define libc_feholdsetround libc_feholdsetround_ppc +#define libc_feresetroundf libc_feresetround_ppc +#define libc_feresetround libc_feresetround_ppc + + +/* We have support for rounding mode context. */ +#define HAVE_RM_CTX 1 + +static __always_inline void +libc_feholdexcept_setround_ppc_ctx (struct rm_ctx *ctx, int r) +{ + fenv_union_t old, new; + + old.fenv = fegetenv_register (); + + new.l = (old.l & _FPU_MASK_ROUNDING) | r; + ctx->env = old.fenv; + if (__glibc_unlikely (new.l != old.l)) + { + if ((old.l & _FPU_MASK_ALL) != 0) + (void) __fe_mask_env (); + fesetenv_register (new.fenv); + ctx->updated_status = true; + } + else + ctx->updated_status = false; +} + +static __always_inline void +libc_fesetenv_ppc_ctx (struct rm_ctx *ctx) +{ + libc_fesetenv_ppc (&ctx->env); +} + +static __always_inline void +libc_feupdateenv_ppc_ctx (struct rm_ctx *ctx) +{ + if (__glibc_unlikely (ctx->updated_status)) + libc_feupdateenv_test_ppc (&ctx->env, 0); +} + +static __always_inline void +libc_feholdsetround_ppc_ctx (struct rm_ctx *ctx, int r) +{ + fenv_union_t old, new; + + old.fenv = fegetenv_register (); + new.l = (old.l & ~0x3) | r; + ctx->env = old.fenv; + if (__glibc_unlikely (new.l != old.l)) + { + if ((old.l & _FPU_MASK_ALL) != 0) + (void) __fe_mask_env (); + fesetenv_register (new.fenv); + ctx->updated_status = true; + } + else + ctx->updated_status = false; +} + +static __always_inline void +libc_feresetround_ppc_ctx (struct rm_ctx *ctx) +{ + if (__glibc_unlikely (ctx->updated_status)) + libc_feresetround_ppc (&ctx->env); +} + +#define libc_feholdexcept_setroundf_ctx libc_feholdexcept_setround_ppc_ctx +#define libc_feholdexcept_setround_ctx libc_feholdexcept_setround_ppc_ctx +#define libc_fesetenv_ctx libc_fesetenv_ppc_ctx +#define libc_fesetenvf_ctx libc_fesetenv_ppc_ctx +#define libc_feholdsetround_ctx libc_feholdsetround_ppc_ctx +#define libc_feholdsetroundf_ctx libc_feholdsetround_ppc_ctx +#define libc_feresetround_ctx libc_feresetround_ppc_ctx +#define libc_feresetroundf_ctx libc_feresetround_ppc_ctx +#define libc_feupdateenvf_ctx libc_feupdateenv_ppc_ctx +#define libc_feupdateenv_ctx libc_feupdateenv_ppc_ctx + +#endif diff --git a/sysdeps/powerpc/fpu/fesetenv.c b/sysdeps/powerpc/fpu/fesetenv.c index e92adb4c58..5de6ff5f71 100644 --- a/sysdeps/powerpc/fpu/fesetenv.c +++ b/sysdeps/powerpc/fpu/fesetenv.c @@ -34,14 +34,14 @@ __fesetenv (const fenv_t *envp) exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put the hardware into "precise mode" and may cause the FPU to run slower on some hardware. */ - if ((old.l[1] & _FPU_MASK_ALL) == 0 && (new.l[1] & _FPU_MASK_ALL) != 0) - (void)__fe_nomask_env (); + if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0) + (void) __fe_nomask_env_priv (); /* If the old env had any enabled exceptions and the new env has no enabled exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the FPU to run faster because it always takes the default action and can not generate SIGFPE. */ - if ((old.l[1] & _FPU_MASK_ALL) != 0 && (new.l[1] & _FPU_MASK_ALL) == 0) + if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0) (void)__fe_mask_env (); fesetenv_register (*envp); diff --git a/sysdeps/powerpc/fpu/feupdateenv.c b/sysdeps/powerpc/fpu/feupdateenv.c index 6500ea1737..262e2135a6 100644 --- a/sysdeps/powerpc/fpu/feupdateenv.c +++ b/sysdeps/powerpc/fpu/feupdateenv.c @@ -34,20 +34,20 @@ __feupdateenv (const fenv_t *envp) /* Restore rounding mode and exception enable from *envp and merge exceptions. Leave fraction rounded/inexact and FP result/CC bits unchanged. */ - new.l[1] = (old.l[1] & 0x1FFFFF00) | (new.l[1] & 0x1FF80FFF); + new.l = (old.l & 0xffffffff1fffff00LL) | (new.l & 0x1ff80fff); /* If the old env has no enabled exceptions and the new env has any enabled exceptions, then unmask SIGFPE in the MSR FE0/FE1 bits. This will put the hardware into "precise mode" and may cause the FPU to run slower on some hardware. */ - if ((old.l[1] & _FPU_MASK_ALL) == 0 && (new.l[1] & _FPU_MASK_ALL) != 0) - (void)__fe_nomask_env (); + if ((old.l & _FPU_MASK_ALL) == 0 && (new.l & _FPU_MASK_ALL) != 0) + (void) __fe_nomask_env_priv (); /* If the old env had any enabled exceptions and the new env has no enabled exceptions, then mask SIGFPE in the MSR FE0/FE1 bits. This may allow the FPU to run faster because it always takes the default action and can not generate SIGFPE. */ - if ((old.l[1] & _FPU_MASK_ALL) != 0 && (new.l[1] & _FPU_MASK_ALL) == 0) + if ((old.l & _FPU_MASK_ALL) != 0 && (new.l & _FPU_MASK_ALL) == 0) (void)__fe_mask_env (); /* Atomically enable and raise (if appropriate) exceptions set in `new'. */ diff --git a/sysdeps/powerpc/fpu/fgetexcptflg.c b/sysdeps/powerpc/fpu/fgetexcptflg.c index f6327ce170..1395bede0c 100644 --- a/sysdeps/powerpc/fpu/fgetexcptflg.c +++ b/sysdeps/powerpc/fpu/fgetexcptflg.c @@ -27,7 +27,7 @@ __fegetexceptflag (fexcept_t *flagp, int excepts) u.fenv = fegetenv_register (); /* Return (all of) it. */ - *flagp = u.l[1] & excepts & FE_ALL_EXCEPT; + *flagp = u.l & excepts & FE_ALL_EXCEPT; /* Success. */ return 0; diff --git a/sysdeps/powerpc/fpu/fraiseexcpt.c b/sysdeps/powerpc/fpu/fraiseexcpt.c index 9118c1954a..6193071bd4 100644 --- a/sysdeps/powerpc/fpu/fraiseexcpt.c +++ b/sysdeps/powerpc/fpu/fraiseexcpt.c @@ -33,11 +33,11 @@ __feraiseexcept (int excepts) u.fenv = fegetenv_register (); /* Add the exceptions */ - u.l[1] = (u.l[1] - | (excepts & FPSCR_STICKY_BITS) - /* Turn FE_INVALID into FE_INVALID_SOFTWARE. */ - | (excepts >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)) - & FE_INVALID_SOFTWARE)); + u.l = (u.l + | (excepts & FPSCR_STICKY_BITS) + /* Turn FE_INVALID into FE_INVALID_SOFTWARE. */ + | (excepts >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)) + & FE_INVALID_SOFTWARE)); /* Store the new status word (along with the rest of the environment), triggering any appropriate exceptions. */ @@ -49,7 +49,7 @@ __feraiseexcept (int excepts) don't have FE_INVALID_SOFTWARE implemented. Detect this case and raise FE_INVALID_SNAN instead. */ u.fenv = fegetenv_register (); - if ((u.l[1] & FE_INVALID) == 0) + if ((u.l & FE_INVALID) == 0) set_fpscr_bit (FPSCR_VXSNAN); } diff --git a/sysdeps/powerpc/fpu/fsetexcptflg.c b/sysdeps/powerpc/fpu/fsetexcptflg.c index c050d4022b..0d309c8d5f 100644 --- a/sysdeps/powerpc/fpu/fsetexcptflg.c +++ b/sysdeps/powerpc/fpu/fsetexcptflg.c @@ -31,10 +31,10 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts) flag = *flagp & excepts; /* Replace the exception status */ - u.l[1] = ((u.l[1] & ~(FPSCR_STICKY_BITS & excepts)) - | (flag & FPSCR_STICKY_BITS) - | (flag >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)) - & FE_INVALID_SOFTWARE)); + u.l = ((u.l & ~(FPSCR_STICKY_BITS & excepts)) + | (flag & FPSCR_STICKY_BITS) + | (flag >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)) + & FE_INVALID_SOFTWARE)); /* Store the new status word (along with the rest of the environment). This may cause floating-point exceptions if the restored state diff --git a/sysdeps/powerpc/fpu/ftestexcept.c b/sysdeps/powerpc/fpu/ftestexcept.c index 0dbc3befb8..86eea0fb08 100644 --- a/sysdeps/powerpc/fpu/ftestexcept.c +++ b/sysdeps/powerpc/fpu/ftestexcept.c @@ -28,6 +28,6 @@ fetestexcept (int excepts) /* The FE_INVALID bit is dealt with correctly by the hardware, so we can just: */ - return u.l[1] & excepts; + return u.l & excepts; } libm_hidden_def (fetestexcept) diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 6fdace9ee4..4450083a6b 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -7,6 +7,30 @@ ldouble: 1 Test "acos (-0x0.ffffffp0)": ildouble: 1 ldouble: 1 +Test "acos (-0xf.fffffff8p-4)": +ildouble: 1 +ldouble: 1 +Test "acos (-0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 +Test "acos (0x1.70ef54646d496892137dfd73f58p-56)": +ildouble: 1 +ldouble: 1 +Test "acos (0x1.70ef54646d496892137dfd73f6p-56)": +ildouble: 1 +ldouble: 1 +Test "acos (0x1.70ef54646d496892p-56)": +ildouble: 1 +ldouble: 1 +Test "acos (0x1.70ef54646d496894p-56)": +ildouble: 1 +ldouble: 1 +Test "acos (0x1.70ef54646d496p-56)": +ildouble: 1 +ldouble: 1 +Test "acos (0x1.70ef54646d497p-56)": +ildouble: 1 +ldouble: 1 Test "acos (2e-17)": ildouble: 1 ldouble: 1 @@ -20,6 +44,15 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "acos_downward (-0x8p-4)": +float: 1 +ifloat: 1 +Test "acos_downward (-0xf.fffffffffffffffp-4)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (-0xf.fffffffffffp-4)": +ildouble: 2 +ldouble: 2 Test "acos_downward (-1)": float: 1 ifloat: 1 @@ -33,6 +66,62 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "acos_downward (0x1.70ef54646d496892137dfd73f58p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (0x1.70ef54646d496892137dfd73f6p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (0x1.70ef54646d496892p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (0x1.70ef54646d496894p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (0x1.70ef54646d496p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (0x1.70ef54646d497p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_downward (0x1.70ef54p-56)": +ildouble: 3 +ldouble: 3 +Test "acos_downward (0x1.70ef56p-56)": +ildouble: 3 +ldouble: 3 +Test "acos_downward (0x1p-4)": +ildouble: 1 +ldouble: 1 +Test "acos_downward (0xcp-4)": +ildouble: 1 +ldouble: 1 + +# acos_tonearest +Test "acos_tonearest (-0xf.fffffff8p-4)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (-0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (0x1.70ef54646d496892137dfd73f58p-56)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (0x1.70ef54646d496892137dfd73f6p-56)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (0x1.70ef54646d496892p-56)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (0x1.70ef54646d496894p-56)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (0x1.70ef54646d496p-56)": +ildouble: 1 +ldouble: 1 +Test "acos_tonearest (0x1.70ef54646d497p-56)": +ildouble: 1 +ldouble: 1 # acos_towardzero Test "acos_towardzero (-0)": @@ -43,6 +132,15 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "acos_towardzero (-0x8p-4)": +float: 1 +ifloat: 1 +Test "acos_towardzero (-0xf.fffffffffffffffp-4)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (-0xf.fffffffffffp-4)": +ildouble: 2 +ldouble: 2 Test "acos_towardzero (-1)": float: 1 ifloat: 1 @@ -56,17 +154,77 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "acos_towardzero (0x1.70ef54646d496892137dfd73f58p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (0x1.70ef54646d496892137dfd73f6p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (0x1.70ef54646d496892p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (0x1.70ef54646d496894p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (0x1.70ef54646d496p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (0x1.70ef54646d497p-56)": +ildouble: 2 +ldouble: 2 +Test "acos_towardzero (0x1.70ef54p-56)": +ildouble: 3 +ldouble: 3 +Test "acos_towardzero (0x1.70ef56p-56)": +ildouble: 3 +ldouble: 3 +Test "acos_towardzero (0x1p-4)": +ildouble: 1 +ldouble: 1 +Test "acos_towardzero (0xcp-4)": +ildouble: 1 +ldouble: 1 # acos_upward +Test "acos_upward (+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "acos_upward (-0)": +double: 1 +idouble: 1 ildouble: 2 ldouble: 2 +Test "acos_upward (-0x1p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "acos_upward (-1)": ildouble: 2 ldouble: 2 Test "acos_upward (0)": ildouble: 2 ldouble: 2 +Test "acos_upward (0x1.70ef54646d496p-56)": +double: 1 +idouble: 1 +Test "acos_upward (0x1.70ef54646d497p-56)": +double: 1 +idouble: 1 +Test "acos_upward (0x1.70ef54p-56)": +double: 1 +idouble: 1 +Test "acos_upward (0x1.70ef56p-56)": +double: 1 +idouble: 1 +Test "acos_upward (0x1p-4)": +ildouble: 1 +ldouble: 1 +Test "acos_upward (0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 # asin Test "asin (-0x0.ffffffff8p0)": @@ -75,6 +233,12 @@ ldouble: 1 Test "asin (-0x0.ffffffp0)": ildouble: 1 ldouble: 1 +Test "asin (-0xf.fffffff8p-4)": +ildouble: 1 +ldouble: 1 +Test "asin (-0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 Test "asin (0.75)": ildouble: 2 ldouble: 2 @@ -84,6 +248,15 @@ ldouble: 1 Test "asin (0x0.ffffffp0)": ildouble: 1 ldouble: 1 +Test "asin (0xcp-4)": +ildouble: 2 +ldouble: 2 +Test "asin (0xf.fffffff8p-4)": +ildouble: 1 +ldouble: 1 +Test "asin (0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 # asin_downward Test "asin_downward (-0.5)": @@ -91,6 +264,39 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "asin_downward (-0x1p+0)": +double: 1 +idouble: 1 +Test "asin_downward (-0x8p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_downward (-0xf.fffffff8p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_downward (-0xf.ffffffffffff8p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "asin_downward (-0xf.fffffffffffffffp-4)": +ildouble: 2 +ldouble: 2 +Test "asin_downward (-0xf.fffffffffffp-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "asin_downward (-0xf.fffffp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 Test "asin_downward (-1.0)": ildouble: 1 ldouble: 1 @@ -99,16 +305,60 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "asin_downward (0x8p-4)": +float: 1 +ifloat: 1 +Test "asin_downward (0xcp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_downward (0xf.fffffffffffffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_downward (0xf.fffffffffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_downward (0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 Test "asin_downward (1.0)": float: 1 ifloat: 1 +# asin_tonearest +Test "asin_tonearest (-0xf.fffffff8p-4)": +ildouble: 1 +ldouble: 1 +Test "asin_tonearest (-0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_tonearest (0xcp-4)": +ildouble: 2 +ldouble: 2 +Test "asin_tonearest (0xf.fffffff8p-4)": +ildouble: 1 +ldouble: 1 +Test "asin_tonearest (0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 + # asin_towardzero Test "asin_towardzero (-0.5)": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "asin_towardzero (-0x8p-4)": +float: 1 +ifloat: 1 +Test "asin_towardzero (-0xf.fffffffffffffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0xf.fffffffffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 Test "asin_towardzero (-1.0)": float: 1 ifloat: 1 @@ -117,14 +367,61 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "asin_towardzero (0x8p-4)": +float: 1 +ifloat: 1 +Test "asin_towardzero (0xcp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (0xf.fffffffffffffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (0xf.fffffffffffp-4)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (0xf.fffffp-4)": +ildouble: 1 +ldouble: 1 Test "asin_towardzero (1.0)": float: 1 ifloat: 1 # asin_upward +Test "asin_upward (-0x8p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0xf.fffffff8p-4)": +double: 1 +idouble: 1 +Test "asin_upward (-0xf.ffffffffffff8p-4)": +double: 1 +idouble: 1 +Test "asin_upward (-0xf.fffffffffffp-4)": +double: 1 +idouble: 1 +Test "asin_upward (-0xf.fffffp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "asin_upward (-1.0)": float: 1 ifloat: 1 +Test "asin_upward (0x1p+0)": +double: 1 +idouble: 1 +Test "asin_upward (0xf.fffffffffffffffp-4)": +ildouble: 2 +ldouble: 2 +Test "asin_upward (0xf.fffffffffffp-4)": +ildouble: 1 +ldouble: 1 Test "asin_upward (1.0)": ildouble: 1 ldouble: 1 @@ -136,6 +433,203 @@ ldouble: 1 Test "atan2 (-0.75, -1.0)": float: 1 ifloat: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1d8p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1de0e51244p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1de0e51246648p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1de0e5124664p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1de0e51248p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac28p-8, -0x7.57d1ep-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1d8p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1de0e51244p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1de0e51246648p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1de0e5124664p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1de0e51248p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffc0f3eeb1ac3p-8, -0x7.57d1ep-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1d8p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1de0e51244p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1de0e51246648p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1de0e5124664p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1de0e51248p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffcp-8, -0x7.57d1ep-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1d8p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e51244p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e51246648p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e5124664p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e51248p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1ep-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1d8p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1de0e51244p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1de0e51246648p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1de0e5124664p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1de0e51248p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852716p-8, -0x7.57d1ep-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1d8p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1de0e51244p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1de0e51246648p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1de0e5124664p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1de0e51248p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe81f852717p-8, -0x7.57d1ep-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1d8p-12)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1de0e51244p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1de0e5124664p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1de0e51248p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe82p-8, -0x7.57d1ep-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1d8p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1de0e51244p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1de0e51246640cc2340ca48p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1de0e51246640cc2340ca4ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1de0e51246648p-12)": +ildouble: 2 +ldouble: 2 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1de0e5124664p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1de0e51248p-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0x1.effe8p-8, -0x7.57d1ep-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (-0xcp-4, -0x1p+0)": +float: 1 +ifloat: 1 +Test "atan2 (-0xf.fffffp+124, -0x4p-128)": +float: 1 +ifloat: 1 Test "atan2 (-inf, -inf)": ildouble: 1 ldouble: 1 @@ -145,6 +639,23 @@ ifloat: 1 Test "atan2 (0.75, -1.0)": float: 1 ifloat: 1 +Test "atan2 (0x1.64p+0, 0xe.ep-4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "atan2 (0x6.4p-4, 0x1.30164840e1719f7ep-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (0x6.4p-4, 0x1.30164ap-12)": +ildouble: 1 +ldouble: 1 +Test "atan2 (0xcp-4, -0x1p+0)": +float: 1 +ifloat: 1 +Test "atan2 (0xf.ffffffffffff8p+1020, 0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 Test "atan2 (1.390625, 0.9296875)": float: 1 ifloat: 1 @@ -158,6 +669,9 @@ ldouble: 1 Test "atanh (0.75)": float: 1 ifloat: 1 +Test "atanh (0xcp-4)": +float: 1 +ifloat: 1 # cabs Test "cabs (-0.75 + 12.390625 i)": @@ -4503,12 +5017,21 @@ float: 1 ifloat: 1 # cbrt +Test "cbrt (-0x1.bp+4)": +double: 1 +idouble: 1 +Test "cbrt (-0x4.18937p-12)": +float: 1 +ifloat: 1 Test "cbrt (-27.0)": double: 1 idouble: 1 Test "cbrt (0.9921875)": double: 1 idouble: 1 +Test "cbrt (0xf.ep-4)": +double: 1 +idouble: 1 # ccos Test "Imaginary part of: ccos (-0.75 + 710.5 i)": @@ -5188,6 +5711,24 @@ ifloat: 1 Test "cos (0x1p+127)": float: 1 ifloat: 1 +Test "cos (0x2.182a4705ae6cb08cb7665c1eacp+0)": +ildouble: 2 +ldouble: 2 +Test "cos (0x2.182a4705ae6cb08cb7665c1eadp+0)": +ildouble: 2 +ldouble: 2 +Test "cos (0x2.182a4705ae6cb08cp+0)": +ildouble: 2 +ldouble: 2 +Test "cos (0x2.182a4705ae6cb09p+0)": +ildouble: 2 +ldouble: 2 +Test "cos (0x7p+0)": +float: 1 +ifloat: 1 +Test "cos (0x8p+124)": +float: 1 +ifloat: 1 Test "cos (16.0)": ildouble: 2 ldouble: 2 @@ -5210,6 +5751,200 @@ idouble: 1 ifloat: 1 # cos_downward +Test "cos_downward (0x1.000000cf4a2a2p+0)": +double: 1 +idouble: 1 +Test "cos_downward (0x1.0000010b239a9p+0)": +double: 1 +idouble: 1 +Test "cos_downward (0x1.00000162a932bp+0)": +double: 1 +idouble: 1 +Test "cos_downward (0x1.000002d452a1p+0)": +double: 1 +idouble: 1 +Test "cos_downward (0x1.000002p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_downward (0x1.000004p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x1.000006p+0)": +float: 1 +ifloat: 1 +Test "cos_downward (0x1.0c1522p+0)": +float: 1 +ifloat: 1 +Test "cos_downward (0x1.0c152382d7365p+0)": +double: 1 +idouble: 1 +Test "cos_downward (0x1.0c1524p+0)": +float: 1 +ifloat: 1 +Test "cos_downward (0x1.921fb4p+0)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "cos_downward (0x1.921fb54442d18468p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x1.921fb54442d18469898cc517018p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x1.921fb54442d18469898cc51702p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x1.921fb54442d1846ap+0)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x1.921fb54442d18p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x1.921fb54442d19p+0)": +ildouble: 2 +ldouble: 2 +Test "cos_downward (0x1.921fb6p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 +Test "cos_downward (0x1p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_downward (0x1p+120)": +float: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 +Test "cos_downward (0x1p+28)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x2.182a44p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_downward (0x2.182a4705ae6cap+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x2.182a4705ae6cb08cb7665c1eacp+0)": +ildouble: 3 +ldouble: 3 +Test "cos_downward (0x2.182a4705ae6cb08cb7665c1eadp+0)": +ildouble: 3 +ldouble: 3 +Test "cos_downward (0x2.182a4705ae6cb08cp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_downward (0x2.182a4705ae6cb09p+0)": +ildouble: 3 +ldouble: 3 +Test "cos_downward (0x2.182a4705ae6ccp+0)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x2.182a48p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x2.1e19e0c9bab24p+72)": +double: 1 +idouble: 1 +Test "cos_downward (0x2.1e19e4p+72)": +double: 1 +idouble: 1 +Test "cos_downward (0x2.1e19ep+72)": +double: 1 +idouble: 1 +Test "cos_downward (0x2p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x3p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_downward (0x4p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p+48)": +double: 1 +idouble: 1 +Test "cos_downward (0x8p+0)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "cos_downward (0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x9p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0xa.217bap+12)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0xap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "cos_downward (0xc.d4966d92d1708p-4)": +double: 1 +idouble: 1 +Test "cos_downward (0xc.d4966d92d171p-4)": +double: 1 +idouble: 1 +Test "cos_downward (0xc.d4966p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_downward (0xc.d4967p-4)": +float: 1 +ifloat: 1 +Test "cos_downward (0xcp-4)": +double: 1 +idouble: 1 +Test "cos_downward (0xf.ffffcp+124)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0xf.fffffp+124)": +double: 1 +idouble: 1 Test "cos_downward (1)": float: 1 ifloat: 1 @@ -5246,11 +5981,148 @@ ildouble: 1 ldouble: 1 # cos_tonearest +Test "cos_tonearest (0x1p+120)": +float: 1 +ifloat: 1 +Test "cos_tonearest (0x2.182a4705ae6cb08cb7665c1eacp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_tonearest (0x2.182a4705ae6cb08cb7665c1eadp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_tonearest (0x2.182a4705ae6cb08cp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_tonearest (0x2.182a4705ae6cb09p+0)": +ildouble: 2 +ldouble: 2 +Test "cos_tonearest (0x7p+0)": +float: 1 +ifloat: 1 +Test "cos_tonearest (0x8p+124)": +float: 1 +ifloat: 1 Test "cos_tonearest (7)": float: 1 ifloat: 1 # cos_towardzero +Test "cos_towardzero (0x1.000000cf4a2a2p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1.0000010b239a9p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1.00000162a932bp+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1.000002d452a1p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1.000002p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1.000004p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x1.0c152382d7365p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1.921fb4p+0)": +ildouble: 3 +ldouble: 3 +Test "cos_towardzero (0x1.921fb54442d18p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "cos_towardzero (0x1.921fb54442d19p+0)": +double: 1 +idouble: 1 +ildouble: 3 +ldouble: 3 +Test "cos_towardzero (0x1.921fb6p+0)": +ildouble: 2 +ldouble: 2 +Test "cos_towardzero (0x1p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x1p+120)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_towardzero (0x2.182a4705ae6cb08cb7665c1eacp+0)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x2.182a4705ae6cb08cb7665c1eadp+0)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x2.182a4705ae6cb08cp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_towardzero (0x2.182a4705ae6cb09p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x2.182a4705ae6ccp+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x2.182a48p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x2.1e19e0c9bab24p+72)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x2.1e19e4p+72)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x2.1e19ep+72)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x2p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x4p+0)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x4p+48)": +double: 1 +idouble: 1 +Test "cos_towardzero (0x5p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x8p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x8p+1020)": +double: 1 +idouble: 1 +Test "cos_towardzero (0xa.217bap+12)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0xap+0)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0xc.d4966d92d1708p-4)": +double: 1 +idouble: 1 +Test "cos_towardzero (0xc.d4966d92d171p-4)": +double: 1 +idouble: 1 +Test "cos_towardzero (0xc.d4966p-4)": +double: 1 +idouble: 1 +Test "cos_towardzero (0xcp-4)": +double: 1 +idouble: 1 +Test "cos_towardzero (0xf.ffffcp+124)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0xf.fffffp+124)": +double: 1 +idouble: 1 Test "cos_towardzero (1)": ildouble: 1 ldouble: 1 @@ -5279,6 +6151,195 @@ ildouble: 2 ldouble: 2 # cos_upward +Test "cos_upward (-0x2p+64)": +double: 1 +idouble: 1 +Test "cos_upward (0x1.000002p+0)": +float: 1 +ifloat: 1 +Test "cos_upward (0x1.000004p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x1.000005bc7d86dp+0)": +double: 1 +idouble: 1 +Test "cos_upward (0x1.000006p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x1.0c1522p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x1.0c152382d7366p+0)": +double: 1 +idouble: 1 +Test "cos_upward (0x1.0c1524p+0)": +double: 1 +idouble: 1 +Test "cos_upward (0x1.921fb4p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 4 +ldouble: 4 +Test "cos_upward (0x1.921fb54442d18468p+0)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x1.921fb54442d1846ap+0)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x1.921fb54442d18p+0)": +ildouble: 3 +ldouble: 3 +Test "cos_upward (0x1.921fb54442d19p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x1.921fb6p+0)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "cos_upward (0x1p+0)": +float: 1 +ifloat: 1 +Test "cos_upward (0x1p+120)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x1p+28)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x2.182a44p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x2.182a4705ae6cap+0)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x2.182a4705ae6cb08cb7665c1eacp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_upward (0x2.182a4705ae6cb08cb7665c1eadp+0)": +ildouble: 2 +ldouble: 2 +Test "cos_upward (0x2.182a4705ae6cb08cp+0)": +ildouble: 3 +ldouble: 3 +Test "cos_upward (0x2.182a4705ae6cb09p+0)": +ildouble: 2 +ldouble: 2 +Test "cos_upward (0x2.182a4705ae6ccp+0)": +double: 1 +idouble: 1 +Test "cos_upward (0x2.182a48p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x2.1e19e4p+72)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x2p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x2p+64)": +double: 1 +idouble: 1 +Test "cos_upward (0x3p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x4p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x5p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x6p+0)": +double: 1 +idouble: 1 +Test "cos_upward (0x7p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0x8p+124)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0x9p+0)": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0xa.217bap+12)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "cos_upward (0xap+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0xc.d4966d92d171p-4)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (0xc.d4966p-4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "cos_upward (0xc.d4967p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "cos_upward (0xf.ffffcp+124)": +double: 1 +idouble: 1 +Test "cos_upward (0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 Test "cos_upward (1)": ildouble: 2 ldouble: 2 @@ -5305,7 +6366,53 @@ Test "cos_upward (9)": float: 2 ifloat: 2 +# cosh +Test "cosh (-0x2.c5e3acp+8)": +double: 1 +idouble: 1 +Test "cosh (0x1.8p+4)": +ildouble: 1 +ldouble: 1 +Test "cosh (0x2.c5e3acp+8)": +double: 1 +idouble: 1 + # cosh_downward +Test "cosh_downward (-0x2.c5e3acd2922a6p+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_downward (-0x2.c5e3acp+8)": +ildouble: 2 +ldouble: 2 +Test "cosh_downward (-0x2.c5e3bp+8)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "cosh_downward (0x1.6p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_downward (0x1.7p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_downward (0x2.c5e3acd2922a6p+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_downward (0x2.c5e3acp+8)": +ildouble: 2 +ldouble: 2 +Test "cosh_downward (0x2.c5e3bp+8)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "cosh_downward (0xcp-4)": +ildouble: 2 +ldouble: 2 Test "cosh_downward (22)": float: 1 ifloat: 1 @@ -5323,11 +6430,55 @@ ildouble: 1 ldouble: 1 # cosh_tonearest +Test "cosh_tonearest (-0x2.c5e3acp+8)": +double: 1 +idouble: 1 +Test "cosh_tonearest (0x1.8p+4)": +ildouble: 1 +ldouble: 1 +Test "cosh_tonearest (0x2.c5e3acp+8)": +double: 1 +idouble: 1 Test "cosh_tonearest (24)": ildouble: 1 ldouble: 1 # cosh_towardzero +Test "cosh_towardzero (-0x2.c5e3acd2922a6p+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (-0x2.c5e3acp+8)": +ildouble: 2 +ldouble: 2 +Test "cosh_towardzero (-0x2.c5e3bp+8)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "cosh_towardzero (0x1.6p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (0x1.7p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (0x2.c5e3acd2922a6p+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (0x2.c5e3acp+8)": +ildouble: 2 +ldouble: 2 +Test "cosh_towardzero (0x2.c5e3bp+8)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "cosh_towardzero (0xcp-4)": +ildouble: 2 +ldouble: 2 Test "cosh_towardzero (22)": float: 1 ifloat: 1 @@ -5345,6 +6496,39 @@ ildouble: 1 ldouble: 1 # cosh_upward +Test "cosh_upward (-0x2.c5e3acd2922a6p+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_upward (-0x2.c5e3acp+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_upward (-0x2.c5e3bp+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cosh_upward (0x1.6p+4)": +ildouble: 1 +ldouble: 1 +Test "cosh_upward (0x1.7p+4)": +ildouble: 1 +ldouble: 1 +Test "cosh_upward (0x1.8p+4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "cosh_upward (0x2.c5e3acd2922a6p+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_upward (0x2.c5e3acp+8)": +ildouble: 1 +ldouble: 1 +Test "cosh_upward (0x2.c5e3bp+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "cosh_upward (22)": ildouble: 2 ldouble: 2 @@ -5705,6 +6889,11 @@ float: 1 ifloat: 1 ildouble: 2 ldouble: 2 +Test "Imaginary part of: ctanh (0 + M_PI_4l i)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "Imaginary part of: ctanh (0 + pi/4 i)": double: 1 float: 1 @@ -5815,11 +7004,17 @@ ildouble: 5 ldouble: 5 # erf +Test "erf (0x1.4p+0)": +double: 1 +idouble: 1 Test "erf (1.25)": double: 1 idouble: 1 # erfc +Test "erfc (-0x8p-4)": +float: 1 +ifloat: 1 Test "erfc (0.75)": float: 1 ifloat: 1 @@ -5832,6 +7027,33 @@ ifloat: 1 Test "erfc (0x1.ffff56789abcdef0123456789a8p+2)": ildouble: 1 ldouble: 1 +Test "erfc (0x2p+0)": +double: 1 +idouble: 1 +Test "erfc (0x3.ee6078p+0)": +double: 1 +idouble: 1 +Test "erfc (0x4.2p+0)": +double: 1 +idouble: 1 +Test "erfc (0x7.fe8008p+0)": +float: 1 +ifloat: 1 +Test "erfc (0x7.fffd59e26af37bc048d159e26ap+0)": +ildouble: 1 +ldouble: 1 +Test "erfc (0x7.fffd59e26af37bc8p+0)": +ildouble: 2 +ldouble: 2 +Test "erfc (0x7.fffd59e26af37bcp+0)": +ildouble: 2 +ldouble: 2 +Test "erfc (0x7.fffd6p+0)": +float: 1 +ifloat: 1 +Test "erfc (0xcp-4)": +float: 1 +ifloat: 1 Test "erfc (2.0)": double: 1 idouble: 1 @@ -5843,11 +7065,28 @@ idouble: 1 Test "exp (0.75)": ildouble: 1 ldouble: 1 +Test "exp (0x3.2p+4)": +ildouble: 1 +ldouble: 1 +Test "exp (0xcp-4)": +ildouble: 1 +ldouble: 1 Test "exp (50.0)": ildouble: 1 ldouble: 1 # exp10 +Test "exp10 (-0x1.31p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp10 (-0x1p+0)": +double: 1 +idouble: 1 +Test "exp10 (-0x2.4p+4)": +double: 1 +idouble: 1 Test "exp10 (-1)": double: 2 float: 1 @@ -5870,6 +7109,12 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "exp10 (0x2.4p+4)": +double: 1 +idouble: 1 +Test "exp10 (0x3p+0)": +double: 1 +idouble: 1 Test "exp10 (3)": double: 1 float: 1 @@ -5887,6 +7132,21 @@ ildouble: 2 ldouble: 2 # exp_downward +Test "exp_downward (0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "exp_downward (0x2p+0)": +double: 1 +idouble: 1 +Test "exp_downward (0x3p+0)": +double: 1 +idouble: 1 +Test "exp_downward (0x5.8b9028p+4)": +double: 1 +idouble: 1 +Test "exp_downward (0xcp-4)": +double: 1 +idouble: 1 Test "exp_downward (2)": float: 1 ifloat: 1 @@ -5896,7 +7156,30 @@ ifloat: 1 ildouble: 1 ldouble: 1 +# exp_tonearest +Test "exp_tonearest (0x3.2p+4)": +ildouble: 1 +ldouble: 1 +Test "exp_tonearest (0xcp-4)": +ildouble: 1 +ldouble: 1 + # exp_towardzero +Test "exp_towardzero (0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "exp_towardzero (0x2p+0)": +double: 1 +idouble: 1 +Test "exp_towardzero (0x3p+0)": +double: 1 +idouble: 1 +Test "exp_towardzero (0x5.8b9028p+4)": +double: 1 +idouble: 1 +Test "exp_towardzero (0xcp-4)": +double: 1 +idouble: 1 Test "exp_towardzero (2)": float: 1 ifloat: 1 @@ -5907,6 +7190,65 @@ ildouble: 1 ldouble: 1 # exp_upward +Test "exp_upward (-0x2.e870a4p+8)": +double: 1 +idouble: 1 +Test "exp_upward (-0x2.e870a7e5e88c2p+8)": +double: 1 +idouble: 1 +Test "exp_upward (-0x2.e870a7e5e88cp+8)": +double: 1 +idouble: 1 +Test "exp_upward (-0x2.e870a8p+8)": +double: 1 +idouble: 1 +Test "exp_upward (-0x2.ebe224p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (-0x2.ebe227861639p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (-0x2.ebe228p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (-0x4.d2p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (-0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (-0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "exp_upward (-0xf.fffffp+124)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (0x1p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "exp_upward (0x2.c5cp+8)": +double: 1 +idouble: 1 +Test "exp_upward (0x2p+0)": +ildouble: 1 +ldouble: 1 +Test "exp_upward (0x3.2p+4)": +double: 1 +idouble: 1 Test "exp_upward (1)": float: 1 ifloat: 1 @@ -5917,6 +7259,17 @@ ldouble: 1 Test "expm1 (0.75)": double: 1 idouble: 1 +Test "expm1 (0x1.f4p+8)": +double: 1 +idouble: 1 +Test "expm1 (0x1p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1 (0xcp-4)": +double: 1 +idouble: 1 Test "expm1 (1)": double: 1 float: 1 @@ -5926,12 +7279,206 @@ Test "expm1 (500.0)": double: 1 idouble: 1 +# expm1_downward +Test "expm1_downward (-0x1p-32)": +ildouble: 1 +ldouble: 1 +Test "expm1_downward (-0x2.cp+4)": +ildouble: 1 +ldouble: 1 +Test "expm1_downward (-0x4.bp+4)": +ildouble: 1 +ldouble: 1 +Test "expm1_downward (0x1.f4p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_downward (0x1p-32)": +ildouble: 1 +ldouble: 1 +Test "expm1_downward (0x3.2p+4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_downward (0x7.fp+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +# expm1_tonearest +Test "expm1_tonearest (0x1.f4p+8)": +double: 1 +idouble: 1 +Test "expm1_tonearest (0x1p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_tonearest (0xcp-4)": +double: 1 +idouble: 1 + +# expm1_towardzero +Test "expm1_towardzero (-0x1p-100)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_towardzero (-0x1p-32)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (-0x1p-64)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_towardzero (-0x2.6p+4)": +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (-0x4.ap+4)": +ildouble: 2 +ldouble: 2 +Test "expm1_towardzero (-0x4.ep+4)": +ildouble: 2 +ldouble: 2 +Test "expm1_towardzero (-0x4.fp+4)": +ildouble: 2 +ldouble: 2 +Test "expm1_towardzero (-0x4p-52)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (-0x8p-32)": +float: 1 +ifloat: 1 +Test "expm1_towardzero (-0xap+0)": +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (0x1.f4p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (0x1p-32)": +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (0x3.2p+4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_towardzero (0x7.fp+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +# expm1_upward +Test "expm1_upward (-0x1p-100)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_upward (-0x1p-32)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_upward (-0x1p-64)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_upward (-0x4p-52)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "expm1_upward (-0x8p-32)": +float: 1 +ifloat: 1 +Test "expm1_upward (-0xap+0)": +ildouble: 1 +ldouble: 1 +Test "expm1_upward (0x1p-100)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_upward (0x1p-32)": +float: 1 +ifloat: 1 +Test "expm1_upward (0x1p-64)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "expm1_upward (0x4p-52)": +float: 1 +ifloat: 1 +Test "expm1_upward (0x8p-32)": +float: 1 +ifloat: 1 + # gamma +Test "gamma (-0x1p-10)": +double: 1 +idouble: 1 +Test "gamma (-0x1p-15)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "gamma (-0x1p-20)": +double: 1 +idouble: 1 +Test "gamma (-0x1p-5)": +double: 1 +idouble: 1 +Test "gamma (-0x2p-16)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "gamma (-0x4p-12)": +double: 1 +idouble: 1 +Test "gamma (-0x8p-8)": +double: 1 +idouble: 1 Test "gamma (0.7)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "gamma (0x1p-10)": +float: 1 +ifloat: 1 +Test "gamma (0x1p-30)": +double: 1 +idouble: 1 +Test "gamma (0x4p-12)": +float: 1 +ifloat: 1 +Test "gamma (0x4p-32)": +double: 1 +idouble: 1 +Test "gamma (0xb.333333333333p-4)": +double: 1 +idouble: 1 +Test "gamma (0xb.33333p-4)": +double: 1 +idouble: 1 Test "gamma (1.2)": double: 1 float: 2 @@ -5951,6 +7498,78 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "hypot (-0xb.33333333333333333333333334p-4, -0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.33333333333333333333333334p-4, 0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.3333333333333333333333333p-4, -0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.3333333333333333333333333p-4, 0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.333333333333334p-4, -0xc.666666666666667p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.333333333333334p-4, -0xc.66666p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.333333333333334p-4, 0xc.666666666666667p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.333333333333334p-4, 0xc.66666p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.333333333333p-4, -0xc.6666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.333333333333p-4, 0xc.6666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xb.33334p-4, -0xc.6666666666668p+0)": +double: 1 +idouble: 1 +Test "hypot (-0xb.33334p-4, 0xc.6666666666668p+0)": +double: 1 +idouble: 1 +Test "hypot (-0xc.66666666666666666666666668p+0, -0xb.33333333333333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.66666666666666666666666668p+0, -0xb.3333333333333333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.66666666666666666666666668p+0, 0xb.33333333333333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.66666666666666666666666668p+0, 0xb.3333333333333333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.666666666666667p+0, -0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.666666666666667p+0, 0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.6666666666668p+0, -0xb.333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.6666666666668p+0, -0xb.33334p-4)": +double: 1 +idouble: 1 +Test "hypot (-0xc.6666666666668p+0, 0xb.333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.6666666666668p+0, 0xb.33334p-4)": +double: 1 +idouble: 1 +Test "hypot (-0xc.66666p+0, -0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (-0xc.66666p+0, 0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 Test "hypot (-12.4, -0.7)": double: 1 float: 1 @@ -5979,6 +7598,84 @@ ldouble: 1 Test "hypot (0x1.234566p-126, 0x1.234566p-126)": double: 1 idouble: 1 +Test "hypot (0x1.23456789abcdefp-500, 0x1.23456789abcdefp-500)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.33333333333333333333333334p-4, -0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.33333333333333333333333334p-4, 0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.3333333333333333333333333p-4, -0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.3333333333333333333333333p-4, 0xc.66666666666666666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.333333333333334p-4, -0xc.666666666666667p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.333333333333334p-4, -0xc.66666p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.333333333333334p-4, 0xc.666666666666667p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.333333333333334p-4, 0xc.66666p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.333333333333p-4, -0xc.6666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.333333333333p-4, 0xc.6666666666668p+0)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xb.33334p-4, -0xc.6666666666668p+0)": +double: 1 +idouble: 1 +Test "hypot (0xb.33334p-4, 0xc.6666666666668p+0)": +double: 1 +idouble: 1 +Test "hypot (0xc.66666666666666666666666668p+0, -0xb.33333333333333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.66666666666666666666666668p+0, -0xb.3333333333333333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.66666666666666666666666668p+0, 0xb.33333333333333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.66666666666666666666666668p+0, 0xb.3333333333333333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.666666666666667p+0, -0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.666666666666667p+0, 0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.6666666666668p+0, -0xb.333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.6666666666668p+0, -0xb.33334p-4)": +double: 1 +idouble: 1 +Test "hypot (0xc.6666666666668p+0, 0xb.333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.6666666666668p+0, 0xb.33334p-4)": +double: 1 +idouble: 1 +Test "hypot (0xc.66666p+0, -0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xc.66666p+0, 0xb.333333333333334p-4)": +ildouble: 1 +ldouble: 1 +Test "hypot (0xcp-4, 0x1.4p+0)": +ildouble: 1 +ldouble: 1 Test "hypot (12.4, -0.7)": double: 1 float: 1 @@ -5994,6 +7691,19 @@ ifloat: 1 Test "j0 (-0x1.001000001p+593)": ildouble: 2 ldouble: 2 +Test "j0 (-0x2.002000002p+592)": +ildouble: 2 +ldouble: 2 +Test "j0 (-0x4p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "j0 (-0xf.fffffp+124)": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 Test "j0 (-4.0)": double: 1 float: 2 @@ -6011,6 +7721,32 @@ ldouble: 1 Test "j0 (0x1p1023)": ildouble: 1 ldouble: 1 +Test "j0 (0x4p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "j0 (0x8p+0)": +float: 1 +ifloat: 1 +Test "j0 (0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "j0 (0xap+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "j0 (0xe.be71dp+104)": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "j0 (0xf.fffffp+124)": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 Test "j0 (10.0)": double: 3 float: 1 @@ -6050,6 +7786,38 @@ ldouble: 1 Test "j1 (0x1p1023)": ildouble: 1 ldouble: 1 +Test "j1 (0x2p+0)": +double: 1 +idouble: 1 +Test "j1 (0x4.ffcp+72)": +double: 1 +idouble: 1 +Test "j1 (0x8p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "j1 (0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "j1 (0xap+0)": +float: 2 +ifloat: 2 +Test "j1 (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "j1 (0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "j1 (0xf.fffffp+124)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "j1 (10.0)": float: 2 ifloat: 2 @@ -6065,6 +7833,11 @@ ildouble: 1 ldouble: 1 # jn +Test "jn (0, -0x4p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "jn (0, -4.0)": double: 1 float: 2 @@ -6072,6 +7845,19 @@ idouble: 1 ifloat: 2 ildouble: 1 ldouble: 1 +Test "jn (0, 0x4p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "jn (0, 0x8p+0)": +float: 1 +ifloat: 1 +Test "jn (0, 0xap+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 Test "jn (0, 10.0)": double: 3 float: 1 @@ -6098,6 +7884,17 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "jn (1, 0x2p+0)": +double: 1 +idouble: 1 +Test "jn (1, 0x8p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "jn (1, 0xap+0)": +float: 2 +ifloat: 2 Test "jn (1, 10.0)": float: 2 ifloat: 2 @@ -6111,6 +7908,9 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "jn (10, -0x1p+0)": +ildouble: 1 +ldouble: 1 Test "jn (10, -1.0)": ildouble: 1 ldouble: 1 @@ -6126,14 +7926,39 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "jn (10, 0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "jn (10, 0x2p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +Test "jn (10, 0x2p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "jn (10, 0xap+0)": +float: 2 +ifloat: 2 +ildouble: 4 +ldouble: 4 +Test "jn (10, 0xcp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "jn (10, 1.0)": ildouble: 1 ldouble: 1 Test "jn (10, 10.0)": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 4 ldouble: 4 Test "jn (10, 2.0)": @@ -6146,11 +7971,67 @@ double: 2 float: 2 idouble: 2 ifloat: 2 +Test "jn (2, 0x1p1023)": +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x1p127)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x2.67a2a4p+0)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "jn (2, 0x2.67a2a5d2e36800fce3e16f10cbp+0)": +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x2.67a2a5d2e36800fcp+0)": +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x2.67a2a5d2e3682p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x2.67a2a5d2e368p+0)": +double: 2 +idouble: 2 +Test "jn (2, 0x2.67a2a8p+0)": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +Test "jn (2, 0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x8p+124)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "jn (2, 0xf.fffb1p+96)": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +Test "jn (2, 0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 +Test "jn (2, 0xf.fffffp+124)": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 Test "jn (2, 2.4048255576957729)": double: 2 float: 1 idouble: 2 ifloat: 1 +Test "jn (3, -0x1p+0)": +ildouble: 1 +ldouble: 1 Test "jn (3, -1.0)": ildouble: 1 ldouble: 1 @@ -6162,6 +8043,55 @@ ifloat: 1 Test "jn (3, 0.75)": double: 1 idouble: 1 +Test "jn (3, 0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "jn (3, 0x2.67a2a4p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "jn (3, 0x2.67a2a5d2e36800fce3e16f10cbp+0)": +ildouble: 2 +ldouble: 2 +Test "jn (3, 0x2.67a2a5d2e36800fcp+0)": +ildouble: 3 +ldouble: 3 +Test "jn (3, 0x2.67a2a5d2e3682p+0)": +double: 1 +idouble: 1 +ildouble: 3 +ldouble: 3 +Test "jn (3, 0x2.67a2a5d2e368p+0)": +double: 3 +idouble: 3 +ildouble: 2 +ldouble: 2 +Test "jn (3, 0x2.67a2a8p+0)": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 +ildouble: 2 +ldouble: 2 +Test "jn (3, 0x2p+0)": +float: 1 +ifloat: 1 +Test "jn (3, 0x2p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "jn (3, 0xap+0)": +double: 3 +idouble: 3 +ildouble: 2 +ldouble: 2 +Test "jn (3, 0xcp-4)": +double: 1 +idouble: 1 Test "jn (3, 1.0)": ildouble: 1 ldouble: 1 @@ -6184,11 +8114,60 @@ double: 3 idouble: 3 ildouble: 1 ldouble: 1 +Test "jn (4, 0x2.67a2a4p+0)": +float: 1 +ifloat: 1 +Test "jn (4, 0x2.67a2a5d2e36800fce3e16f10cap+0)": +ildouble: 1 +ldouble: 1 +Test "jn (4, 0x2.67a2a5d2e36800fcp+0)": +ildouble: 2 +ldouble: 2 +Test "jn (4, 0x2.67a2a5d2e3682p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "jn (4, 0x2.67a2a5d2e368p+0)": +double: 1 +idouble: 1 +Test "jn (4, 0x2.67a2a8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 Test "jn (4, 2.4048255576957729)": double: 1 idouble: 1 ildouble: 2 ldouble: 2 +Test "jn (5, 0x2.67a2a4p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "jn (5, 0x2.67a2a5d2e36801p+0)": +ildouble: 1 +ldouble: 1 +Test "jn (5, 0x2.67a2a5d2e3682p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "jn (5, 0x2.67a2a5d2e368p+0)": +double: 2 +idouble: 2 +ildouble: 1 +ldouble: 1 +Test "jn (5, 0x2.67a2a8p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 Test "jn (5, 2.4048255576957729)": double: 3 float: 1 @@ -6196,6 +8175,28 @@ idouble: 3 ifloat: 1 ildouble: 1 ldouble: 1 +Test "jn (6, 0x2.67a2a4p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "jn (6, 0x2.67a2a5d2e36800fce3e16f10cbp+0)": +ildouble: 2 +ldouble: 2 +Test "jn (6, 0x2.67a2a5d2e36801p+0)": +ildouble: 4 +ldouble: 4 +Test "jn (6, 0x2.67a2a5d2e3682p+0)": +double: 2 +idouble: 2 +Test "jn (6, 0x2.67a2a5d2e368p+0)": +double: 4 +idouble: 4 +ildouble: 4 +ldouble: 4 +Test "jn (6, 0x2.67a2a8p+0)": +float: 3 +ifloat: 3 Test "jn (6, 2.4048255576957729)": double: 4 float: 3 @@ -6203,6 +8204,30 @@ idouble: 4 ifloat: 3 ildouble: 4 ldouble: 4 +Test "jn (7, 0x2.67a2a4p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "jn (7, 0x2.67a2a5d2e36800fce3e16f10cap+0)": +ildouble: 1 +ldouble: 1 +Test "jn (7, 0x2.67a2a5d2e36800fcp+0)": +ildouble: 3 +ldouble: 3 +Test "jn (7, 0x2.67a2a5d2e3682p+0)": +ildouble: 2 +ldouble: 2 +Test "jn (7, 0x2.67a2a5d2e368p+0)": +double: 3 +idouble: 3 +ildouble: 2 +ldouble: 2 +Test "jn (7, 0x2.67a2a8p+0)": +float: 3 +ifloat: 3 Test "jn (7, 2.4048255576957729)": double: 3 float: 5 @@ -6210,6 +8235,31 @@ idouble: 3 ifloat: 5 ildouble: 2 ldouble: 2 +Test "jn (8, 0x2.67a2a4p+0)": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 +Test "jn (8, 0x2.67a2a5d2e36800fcp+0)": +ildouble: 2 +ldouble: 2 +Test "jn (8, 0x2.67a2a5d2e3682p+0)": +double: 1 +idouble: 1 +Test "jn (8, 0x2.67a2a5d2e368p+0)": +double: 3 +idouble: 3 +ildouble: 1 +ldouble: 1 +Test "jn (8, 0x2.67a2a8p+0)": +double: 1 +float: 4 +idouble: 1 +ifloat: 4 +ildouble: 1 +ldouble: 1 Test "jn (8, 2.4048255576957729)": double: 3 float: 2 @@ -6217,6 +8267,36 @@ idouble: 3 ifloat: 2 ildouble: 4 ldouble: 4 +Test "jn (9, 0x2.67a2a4p+0)": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 +ildouble: 1 +ldouble: 1 +Test "jn (9, 0x2.67a2a5d2e36800fce3e16f10cap+0)": +ildouble: 2 +ldouble: 2 +Test "jn (9, 0x2.67a2a5d2e36800fcp+0)": +ildouble: 3 +ldouble: 3 +Test "jn (9, 0x2.67a2a5d2e3682p+0)": +double: 4 +idouble: 4 +ildouble: 3 +ldouble: 3 +Test "jn (9, 0x2.67a2a5d2e368p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "jn (9, 0x2.67a2a8p+0)": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 +ildouble: 1 +ldouble: 1 Test "jn (9, 2.4048255576957729)": double: 2 float: 2 @@ -6226,11 +8306,54 @@ ildouble: 7 ldouble: 7 # lgamma +Test "lgamma (-0x1p-10)": +double: 1 +idouble: 1 +Test "lgamma (-0x1p-15)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "lgamma (-0x1p-20)": +double: 1 +idouble: 1 +Test "lgamma (-0x1p-5)": +double: 1 +idouble: 1 +Test "lgamma (-0x2p-16)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "lgamma (-0x4p-12)": +double: 1 +idouble: 1 +Test "lgamma (-0x8p-8)": +double: 1 +idouble: 1 Test "lgamma (0.7)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "lgamma (0x1p-10)": +float: 1 +ifloat: 1 +Test "lgamma (0x1p-30)": +double: 1 +idouble: 1 +Test "lgamma (0x4p-12)": +float: 1 +ifloat: 1 +Test "lgamma (0x4p-32)": +double: 1 +idouble: 1 +Test "lgamma (0xb.333333333333p-4)": +double: 1 +idouble: 1 +Test "lgamma (0xb.33333p-4)": +double: 1 +idouble: 1 Test "lgamma (1.2)": double: 1 float: 2 @@ -6239,12 +8362,25 @@ ifloat: 2 ildouble: 3 ldouble: 3 +# log +Test "log (0x2.b7e15p+0)": +float: 1 +ifloat: 1 + # log10 Test "log10 (0.75)": double: 1 float: 2 idouble: 1 ifloat: 2 +Test "log10 (0x2.b7e154p+0)": +float: 1 +ifloat: 1 +Test "log10 (0xcp-4)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 Test "log10 (e)": float: 1 ifloat: 1 @@ -6253,6 +8389,9 @@ ifloat: 1 Test "log1p (-0.25)": float: 1 ifloat: 1 +Test "log1p (0x1.b7e15p+0)": +float: 1 +ifloat: 1 # log2 Test "log2 (e)": @@ -6269,8 +8408,22 @@ ifloat: 1 Test "pow (0x1.000002p0, 0x1p24)": float: 1 ifloat: 1 +Test "pow (0xf.fffffp-4, 0x1p+24)": +float: 1 +ifloat: 1 # pow10 +Test "pow10 (-0x1.31p+8)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "pow10 (-0x1p+0)": +double: 1 +idouble: 1 +Test "pow10 (-0x2.4p+4)": +double: 1 +idouble: 1 Test "pow10 (-1)": double: 1 idouble: 1 @@ -6282,6 +8435,12 @@ ldouble: 1 Test "pow10 (-36)": double: 1 idouble: 1 +Test "pow10 (0x2.4p+4)": +double: 1 +idouble: 1 +Test "pow10 (0x3p+0)": +double: 1 +idouble: 1 Test "pow10 (3)": double: 1 idouble: 1 @@ -6297,6 +8456,11 @@ Test "pow_downward (1.5, 1.03125)": float: 1 ifloat: 1 +# pow_tonearest +Test "pow_tonearest (0xf.fffffp-4, 0x1p+24)": +float: 1 +ifloat: 1 + # pow_towardzero Test "pow_towardzero (1.0625, 1.125)": ildouble: 1 @@ -6314,11 +8478,319 @@ ildouble: 1 ldouble: 1 # sin +Test "sin (0x1p+0)": +float: 1 +ifloat: 1 +Test "sin (0x4.1237e153f7080008p+0)": +ildouble: 1 +ldouble: 1 +Test "sin (0xc.d4967p-4)": +float: 1 +ifloat: 1 +Test "sin (0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 Test "sin (16.0)": ildouble: 2 ldouble: 2 # sin_downward +Test "sin_downward (-0x1.921fb4p+0)": +double: 1 +idouble: 1 +Test "sin_downward (-0x1.921fb6p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (-0x2p+64)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (-0x8.60a91c16b9b28p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (-0x8.60a91c16b9b2c232dd99707ab4p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (-0x8.60a91c16b9b2c24p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (-0x8.60a91c16b9b3p-4)": +double: 1 +idouble: 1 +Test "sin_downward (-0x8.60a91p-4)": +double: 1 +idouble: 1 +Test "sin_downward (-0x8.60a92p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_downward (0x1.921fb54442d18p+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x1.921fb54442d19p+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x1p+120)": +float: 1 +ifloat: 1 +Test "sin_downward (0x1p+28)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x2.1e19e0c9bab24p+72)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x2.1e19e4p+72)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x2.1e19ep+72)": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x2.553534p+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x2.5535376715b9ep+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x2.5535376715bap+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x2p+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x3.be735c19be9fep+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.be735c19be9fffffffffffffffp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.be735c19beap+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.be735cp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.be736p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_downward (0x3.ec2a0250032a00000000000001p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.ec2a0250032a0004p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.ec2a0250032a2p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.ec2a0250032ap+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.ec2a04p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x3.ec2ap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_downward (0x3p+0)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_downward (0x4.093385688a2d150c00bf42a09p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.093388p-4)": +double: 1 +idouble: 1 +Test "sin_downward (0x4.1237e153f70800000000000002p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0x4.1237e153f7080008p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.1237e153f7084p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_downward (0x4.1237e153f708p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.1237e8p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0x4.1237ep+0)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_downward (0x4.c92d08p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.c92d0ffa4bf000000000000002p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.c92d0ffa4bf00008p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.c92d0ffa4bf04p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.c92d0ffa4bfp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4.c92d1p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x4p+48)": +double: 1 +idouble: 1 +Test "sin_downward (0x5.fbec7477d4a800000000000002p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x5.fbec7477d4a84p+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x5.fbec7477d4a8p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x5.fbec78p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x5.fbec7p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x5p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_downward (0x6p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x8.60a91c16b9b28p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x8.60a92p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0x8p+0)": +double: 1 +idouble: 1 +Test "sin_downward (0x8p+1020)": +double: 1 +idouble: 1 +Test "sin_downward (0x9p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_downward (0xap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_downward (0xb.fa09ap+100)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xc.d4966d92d17082980965c1a66p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xc.d4966d92d170829p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xc.d4966d92d17082ap-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xc.d4966d92d1708p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0xc.d4966d92d171p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0xc.d4966p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_downward (0xc.d4967p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xe.ef3af1b5d800001p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xe.ef3af1b5d8008p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xe.ef3af1b5d8p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_downward (0xe.ef3afp-4)": +ildouble: 3 +ldouble: 3 +Test "sin_downward (0xe.ef3bp-4)": +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xf.ffffcp+124)": +double: 1 +idouble: 1 +Test "sin_downward (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_downward (0xf.fffffp+124)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "sin_downward (1)": ildouble: 4 ldouble: 4 @@ -6349,11 +8821,208 @@ ildouble: 1 ldouble: 1 # sin_tonearest +Test "sin_tonearest (0x1p+0)": +float: 1 +ifloat: 1 +Test "sin_tonearest (0x4.1237e153f7080008p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_tonearest (0xc.d4967p-4)": +float: 1 +ifloat: 1 +Test "sin_tonearest (0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 Test "sin_tonearest (1)": float: 1 ifloat: 1 # sin_towardzero +Test "sin_towardzero (-0x1.921fb54442d18p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (-0x1.921fb54442d19p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (-0x2p+64)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (-0x8.60a91c16b9b28p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (-0x8.60a92p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x1.921fb54442d18p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x1.921fb54442d19p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x1p+0)": +float: 1 +ifloat: 1 +ildouble: 3 +ldouble: 3 +Test "sin_towardzero (0x2.1e19e4p+72)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x2.1e19ep+72)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_towardzero (0x2.553534p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x2.5535376715b9ep+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x2.5535376715b9ffffffffffffffp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x2.5535376715bap+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x2p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x2p+64)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x3.be735c19beap+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x3.be735cp+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_towardzero (0x3.be736p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x3.ec2a04p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_towardzero (0x3p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x4.093385688a2d150c00bf42a09p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x4.093388p-4)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x4.1237e153f70800000000000002p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x4.1237e153f7084p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x4.1237e153f708p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x4.1237e8p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x4.1237ep+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x4.c92d0ffa4bf04p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x4.c92d0ffa4bfp+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x4p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x4p+48)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x5.fbec7p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x8.60a91c16b9b28p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x8.60a92p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0x8p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x8p+1020)": +double: 1 +idouble: 1 +Test "sin_towardzero (0x9p+0)": +double: 1 +idouble: 1 +Test "sin_towardzero (0xb.fa09ap+100)": +double: 1 +idouble: 1 +Test "sin_towardzero (0xc.d4966d92d17082980965c1a664p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xc.d4966d92d17082980965c1a66p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xc.d4966d92d170829p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xc.d4966d92d17082ap-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xc.d4966d92d1708p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xc.d4966d92d171p-4)": +ildouble: 4 +ldouble: 4 +Test "sin_towardzero (0xc.d4966p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xc.d4967p-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xe.ef3af1b5d80000000000000004p-4)": +ildouble: 3 +ldouble: 3 +Test "sin_towardzero (0xe.ef3af1b5d800001p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xe.ef3af1b5d8008p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xe.ef3af1b5d8p-4)": +ildouble: 3 +ldouble: 3 +Test "sin_towardzero (0xe.ef3afp-4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_towardzero (0xe.ef3bp-4)": +ildouble: 2 +ldouble: 2 +Test "sin_towardzero (0xf.ffffcp+124)": +double: 1 +idouble: 1 +Test "sin_towardzero (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 Test "sin_towardzero (1)": float: 1 ifloat: 1 @@ -6384,6 +9053,343 @@ ildouble: 1 ldouble: 1 # sin_upward +Test "sin_upward (-0x1.921fb4p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x1.921fb54442d18p+0)": +double: 1 +idouble: 1 +Test "sin_upward (-0x1.921fb54442d19p+0)": +double: 1 +idouble: 1 +Test "sin_upward (-0x1.921fb6p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x2p+64)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x8.60a91c16b9b28p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x8.60a91c16b9b2c232dd99707ab4p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x8.60a91c16b9b2c24p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x8.60a91c16b9b3p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x8.60a91p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (-0x8.60a92p-4)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x1.921fb4p+0)": +double: 1 +idouble: 1 +Test "sin_upward (0x1.921fb6p+0)": +double: 1 +idouble: 1 +Test "sin_upward (0x1p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x1p+120)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_upward (0x1p+28)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x2.1e19e0c9bab24p+72)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x2.1e19e4p+72)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x2.1e19ep+72)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x2.5535376715b9ep+0)": +double: 1 +idouble: 1 +Test "sin_upward (0x2.5535376715b9ffffffffffffffp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x2.553538p+0)": +double: 1 +idouble: 1 +Test "sin_upward (0x2p+0)": +float: 1 +ifloat: 1 +Test "sin_upward (0x2p+64)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.be735c19be9fep+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.be735c19be9ffffcp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.be735c19be9fffffffffffffffp+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.be735c19beap+0)": +double: 1 +idouble: 1 +Test "sin_upward (0x3.be735cp+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_upward (0x3.be736p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.ec2a0250032a00000000000001p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.ec2a0250032a0004p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.ec2a0250032a2p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.ec2a0250032ap+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3.ec2a04p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_upward (0x3.ec2ap+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x3p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4.093385688a2d4p-4)": +double: 1 +idouble: 1 +Test "sin_upward (0x4.093385688a2dp-4)": +double: 1 +idouble: 1 +Test "sin_upward (0x4.09338p-4)": +double: 1 +idouble: 1 +Test "sin_upward (0x4.1237e153f70800000000000002p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4.1237e153f7080008p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4.1237e153f7084p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4.1237e153f708p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4.1237e8p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x4.1237ep+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4.c92d08p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x4.c92d0ffa4bf000000000000002p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x4.c92d0ffa4bf00008p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x4.c92d0ffa4bf04p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x4.c92d0ffa4bfp+0)": +double: 1 +idouble: 1 +Test "sin_upward (0x4.c92d1p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x4p+0)": +float: 2 +ifloat: 2 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x4p+48)": +float: 1 +ifloat: 1 +Test "sin_upward (0x5.fbec7477d4a800000000000002p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x5.fbec7477d4a80008p+0)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0x5.fbec7477d4a84p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x5.fbec7477d4a8p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x5.fbec78p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x5.fbec7p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x5p+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x6p+0)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x7p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "sin_upward (0x8.60a91c16b9b3p-4)": +double: 1 +idouble: 1 +Test "sin_upward (0x8.60a91p-4)": +double: 1 +idouble: 1 +Test "sin_upward (0x8.60a92p-4)": +double: 1 +idouble: 1 +Test "sin_upward (0x8p+0)": +float: 1 +ifloat: 1 +Test "sin_upward (0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0x8p+124)": +double: 1 +idouble: 1 +Test "sin_upward (0x9p+0)": +float: 1 +ifloat: 1 +Test "sin_upward (0xap+0)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sin_upward (0xb.fa09ap+100)": +double: 1 +idouble: 1 +Test "sin_upward (0xc.d4966d92d17082980965c1a664p-4)": +ildouble: 3 +ldouble: 3 +Test "sin_upward (0xc.d4966d92d17082980965c1a66p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xc.d4966d92d170829p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xc.d4966d92d17082ap-4)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xc.d4966d92d1708p-4)": +ildouble: 3 +ldouble: 3 +Test "sin_upward (0xc.d4966d92d171p-4)": +double: 1 +idouble: 1 +ildouble: 3 +ldouble: 3 +Test "sin_upward (0xc.d4966p-4)": +ildouble: 3 +ldouble: 3 +Test "sin_upward (0xc.d4967p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xcp-4)": +double: 1 +idouble: 1 +Test "sin_upward (0xe.ef3af1b5d80000000000000004p-4)": +ildouble: 3 +ldouble: 3 +Test "sin_upward (0xe.ef3af1b5d800001p-4)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xe.ef3af1b5d8008p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xe.ef3af1b5d8p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xe.ef3afp-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xe.ef3bp-4)": +double: 1 +idouble: 1 +ildouble: 3 +ldouble: 3 +Test "sin_upward (0xf.ffffcp+124)": +ildouble: 2 +ldouble: 2 +Test "sin_upward (0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "sin_upward (0xf.fffffp+124)": +ildouble: 1 +ldouble: 1 Test "sin_upward (1)": float: 1 ifloat: 1 @@ -6408,12 +9414,33 @@ float: 1 ifloat: 1 # sincos +Test "sincos (0x1.0c1522p+0) extra output 1": +float: 1 +ifloat: 1 +Test "sincos (0x1.0c152382d7366p+0) extra output 2": +ildouble: 1 +ldouble: 1 Test "sincos (0x1p+120) extra output 2": float: 1 ifloat: 1 Test "sincos (0x1p+127) extra output 2": float: 1 ifloat: 1 +Test "sincos (0x8.60a92p-4) extra output 2": +float: 1 +ifloat: 1 +Test "sincos (0x8p+124) extra output 2": +float: 1 +ifloat: 1 +Test "sincos (0xc.d4966d92d17082980965c1a66p-4) extra output 2": +ildouble: 1 +ldouble: 1 +Test "sincos (0xc.d4967p-4) extra output 1": +float: 1 +ifloat: 1 +Test "sincos (0xf.ffffffffffff8p+1020) extra output 1": +ildouble: 1 +ldouble: 1 Test "sincos (M_PI_6l*2.0) extra output 1": double: 1 float: 1 @@ -6437,8 +9464,22 @@ ifloat: 1 Test "sinh (0.75)": ildouble: 1 ldouble: 1 +Test "sinh (0xcp-4)": +ildouble: 1 +ldouble: 1 # sinh_downward +Test "sinh_downward (0x1.6p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sinh_downward (0x1.7p+4)": +double: 1 +idouble: 1 +Test "sinh_downward (0x1.8p+4)": +ildouble: 1 +ldouble: 1 Test "sinh_downward (22)": float: 1 ifloat: 1 @@ -6453,7 +9494,23 @@ ifloat: 1 ildouble: 1 ldouble: 1 +# sinh_tonearest +Test "sinh_tonearest (0xcp-4)": +ildouble: 1 +ldouble: 1 + # sinh_towardzero +Test "sinh_towardzero (0x1.6p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "sinh_towardzero (0x1.7p+4)": +double: 1 +idouble: 1 +Test "sinh_towardzero (0x1.8p+4)": +ildouble: 1 +ldouble: 1 Test "sinh_towardzero (22)": float: 1 ifloat: 1 @@ -6469,6 +9526,19 @@ ildouble: 1 ldouble: 1 # sinh_upward +Test "sinh_upward (0x1.8p+4)": +double: 1 +idouble: 1 +Test "sinh_upward (0x8p-32)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sinh_upward (0xcp-4)": +ildouble: 1 +ldouble: 1 Test "sinh_upward (23)": ildouble: 1 ldouble: 1 @@ -6484,6 +9554,171 @@ Test "sqrt (2)": double: 1 idouble: 1 +# sqrt_downward +Test "sqrt_downward (0x1.33b43b08p-1016)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000000cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000001cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000002cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000003cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000004cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000005cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000006cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000007cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000008cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.000000000009cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.00000000000acp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.00000000000bcp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.00000000000ccp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x4.00000000000dcp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x5.c59ef8p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x5.c59efp+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x5.f6ba5a510bf98p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x5.fe1118p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x6.379124f88b718p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x6.4920a685e8a2p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x6.4920a8p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0x6.54d82p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_downward (0xd.0ac284p-1020)": +ildouble: 1 +ldouble: 1 + +# sqrt_towardzero +Test "sqrt_towardzero (0x1.33b43b08p-1016)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000000cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000001cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000002cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000003cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000004cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000005cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000006cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000007cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000008cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.000000000009cp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.00000000000acp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.00000000000bcp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.00000000000ccp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x4.00000000000dcp-1024)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x5.c59ef8p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x5.c59efp+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x5.f6ba5a510bf98p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x5.fe1118p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x6.379124f88b718p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x6.4920a685e8a2p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x6.4920a8p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0x6.54d82p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0xd.0ac284p-1020)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 +Test "sqrt_towardzero (0xf.ffffffffffff8p-4)": +ildouble: 1 +ldouble: 1 + +# sqrt_upward +Test "sqrt_upward (0x5.f6ba6p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_upward (0x6.16fb78p+4)": +ildouble: 1 +ldouble: 1 +Test "sqrt_upward (0x6.1ce128p+4)": +ildouble: 1 +ldouble: 1 + # tan Test "tan (-0xc.908p-4)": ildouble: 2 @@ -6512,6 +9747,18 @@ ldouble: 1 Test "tan (-0xc.9p-4)": ildouble: 1 ldouble: 1 +Test "tan (0x2.1e19ep+72)": +ildouble: 1 +ldouble: 1 +Test "tan (0x4p+0)": +ildouble: 1 +ldouble: 1 +Test "tan (0x7p+0)": +ildouble: 1 +ldouble: 1 +Test "tan (0xap+0)": +ildouble: 1 +ldouble: 1 Test "tan (0xc.908p-4)": ildouble: 2 ldouble: 2 @@ -6530,6 +9777,12 @@ ldouble: 1 Test "tan (0xc.90fd8p-4)": ildouble: 1 ldouble: 1 +Test "tan (0xc.90fdaa22168c234c4c6628b81p-4)": +ildouble: 1 +ldouble: 1 +Test "tan (0xc.90fdaa22168c235p-4)": +ildouble: 1 +ldouble: 1 Test "tan (0xc.90fdap-4)": ildouble: 1 ldouble: 1 @@ -6546,6 +9799,190 @@ ildouble: 1 ldouble: 1 # tan_downward +Test "tan_downward (-0x2p+64)": +double: 1 +idouble: 1 +Test "tan_downward (-0xc.908p-4)": +float: 2 +ifloat: 2 +Test "tan_downward (-0xc.90cp-4)": +float: 1 +ifloat: 1 +Test "tan_downward (-0xc.90ep-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90f8p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fcp-4)": +float: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fd8p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fdap-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fdbp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fdcp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fdp-4)": +float: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fep-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.90fp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.91p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (-0xc.92p-4)": +double: 1 +idouble: 1 +Test "tan_downward (-0xc.94p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_downward (-0xc.98p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (-0xc.9p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_downward (-0xc.ap-4)": +double: 1 +idouble: 1 +Test "tan_downward (0x1p+0)": +double: 1 +idouble: 1 +Test "tan_downward (0x2.1e19e0c9bab24p+72)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_downward (0x2.1e19ep+72)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0x2p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_downward (0x3p+0)": +double: 1 +idouble: 1 +Test "tan_downward (0x4p+0)": +float: 1 +ifloat: 1 +Test "tan_downward (0x6p+0)": +double: 1 +idouble: 1 +Test "tan_downward (0x7p+0)": +double: 1 +idouble: 1 +Test "tan_downward (0x8p+1020)": +double: 1 +idouble: 1 +Test "tan_downward (0x9p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xap+0)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.908p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (0xc.90cp-4)": +double: 1 +idouble: 1 +Test "tan_downward (0xc.90ep-4)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.90f8p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_downward (0xc.90fcp-4)": +double: 1 +idouble: 1 +Test "tan_downward (0xc.90fd8p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.90fdaa22168c234c4c6628b81p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_downward (0xc.90fdaa22168c235p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.90fdaa22168c8p-4)": +double: 1 +idouble: 1 +Test "tan_downward (0xc.90fdap-4)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.90fdp-4)": +double: 1 +idouble: 1 +Test "tan_downward (0xc.90fep-4)": +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.90fp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_downward (0xc.92p-4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_downward (0xc.94p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (0xc.98p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_downward (0xc.9p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_downward (0xc.ap-4)": +float: 1 +ifloat: 1 +Test "tan_downward (0xcp-4)": +double: 1 +idouble: 1 +Test "tan_downward (0xf.fffffp+124)": +ildouble: 2 +ldouble: 2 Test "tan_downward (1)": float: 1 ifloat: 1 @@ -6576,6 +10013,78 @@ ildouble: 1 ldouble: 1 # tan_tonearest +Test "tan_tonearest (-0xc.908p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (-0xc.90cp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (-0xc.90ep-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (-0xc.90f8p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (-0xc.90fcp-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (-0xc.90fd8p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (-0xc.90fdap-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (-0xc.92p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (-0xc.9p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0x2.1e19ep+72)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0x4p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0x7p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xap+0)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.908p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (0xc.90cp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (0xc.90ep-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (0xc.90f8p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_tonearest (0xc.90fcp-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.90fd8p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.90fdaa22168c234c4c6628b81p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.90fdaa22168c235p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.90fdap-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.92p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_tonearest (0xc.9p-4)": +ildouble: 1 +ldouble: 1 Test "tan_tonearest (10)": ildouble: 1 ldouble: 1 @@ -6587,11 +10096,186 @@ ildouble: 1 ldouble: 1 # tan_towardzero +Test "tan_towardzero (-0x2p+64)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (-0xc.908p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_towardzero (-0xc.90cp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (-0xc.90ep-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (-0xc.90f8p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (-0xc.90fcp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (-0xc.90fd8p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (-0xc.90fdap-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (-0xc.90fdp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (-0xc.90fp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (-0xc.94p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (-0xc.98p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (-0xc.9p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x1p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_towardzero (0x2.1e19e0c9bab24p+72)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x2.1e19e4p+72)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x2.1e19ep+72)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0x2p+0)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x2p+64)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x3p+0)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x4p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0x5p+0)": +double: 1 +idouble: 1 +Test "tan_towardzero (0x6p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0x7p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x8p+0)": +double: 1 +idouble: 1 +Test "tan_towardzero (0x8p+1020)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0x9p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_towardzero (0xap+0)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.908p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tan_towardzero (0xc.90cp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (0xc.90ep-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90f8p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0xc.90fcp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (0xc.90fd8p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90fdaa22168c234c4c6628b80cp-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90fdaa22168c234p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90fdaa22168c8p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90fdaa22168cp-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90fdap-4)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.90fdp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (0xc.90fp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0xc.94p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.98p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xc.9p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_towardzero (0xcp-4)": +double: 1 +idouble: 1 +Test "tan_towardzero (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +Test "tan_towardzero (0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "tan_towardzero (0xf.fffffp+124)": +double: 1 +idouble: 1 Test "tan_towardzero (10)": float: 1 ifloat: 1 ildouble: 2 ldouble: 2 +Test "tan_towardzero (2)": +ildouble: 1 +ldouble: 1 Test "tan_towardzero (3)": float: 1 ifloat: 1 @@ -6618,6 +10302,238 @@ ildouble: 1 ldouble: 1 # tan_upward +Test "tan_upward (-0xc.908p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90cp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90ep-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90f8p-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90fcp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90fd8p-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90fdap-4)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (-0xc.90fdbp-4)": +float: 1 +ifloat: 1 +Test "tan_upward (-0xc.90fdcp-4)": +float: 1 +ifloat: 1 +Test "tan_upward (-0xc.90fdp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.90fep-4)": +float: 1 +ifloat: 1 +Test "tan_upward (-0xc.90fp-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (-0xc.91p-4)": +float: 1 +ifloat: 1 +Test "tan_upward (-0xc.94p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (-0xc.98p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (-0xc.9p-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0x2.1e19e4p+72)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0x2.1e19ep+72)": +double: 1 +idouble: 1 +Test "tan_upward (0x2p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_upward (0x2p+64)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0x3p+0)": +ildouble: 2 +ldouble: 2 +Test "tan_upward (0x4p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0x5p+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0x6p+0)": +ildouble: 1 +ldouble: 1 +Test "tan_upward (0x7p+0)": +float: 1 +ifloat: 1 +Test "tan_upward (0x8p+0)": +double: 1 +idouble: 1 +Test "tan_upward (0x8p+1020)": +ildouble: 2 +ldouble: 2 +Test "tan_upward (0x9p+0)": +double: 1 +idouble: 1 +Test "tan_upward (0xap+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.908p-4)": +float: 1 +ifloat: 1 +Test "tan_upward (0xc.90ep-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90f8p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90fcp-4)": +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90fd8p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90fdaa22168c234c4c6628b80cp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.90fdaa22168c234c4c6628b81p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90fdaa22168c234p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.90fdaa22168c235p-4)": +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90fdaa22168c8p-4)": +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.90fdaa22168cp-4)": +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.90fdap-4)": +double: 1 +idouble: 1 +Test "tan_upward (0xc.90fdbp-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.90fdcp-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.90fep-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.90fp-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.91p-4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.92p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.94p-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.98p-4)": +float: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xc.9p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tan_upward (0xc.ap-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "tan_upward (0xcp-4)": +float: 1 +ifloat: 1 +Test "tan_upward (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +Test "tan_upward (0xf.fffffp+124)": +double: 1 +idouble: 1 Test "tan_upward (10)": ildouble: 1 ldouble: 1 @@ -6645,9 +10561,15 @@ ldouble: 1 Test "tanh (-0.75)": ildouble: 1 ldouble: 1 +Test "tanh (-0xcp-4)": +ildouble: 1 +ldouble: 1 Test "tanh (0.75)": ildouble: 1 ldouble: 1 +Test "tanh (0xcp-4)": +ildouble: 1 +ldouble: 1 # tgamma Test "tgamma (-0.5)": @@ -6663,6 +10585,9 @@ ldouble: 1 Test "tgamma (-0x0.ffffffp0)": float: 1 ifloat: 1 +Test "tgamma (-0x1.000002p+0)": +double: 2 +idouble: 2 Test "tgamma (-0x1.000002p0)": double: 2 idouble: 2 @@ -6671,6 +10596,58 @@ ldouble: 1 Test "tgamma (-0x1.0a32a2p+5)": float: 2 ifloat: 2 +Test "tgamma (-0x1.3ffffep+4)": +float: 1 +ifloat: 1 +Test "tgamma (-0x1.3ffffffffffffffep+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x1.3fffffffffffffffffffffffff8p+4)": +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x1.3ffffffffffffp+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x1.4000000000000002p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x1.4000000000001p+4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x1.400002p+4)": +float: 1 +ifloat: 1 +Test "tgamma (-0x1.dffffep+4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x1.dffffffffffffffep+4)": +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x1.dfffffffffffffffffffffffff8p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x1.dffffffffffffp+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x1.e00000000000000000000000008p+4)": +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x1.e000000000001p+4)": +double: 3 +idouble: 3 +ildouble: 3 +ldouble: 3 +Test "tgamma (-0x1.e00002p+4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "tgamma (-0x13.ffffep0)": float: 2 ifloat: 2 @@ -6714,9 +10691,19 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (-0x2.0000000000002p+0)": +double: 1 +idouble: 1 Test "tgamma (-0x2.0000000000002p0)": double: 1 idouble: 1 +Test "tgamma (-0x2.000004p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "tgamma (-0x2.000004p0)": double: 2 float: 1 @@ -6724,6 +10711,60 @@ idouble: 2 ifloat: 1 ildouble: 1 ldouble: 1 +Test "tgamma (-0x2.146544p+4)": +float: 2 +ifloat: 2 +Test "tgamma (-0x2.7fffffffffffep+4)": +double: 1 +idouble: 1 +Test "tgamma (-0x2.7fffffffffffffffffffffffffp+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.8000000000002p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.800004p+4)": +double: 2 +idouble: 2 +Test "tgamma (-0x2.8ffffffffffffffcp+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.8p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.90000000000000000000000001p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.9000000000000004p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.900004p+4)": +double: 1 +idouble: 1 +Test "tgamma (-0x2.9ffffcp+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.9fffffffffffep+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.a0000000000000000000000001p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x2.fffffcp+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "tgamma (-0x2.fffffcp0)": double: 1 float: 1 @@ -6765,16 +10806,54 @@ ldouble: 1 Test "tgamma (-0x2a.0000000000000000000000001p0)": ildouble: 1 ldouble: 1 +Test "tgamma (-0x3.000004p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 Test "tgamma (-0x3.000004p0)": double: 2 float: 1 idouble: 2 ifloat: 1 +Test "tgamma (-0x3.1ffffcp+4)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x3.1fffffffffffep+4)": +double: 3 +idouble: 3 +Test "tgamma (-0x3.1ffffffffffffffcp+4)": +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x3.20000000000000000000000001p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x3.2000000000002p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x3.200004p+4)": +ildouble: 2 +ldouble: 2 +Test "tgamma (-0x3.8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (-0x3.fffffcp+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "tgamma (-0x3.fffffcp0)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (-0x3.ffffffffffffep+0)": +double: 2 +idouble: 2 Test "tgamma (-0x3.ffffffffffffep0)": double: 2 idouble: 2 @@ -6787,35 +10866,106 @@ ldouble: 1 Test "tgamma (-0x32.000000000002p0)": ildouble: 1 ldouble: 1 +Test "tgamma (-0x4.000008p+0)": +float: 1 +ifloat: 1 Test "tgamma (-0x4.000008p0)": float: 1 ifloat: 1 +Test "tgamma (-0x4.8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x4.fffff8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "tgamma (-0x4.fffff8p0)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (-0x4.ffffffffffffcp+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "tgamma (-0x4.ffffffffffffcp0)": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "tgamma (-0x5.0000000000004p+0)": +ildouble: 1 +ldouble: 1 Test "tgamma (-0x5.0000000000004p0)": ildouble: 1 ldouble: 1 +Test "tgamma (-0x5.000008p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 Test "tgamma (-0x5.000008p0)": double: 1 float: 2 idouble: 1 ifloat: 2 +Test "tgamma (-0x5.8p+0)": +double: 1 +idouble: 1 +Test "tgamma (-0x5.ffffffffffffcp+0)": +double: 1 +idouble: 1 Test "tgamma (-0x5.ffffffffffffcp0)": double: 1 idouble: 1 +Test "tgamma (-0x5.fffffffffffffff8p+0)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x6.000008p+0)": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 Test "tgamma (-0x6.000008p0)": float: 2 ifloat: 2 ildouble: 1 ldouble: 1 +Test "tgamma (-0x6.3fffffffffffcp+4)": +double: 2 +idouble: 2 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x6.3ffffffffffffffffffffffffep+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x6.4000000000000008p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x6.4000000000004p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x6.400008p+4)": +double: 1 +idouble: 1 +Test "tgamma (-0x6.8p+0)": +float: 1 +ifloat: 1 +Test "tgamma (-0x6.fffff8p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "tgamma (-0x6.fffff8p0)": double: 2 float: 1 @@ -6823,6 +10973,11 @@ idouble: 2 ifloat: 1 ildouble: 1 ldouble: 1 +Test "tgamma (-0x6.ffffffffffffcp+0)": +double: 4 +idouble: 4 +ildouble: 2 +ldouble: 2 Test "tgamma (-0x6.ffffffffffffcp0)": double: 4 idouble: 4 @@ -6841,37 +10996,104 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "tgamma (-0x7.0000000000004p+0)": +double: 3 +idouble: 3 +ildouble: 1 +ldouble: 1 Test "tgamma (-0x7.0000000000004p0)": double: 3 idouble: 3 ildouble: 2 ldouble: 2 +Test "tgamma (-0x7.000008p+0)": +double: 1 +idouble: 1 Test "tgamma (-0x7.000008p0)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (-0x7.8p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "tgamma (-0x7.fffff8p+0)": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 Test "tgamma (-0x7.fffff8p0)": double: 3 float: 1 idouble: 3 ifloat: 1 +Test "tgamma (-0x7.ffffffffffffcp+0)": +double: 3 +idouble: 3 +ildouble: 3 +ldouble: 3 Test "tgamma (-0x7.ffffffffffffcp0)": double: 3 idouble: 3 ildouble: 3 ldouble: 3 +Test "tgamma (-0x7.fffffffffffffff8p+0)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x8.00000000000000000000000004p+0)": +ildouble: 1 +ldouble: 1 Test "tgamma (-0x8.00000000000000000000000004p0)": ildouble: 1 ldouble: 1 +Test "tgamma (-0x8.00001p+0)": +double: 2 +idouble: 2 Test "tgamma (-0x8.00001p0)": double: 2 idouble: 2 +Test "tgamma (-0x8.8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (-0x8p-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (-0x9.5ffffffffffffffp+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x9.600000000000001p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (-0x9.6000000000008p+4)": +double: 1 +idouble: 1 +Test "tgamma (-0x9.60001p+4)": +double: 1 +idouble: 1 +Test "tgamma (-0x9.8p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +Test "tgamma (-0x9.ffffffffffff8p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 Test "tgamma (-0x9.ffffffffffff8p0)": double: 1 idouble: 1 ildouble: 2 ldouble: 2 +Test "tgamma (-0x9.fffffp+0)": +ildouble: 1 +ldouble: 1 Test "tgamma (-0x9.fffffp0)": float: 1 ifloat: 1 @@ -6880,11 +11102,27 @@ ldouble: 1 Test "tgamma (-0x96.000000000008p0)": double: 1 idouble: 1 +Test "tgamma (-0xa.00001p+0)": +double: 1 +idouble: 1 +ildouble: 2 +ldouble: 2 Test "tgamma (-0xa.00001p0)": double: 1 idouble: 1 ildouble: 2 ldouble: 2 +Test "tgamma (-0xa.c0001p+4)": +double: 1 +idouble: 1 +Test "tgamma (-0xf.ffffffffffff8p-4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (-0xf.fffffp-4)": +float: 1 +ifloat: 1 Test "tgamma (-2.5)": double: 1 float: 2 @@ -6933,9 +11171,33 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (0x1.28p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (0x1.38p+4)": +double: 2 +idouble: 2 +Test "tgamma (0x1.78p+4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (0x1.d8p+4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (0x1.fffffep+0)": +float: 1 +ifloat: 1 Test "tgamma (0x1.fffffep0)": float: 1 ifloat: 1 +Test "tgamma (0x1.fffffffffffffp+0)": +double: 1 +idouble: 1 Test "tgamma (0x1.fffffffffffffp0)": double: 1 idouble: 1 @@ -6945,79 +11207,210 @@ ifloat: 1 Test "tgamma (0x1p-53)": double: 1 idouble: 1 +Test "tgamma (0x2.18p+4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (0x2.28p+4)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "tgamma (0x2.30a43cp+4)": double: 1 float: 2 idouble: 1 ifloat: 2 +Test "tgamma (0x2.8p+0)": +float: 2 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "tgamma (0x2.fffffcp+0)": +float: 3 +ifloat: 3 Test "tgamma (0x2.fffffcp0)": float: 3 ifloat: 3 +Test "tgamma (0x3.8p+0)": +float: 2 +ifloat: 2 +Test "tgamma (0x3.fffffcp+0)": +float: 1 +ifloat: 1 Test "tgamma (0x3.fffffcp0)": float: 1 ifloat: 1 +Test "tgamma (0x3.ffffffffffffep+0)": +double: 1 +idouble: 1 Test "tgamma (0x3.ffffffffffffep0)": double: 1 idouble: 1 +Test "tgamma (0x3p+0)": +float: 1 +ifloat: 1 +Test "tgamma (0x4.0000000000004p+0)": +double: 1 +idouble: 1 Test "tgamma (0x4.0000000000004p0)": double: 1 idouble: 1 +Test "tgamma (0x4.8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (0x4.fffff8p+0)": +float: 1 +ifloat: 1 Test "tgamma (0x4.fffff8p0)": float: 1 ifloat: 1 +Test "tgamma (0x4.ffffffffffffcp+0)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "tgamma (0x4.ffffffffffffcp0)": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "tgamma (0x4p+0)": +float: 1 +ifloat: 1 +Test "tgamma (0x5.0000000000004p+0)": +double: 1 +idouble: 1 Test "tgamma (0x5.0000000000004p0)": double: 1 idouble: 1 +Test "tgamma (0x5.000008p+0)": +float: 3 +ifloat: 3 Test "tgamma (0x5.000008p0)": float: 3 ifloat: 3 +Test "tgamma (0x5.fffff8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "tgamma (0x5.fffff8p0)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (0x6.0000000000004p+0)": +double: 1 +idouble: 1 Test "tgamma (0x6.0000000000004p0)": double: 1 idouble: 1 +Test "tgamma (0x6.000008p+0)": +float: 2 +ifloat: 2 Test "tgamma (0x6.000008p0)": float: 2 ifloat: 2 +Test "tgamma (0x6.8p+0)": +float: 1 +ifloat: 1 +Test "tgamma (0x6.fffff8p+0)": +double: 1 +idouble: 1 Test "tgamma (0x6.fffff8p0)": double: 1 idouble: 1 +Test "tgamma (0x6.ffffffffffffcp+0)": +double: 4 +idouble: 4 +ildouble: 1 +ldouble: 1 Test "tgamma (0x6.ffffffffffffcp0)": double: 4 idouble: 4 ildouble: 1 ldouble: 1 +Test "tgamma (0x6p+0)": +float: 1 +ifloat: 1 +Test "tgamma (0x7.0000000000004p+0)": +double: 4 +idouble: 4 Test "tgamma (0x7.0000000000004p0)": double: 4 idouble: 4 ildouble: 1 ldouble: 1 +Test "tgamma (0x7.000008p+0)": +double: 1 +idouble: 1 Test "tgamma (0x7.000008p0)": double: 1 float: 1 idouble: 1 ifloat: 1 +Test "tgamma (0x7.8p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (0x7.fffff8p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 Test "tgamma (0x7.fffff8p0)": double: 2 float: 1 idouble: 2 ifloat: 1 +Test "tgamma (0x7.ffffffffffffcp+0)": +double: 2 +idouble: 2 +ildouble: 1 +ldouble: 1 Test "tgamma (0x7.ffffffffffffcp0)": double: 2 idouble: 2 ildouble: 1 ldouble: 1 +Test "tgamma (0x7p+0)": +double: 1 +idouble: 1 +Test "tgamma (0x8.00001p+0)": +double: 2 +idouble: 2 Test "tgamma (0x8.00001p0)": double: 2 idouble: 2 +Test "tgamma (0x8.8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (0x8p+0)": +double: 1 +idouble: 1 +Test "tgamma (0x8p-4)": +float: 1 +ifloat: 1 +Test "tgamma (0x8p-56)": +double: 1 +idouble: 1 +Test "tgamma (0x9.8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "tgamma (0x9p+0)": +double: 1 +idouble: 1 Test "tgamma (0xa.b9fd72b0fb238p+4)": double: 1 idouble: 1 @@ -7026,6 +11419,22 @@ ldouble: 2 Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f4p+4)": ildouble: 1 ldouble: 1 +Test "tgamma (0xa.b9fd7p+4)": +double: 2 +idouble: 2 +ildouble: 2 +ldouble: 2 +Test "tgamma (0xap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "tgamma (0xb.333333333333333p-4)": +ildouble: 1 +ldouble: 1 +Test "tgamma (0xb.33334p-4)": +ildouble: 1 +ldouble: 1 Test "tgamma (10)": double: 1 float: 1 @@ -7132,11 +11541,23 @@ ldouble: 1 Test "y0 (0x1.3ffp+74)": double: 1 idouble: 1 +Test "y0 (0x1.8p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 Test "y0 (0x1.ff00000000002p+840)": double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "y0 (0x1p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "y0 (0x1p-100)": ildouble: 1 ldouble: 1 @@ -7172,6 +11593,60 @@ idouble: 1 Test "y0 (0x1p1023)": ildouble: 1 ldouble: 1 +Test "y0 (0x2p+0)": +double: 1 +idouble: 1 +Test "y0 (0x2p-4)": +ildouble: 1 +ldouble: 1 +Test "y0 (0x4.ffcp+72)": +double: 1 +idouble: 1 +Test "y0 (0x4p-112)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "y0 (0x4p-32)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "y0 (0x4p-72)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "y0 (0x8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "y0 (0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "y0 (0xap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "y0 (0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "y0 (0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "y0 (0xf.fffffp+124)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "y0 (1.0)": double: 2 float: 1 @@ -7216,6 +11691,9 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "y1 (0x1.8p+0)": +float: 1 +ifloat: 1 Test "y1 (0x1p-10)": double: 1 idouble: 1 @@ -7225,6 +11703,47 @@ ldouble: 1 Test "y1 (0x1p1023)": ildouble: 1 ldouble: 1 +Test "y1 (0x2.002000002p+592)": +ildouble: 2 +ldouble: 2 +Test "y1 (0x2p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "y1 (0x2p-4)": +double: 1 +idouble: 1 +Test "y1 (0x4p-12)": +double: 1 +idouble: 1 +Test "y1 (0x8p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "y1 (0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "y1 (0x9.3f102p+96)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "y1 (0xap+0)": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "y1 (0xf.fffffp+124)": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 Test "y1 (1.5)": float: 1 ifloat: 1 @@ -7249,12 +11768,48 @@ ildouble: 1 ldouble: 1 # yn +Test "yn (-10, 0x1p+0)": +float: 2 +ifloat: 2 +Test "yn (-10, 1.0)": +float: 2 +ifloat: 2 Test "yn (0, 0.125)": ildouble: 1 ldouble: 1 Test "yn (0, 0.75)": ildouble: 1 ldouble: 1 +Test "yn (0, 0x1.8p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "yn (0, 0x1p+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "yn (0, 0x2p+0)": +double: 1 +idouble: 1 +Test "yn (0, 0x2p-4)": +ildouble: 1 +ldouble: 1 +Test "yn (0, 0x8p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "yn (0, 0xap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "yn (0, 1.0)": double: 2 float: 1 @@ -7287,6 +11842,31 @@ ldouble: 1 Test "yn (1, 0.125)": double: 1 idouble: 1 +Test "yn (1, 0x1.8p+0)": +float: 1 +ifloat: 1 +Test "yn (1, 0x2p+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "yn (1, 0x2p-4)": +double: 1 +idouble: 1 +Test "yn (1, 0x8p+0)": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "yn (1, 0xap+0)": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 2 +ldouble: 2 Test "yn (1, 1.5)": float: 2 ifloat: 2 @@ -7317,6 +11897,29 @@ double: 1 float: 2 idouble: 1 ifloat: 2 +Test "yn (10, 0x1p+0)": +float: 2 +ifloat: 2 +Test "yn (10, 0x2p+0)": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "yn (10, 0x2p-4)": +double: 1 +idouble: 1 +Test "yn (10, 0xap+0)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "yn (10, 0xcp-4)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "yn (10, 1.0)": float: 2 ifloat: 2 @@ -7334,12 +11937,66 @@ idouble: 3 ifloat: 1 ildouble: 1 ldouble: 1 +Test "yn (2, 0x1.ffff62p+99)": +double: 1 +idouble: 1 +Test "yn (2, 0x1p1023)": +ildouble: 1 +ldouble: 1 +Test "yn (2, 0x1p127)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "yn (2, 0x8p+1020)": +ildouble: 1 +ldouble: 1 +Test "yn (2, 0x8p+124)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "yn (2, 0xf.fffb1p+96)": +double: 1 +idouble: 1 +Test "yn (2, 0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "yn (2, 0xf.ffffffffffffbffffffffffffcp+1020)": +ildouble: 1 +ldouble: 1 +Test "yn (2, 0xf.fffffp+124)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "yn (3, 0.125)": double: 1 idouble: 1 Test "yn (3, 0.75)": float: 1 ifloat: 1 +Test "yn (3, 0x2p+0)": +double: 1 +idouble: 1 +Test "yn (3, 0x2p-4)": +double: 1 +idouble: 1 +Test "yn (3, 0xap+0)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 Test "yn (3, 10.0)": double: 1 float: 1 @@ -7361,8 +12018,8 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 3 +ldouble: 3 Function: "acos_tonearest": ildouble: 1 @@ -7373,10 +12030,12 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 3 +ldouble: 3 Function: "acos_upward": +double: 1 +idouble: 1 ildouble: 2 ldouble: 2 @@ -7393,12 +12052,12 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "asin_tonearest": -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "asin_towardzero": double: 1 @@ -7409,10 +12068,12 @@ ildouble: 1 ldouble: 1 Function: "asin_upward": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "asinh": ildouble: 1 @@ -7421,8 +12082,8 @@ ldouble: 1 Function: "atan2": float: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "atanh": float: 1 @@ -7493,8 +12154,6 @@ ldouble: 1 Function: Real part of "catan": float: 4 ifloat: 4 -ildouble: 1 -ldouble: 1 Function: Imaginary part of "catan": double: 1 @@ -7515,14 +12174,12 @@ ldouble: 1 Function: Imaginary part of "catanh": float: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 Function: "cbrt": double: 1 +float: 1 idouble: 1 -ildouble: 1 -ldouble: 1 +ifloat: 1 Function: Real part of "ccos": double: 1 @@ -7613,50 +12270,66 @@ ildouble: 2 ldouble: 2 Function: "cos_downward": -float: 1 -ifloat: 1 -ildouble: 2 -ldouble: 2 +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +ildouble: 3 +ldouble: 3 Function: "cos_tonearest": float: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "cos_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 2 -ldouble: 2 +ildouble: 3 +ldouble: 3 Function: "cos_upward": +double: 1 float: 2 +idouble: 1 ifloat: 2 -ildouble: 1 -ldouble: 1 +ildouble: 4 +ldouble: 4 Function: "cosh": +double: 1 +idouble: 1 ildouble: 1 ldouble: 1 Function: "cosh_downward": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "cosh_tonearest": +double: 1 +idouble: 1 ildouble: 1 ldouble: 1 Function: "cosh_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "cosh_upward": +double: 1 +idouble: 1 ildouble: 2 ldouble: 2 @@ -7873,8 +12546,8 @@ double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "exp": ildouble: 1 @@ -7893,7 +12566,9 @@ ildouble: 2 ldouble: 2 Function: "exp_downward": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -7903,13 +12578,17 @@ ildouble: 1 ldouble: 1 Function: "exp_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 Function: "exp_upward": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 @@ -7922,13 +12601,41 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "expm1_downward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "expm1_tonearest": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +Function: "expm1_towardzero": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "expm1_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "gamma": double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 3 -ldouble: 3 Function: "hypot": double: 1 @@ -7967,10 +12674,10 @@ double: 1 float: 2 idouble: 1 ifloat: 2 -ildouble: 3 -ldouble: 3 Function: "log": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 @@ -8010,6 +12717,12 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "pow_tonearest": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + Function: "pow_towardzero": float: 1 ifloat: 1 @@ -8023,12 +12736,16 @@ ildouble: 1 ldouble: 1 Function: "sin": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: "sin_downward": -float: 1 -ifloat: 1 +double: 1 +float: 2 +idouble: 1 +ifloat: 2 ildouble: 4 ldouble: 4 @@ -8039,13 +12756,17 @@ ildouble: 1 ldouble: 1 Function: "sin_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 -ildouble: 3 -ldouble: 3 +ildouble: 4 +ldouble: 4 Function: "sin_upward": +double: 1 float: 2 +idouble: 1 ifloat: 2 ildouble: 3 ldouble: 3 @@ -8063,7 +12784,9 @@ ildouble: 1 ldouble: 1 Function: "sinh_downward": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 2 ldouble: 2 @@ -8073,18 +12796,42 @@ ildouble: 1 ldouble: 1 Function: "sinh_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 2 ldouble: 2 Function: "sinh_upward": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Function: "sqrt": double: 1 idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: "sqrt_downward": +ildouble: 1 +ldouble: 1 + +Function: "sqrt_tonearest": +ildouble: 1 +ldouble: 1 + +Function: "sqrt_towardzero": +ildouble: 1 +ldouble: 1 + +Function: "sqrt_upward": +ildouble: 1 +ldouble: 1 Function: "tan": double: 1 @@ -8093,23 +12840,29 @@ ildouble: 2 ldouble: 2 Function: "tan_downward": -float: 1 -ifloat: 1 +double: 1 +float: 2 +idouble: 1 +ifloat: 2 ildouble: 2 ldouble: 2 Function: "tan_tonearest": -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 Function: "tan_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 3 ldouble: 3 Function: "tan_upward": +double: 1 float: 1 +idouble: 1 ifloat: 1 ildouble: 3 ldouble: 3 diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h index 6c00785633..c8833d694f 100644 --- a/sysdeps/powerpc/fpu/math_private.h +++ b/sysdeps/powerpc/fpu/math_private.h @@ -22,6 +22,7 @@ #include <sysdep.h> #include <ldsodefs.h> #include <dl-procinfo.h> +#include <fenv_private.h> #include_next <math_private.h> # if __WORDSIZE == 64 || defined _ARCH_PWR4 diff --git a/sysdeps/powerpc/fpu/s_float_bitwise.h b/sysdeps/powerpc/fpu/s_float_bitwise.h index 8e4adca868..c0a4e56be0 100644 --- a/sysdeps/powerpc/fpu/s_float_bitwise.h +++ b/sysdeps/powerpc/fpu/s_float_bitwise.h @@ -23,18 +23,19 @@ #include <math_private.h> /* Returns (int)(num & 0x7FFFFFF0 == value) */ -static inline -int __float_and_test28 (float num, float value) +static inline int +__float_and_test28 (float num, float value) { float ret; #ifdef _ARCH_PWR7 - vector int mask = (vector int) { - 0x7ffffffe, 0x00000000, 0x00000000, 0x0000000 - }; + union { + int i; + float f; + } mask = { .i = 0x7ffffff0 }; __asm__ ( - /* the 'f' constrain is use on mask because we just need + /* the 'f' constraint is used on mask because we just need * to compare floats, not full vector */ - "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask) + "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f) ); #else int32_t inum; @@ -46,16 +47,17 @@ int __float_and_test28 (float num, float value) } /* Returns (int)(num & 0x7FFFFF00 == value) */ -static inline -int __float_and_test24 (float num, float value) +static inline int +__float_and_test24 (float num, float value) { float ret; #ifdef _ARCH_PWR7 - vector int mask = (vector int) { - 0x7fffffe0, 0x00000000, 0x00000000, 0x0000000 - }; + union { + int i; + float f; + } mask = { .i = 0x7fffff00 }; __asm__ ( - "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask) + "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f) ); #else int32_t inum; @@ -67,16 +69,17 @@ int __float_and_test24 (float num, float value) } /* Returns (float)(num & 0x7F800000) */ -static inline -float __float_and8 (float num) +static inline float +__float_and8 (float num) { float ret; #ifdef _ARCH_PWR7 - vector int mask = (vector int) { - 0x7ff00000, 0x00000000, 0x00000000, 0x00000000 - }; + union { + int i; + float f; + } mask = { .i = 0x7f800000 }; __asm__ ( - "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask) + "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f) ); #else int32_t inum; @@ -88,17 +91,18 @@ float __float_and8 (float num) } /* Returns ((int32_t)(num & 0x7F800000) >> 23) */ -static inline -int32_t __float_get_exp (float num) +static inline int32_t +__float_get_exp (float num) { int32_t inum; #ifdef _ARCH_PWR7 float ret; - vector int mask = (vector int) { - 0x7ff00000, 0x00000000, 0x00000000, 0x00000000 - }; + union { + int i; + float f; + } mask = { .i = 0x7f800000 }; __asm__ ( - "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask) + "xxland %x0,%x1,%x2" : "=f" (ret) : "f" (num), "f" (mask.f) ); GET_FLOAT_WORD(inum, ret); #else diff --git a/sysdeps/powerpc/fpu/s_llround.c b/sysdeps/powerpc/fpu/s_llround.c index 9a01826539..995d0a724a 100644 --- a/sysdeps/powerpc/fpu/s_llround.c +++ b/sysdeps/powerpc/fpu/s_llround.c @@ -19,29 +19,28 @@ #include <math.h> #include <math_ldbl_opt.h> -/* I think that what this routine is supposed to do is round a value - to the nearest integer, with values exactly on the boundary rounded - away from zero. */ -/* This routine relies on (long long)x, when x is out of range of a long long, - clipping to MAX_LLONG or MIN_LLONG. */ +/* Round to the nearest integer, with values exactly on a 0.5 boundary + rounded away from zero, regardless of the current rounding mode. + If (long long)x, when x is out of range of a long long, clips at + LLONG_MAX or LLONG_MIN, then this implementation also clips. */ long long int __llround (double x) { - double xrf; - long long int xr; - xr = (long long int) x; - xrf = (double) xr; + long long xr = (long long) x; + double xrf = (double) xr; + if (x >= 0.0) - if (x - xrf >= 0.5 && x - xrf < 1.0 && x+1 > 0) - return x+1; - else - return x; + { + if (x - xrf >= 0.5) + xr += (long long) ((unsigned long long) xr + 1) > 0; + } else - if (xrf - x >= 0.5 && xrf - x < 1.0 && x-1 < 0) - return x-1; - else - return x; + { + if (xrf - x >= 0.5) + xr -= (long long) ((unsigned long long) xr - 1) < 0; + } + return xr; } weak_alias (__llround, llround) #ifdef NO_LONG_DOUBLE diff --git a/sysdeps/powerpc/fpu/s_llroundf.c b/sysdeps/powerpc/fpu/s_llroundf.c index 07d12adbfb..0935de6624 100644 --- a/sysdeps/powerpc/fpu/s_llroundf.c +++ b/sysdeps/powerpc/fpu/s_llroundf.c @@ -18,28 +18,27 @@ #include <math.h> -/* I think that what this routine is supposed to do is round a value - to the nearest integer, with values exactly on the boundary rounded - away from zero. */ -/* This routine relies on (long long)x, when x is out of range of a long long, - clipping to MAX_LLONG or MIN_LLONG. */ +/* Round to the nearest integer, with values exactly on a 0.5 boundary + rounded away from zero, regardless of the current rounding mode. + If (long long)x, when x is out of range of a long long, clips at + LLONG_MAX or LLONG_MIN, then this implementation also clips. */ long long int __llroundf (float x) { - float xrf; - long long int xr; - xr = (long long int) x; - xrf = (float) xr; + long long xr = (long long) x; + float xrf = (float) xr; + if (x >= 0.0) - if (x - xrf >= 0.5 && x - xrf < 1.0 && x+1 > 0) - return x+1; - else - return x; + { + if (x - xrf >= 0.5) + xr += (long long) ((unsigned long long) xr + 1) > 0; + } else - if (xrf - x >= 0.5 && xrf - x < 1.0 && x-1 < 0) - return x-1; - else - return x; + { + if (xrf - x >= 0.5) + xr -= (long long) ((unsigned long long) xr - 1) < 0; + } + return xr; } weak_alias (__llroundf, llroundf) diff --git a/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c b/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c index feffa6b4ff..cc9b320bfd 100644 --- a/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c +++ b/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c @@ -83,7 +83,7 @@ ElfW(Addr) query_auxv(int type) return 0; } -typedef unsigned long long di_fpscr_t __attribute__ ((__mode__ (__DI__))); +typedef unsigned int di_fpscr_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int si_fpscr_t __attribute__ ((__mode__ (__SI__))); #define _FPSCR_RESERVED 0xfffffff8ffffff04ULL @@ -95,50 +95,51 @@ typedef unsigned int si_fpscr_t __attribute__ ((__mode__ (__SI__))); #define _FPSCR_TEST1_RN 0x0000000000000002ULL /* Macros for accessing the hardware control word on Power6[x]. */ -# define _GET_DI_FPSCR(__fpscr) ({ \ - union { double d; \ - di_fpscr_t fpscr; } \ - tmp __attribute__ ((__aligned__(8))); \ - __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \ - (__fpscr)=tmp.fpscr; \ - tmp.fpscr; }) - -/* We make sure to zero fp0 after we use it in order to prevent stale data +#define _GET_DI_FPSCR(__fpscr) \ + ({union { double d; di_fpscr_t fpscr; } u; \ + register double fr; \ + __asm__ ("mffs %0" : "=f" (fr)); \ + u.d = fr; \ + (__fpscr) = u.fpscr; \ + u.fpscr; \ + }) + +/* We make sure to zero fp after we use it in order to prevent stale data in an fp register from making a test-case pass erroneously. */ -# define _SET_DI_FPSCR(__fpscr) { \ - union { double d; di_fpscr_t fpscr; } \ - tmp __attribute__ ((__aligned__(8))); \ - tmp.fpscr = __fpscr; \ - /* Set the entire 64-bit FPSCR. */ \ - __asm__ ("lfd%U0 0,%0; " \ - ".machine push; " \ - ".machine \"power6\"; " \ - "mtfsf 255,0,1,0; " \ - ".machine pop" : : "m" (tmp.d) : "fr0"); \ - tmp.d = 0; \ - __asm__("lfd%U0 0,%0" : : "m" (tmp.d) : "fr0"); \ -} - -# define _GET_SI_FPSCR(__fpscr) ({ \ - union { double d; \ - si_fpscr_t cw[2]; } \ - tmp __attribute__ ((__aligned__(8))); \ - __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \ - (__fpscr)=tmp.cw[1]; \ - tmp.cw[0]; }) - -/* We make sure to zero fp0 after we use it in order to prevent stale data +# define _SET_DI_FPSCR(__fpscr) \ + { union { double d; di_fpscr_t fpscr; } u; \ + register double fr; \ + u.fpscr = __fpscr; \ + fr = u.d; \ + /* Set the entire 64-bit FPSCR. */ \ + __asm__ (".machine push; " \ + ".machine \"power6\"; " \ + "mtfsf 255,%0,1,0; " \ + ".machine pop" : : "f" (fr)); \ + fr = 0.0; \ + } + +# define _GET_SI_FPSCR(__fpscr) \ + ({union { double d; di_fpscr_t fpscr; } u; \ + register double fr; \ + __asm__ ("mffs %0" : "=f" (fr)); \ + u.d = fr; \ + (__fpscr) = (si_fpscr_t) u.fpscr; \ + (si_fpscr_t) u.fpscr; \ + }) + +/* We make sure to zero fp after we use it in order to prevent stale data in an fp register from making a test-case pass erroneously. */ -# define _SET_SI_FPSCR(__fpscr) { \ - union { double d; si_fpscr_t fpscr[2]; } \ - tmp __attribute__ ((__aligned__(8))); \ - /* More-or-less arbitrary; this is a QNaN. */ \ - tmp.fpscr[0] = 0xFFF80000; \ - tmp.fpscr[1] = __fpscr; \ - __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \ - tmp.d = 0; \ - __asm__("lfd%U0 0,%0" : : "m" (tmp.d) : "fr0"); \ -} +# define _SET_SI_FPSCR(__fpscr) \ + { union { double d; di_fpscr_t fpscr; } u; \ + register double fr; \ + /* More-or-less arbitrary; this is a QNaN. */ \ + u.fpscr = 0xfff80000ULL << 32; \ + u.fpscr |= __fpscr & 0xffffffffULL; \ + fr = u.d; \ + __asm__ ("mtfsf 255,%0" : : "f" (fr)); \ + fr = 0.0; \ + } void prime_special_regs(int which) { diff --git a/sysdeps/powerpc/fpu/w_sqrt.c b/sysdeps/powerpc/fpu/w_sqrt.c deleted file mode 100644 index 70f28dd4df..0000000000 --- a/sysdeps/powerpc/fpu/w_sqrt.c +++ /dev/null @@ -1,48 +0,0 @@ -/* Double-precision floating point square root wrapper. - Copyright (C) 2004-2013 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <math.h> -#include <math_private.h> -#include <fenv_libc.h> -#include <math_ldbl_opt.h> - -double -__sqrt (double x) /* wrapper sqrt */ -{ -#ifdef _IEEE_LIBM - return __ieee754_sqrt (x); -#else - double z; - z = __ieee754_sqrt (x); - if (_LIB_VERSION == _IEEE_ || (x != x)) - return z; - - if (x < 0.0) - return __kernel_standard (x, x, 26); /* sqrt(negative) */ - else - return z; -#endif -} - -weak_alias (__sqrt, sqrt) -#ifdef NO_LONG_DOUBLE - strong_alias (__sqrt, __sqrtl) weak_alias (__sqrt, sqrtl) -#endif -#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0) -compat_symbol (libm, __sqrt, sqrtl, GLIBC_2_0); -#endif diff --git a/sysdeps/powerpc/fpu/w_sqrtf.c b/sysdeps/powerpc/fpu/w_sqrtf.c deleted file mode 100644 index aef8267f08..0000000000 --- a/sysdeps/powerpc/fpu/w_sqrtf.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Single-precision floating point square root wrapper. - Copyright (C) 2004-2013 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <math.h> -#include <math_private.h> -#include <fenv_libc.h> - -#include <sysdep.h> -#include <ldsodefs.h> - -float -__sqrtf (float x) /* wrapper sqrtf */ -{ -#ifdef _IEEE_LIBM - return __ieee754_sqrtf (x); -#else - float z; - z = __ieee754_sqrtf (x); - - if (_LIB_VERSION == _IEEE_ || (x != x)) - return z; - - if (x < (float) 0.0) - /* sqrtf(negative) */ - return (float) __kernel_standard ((double) x, (double) x, 126); - else - return z; -#endif -} - -weak_alias (__sqrtf, sqrtf) |