diff options
author | Andreas Jaeger <aj@suse.de> | 2012-03-15 17:34:24 +0100 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-03-15 17:34:24 +0100 |
commit | ee010c9e952bc68799b4584ec0ee27230109f890 (patch) | |
tree | d6c94d2c0e67311b62595199e725f62bc1ec98dc | |
parent | 8c0247db324000ab1281b3091ab4cdfd167a1c52 (diff) | |
download | glibc-ee010c9e952bc68799b4584ec0ee27230109f890.zip glibc-ee010c9e952bc68799b4584ec0ee27230109f890.tar.gz glibc-ee010c9e952bc68799b4584ec0ee27230109f890.tar.bz2 |
* sysdeps/i386/fpu/s_tanf.S: Delete so that i386 uses the
ieee754/flt-32 implementation for tan.
* math/libm-test.inc (tan_test): Add tests for large input.
* sysdeps/i386/fpu/libm-test-ulps: Update.
-rw-r--r-- | math/libm-test.inc | 13 | ||||
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 18 | ||||
-rw-r--r-- | sysdeps/i386/fpu/s_tanf.S | 55 |
3 files changed, 24 insertions, 62 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc index 760ec6b..ddc8ea5 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -2113,7 +2113,7 @@ cos_test (void) TEST_f_f (cos, 0.75L, 0.731688868873820886311838753000084544L); #ifndef TEST_LDOUBLE - /* Enable for long double once x86 and x86-64 implementation is fixed. */ + /* Enable for long double once x86 and x86-64 implementations are fixed. */ TEST_f_f (cos, 0x1p65, 0.998886220660580136106421721793L); TEST_f_f (cos, -0x1p65, 0.998886220660580136106421721793L); #endif @@ -6396,7 +6396,7 @@ sin_test (void) TEST_f_f (sin, 0.75L, 0.681638760023334166733241952779893935L); #ifndef TEST_LDOUBLE - /* Enable for long double once x86 and x86-64 implementation is fixed. */ + /* Enable for long double once x86 and x86-64 implementations are fixed. */ TEST_f_f (sin, 0x1p65, -0.0471838762123546738051061498057L); TEST_f_f (sin, -0x1p65, 0.0471838762123546738051061498057L); #endif @@ -6576,7 +6576,7 @@ sincos_test (void) TEST_extra (sincos, 0.75L, 0.681638760023334166733241952779893935L, 0.731688868873820886311838753000084544L); #ifndef TEST_LDOUBLE - /* Enable for long double once x86 and x86-64 implementation is fixed. */ + /* Enable for long double once x86 and x86-64 implementations are fixed. */ TEST_extra (sincos, 0x1p65, -0.0471838762123546738051061498057L, 0.998886220660580136106421721793L); TEST_extra (sincos, -0x1p65, 0.0471838762123546738051061498057L, 0.998886220660580136106421721793L); #endif @@ -6784,6 +6784,13 @@ tan_test (void) TEST_f_f (tan, M_PI_4l, 1); TEST_f_f (tan, 0.75L, 0.931596459944072461165202756573936428L); +#ifdef TEST_FLOAT + /* Enable for double and long double once x86 and x86-64 + implementations are fixed. */ + TEST_f_f (tan, 0x1p65, -0.04723648723590479467984142193L); + TEST_f_f (tan, -0x1p65, 0.04723648723590479467984142193L); +#endif + END (tan); } diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 46caf8b..73fc9a9 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -1518,14 +1518,16 @@ ldouble: 7 # tan Test "tan (pi/4) == 1": double: 1 +float: 1 idouble: 1 +ifloat: 1 # tan_downward Test "tan_downward (1) == 1.5574077246549022305069748074583601730873": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 Test "tan_downward (10) == 0.6483608274590866712591249330098086768169": float: 1 ifloat: 1 @@ -1569,6 +1571,8 @@ Test "tan_tonearest (1) == 1.5574077246549022305069748074583601730873": ildouble: 1 ldouble: 1 Test "tan_tonearest (2) == -2.1850398632615189916433061023136825434320": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312": @@ -1629,6 +1633,8 @@ ldouble: 1 # tan_upward Test "tan_upward (1) == 1.5574077246549022305069748074583601730873": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 Test "tan_upward (10) == 0.6483608274590866712591249330098086768169": @@ -2334,17 +2340,21 @@ ldouble: 27 Function: "tan": double: 1 +float: 1 idouble: 1 +ifloat: 1 Function: "tan_downward": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 Function: "tan_tonearest": +float: 1 +ifloat: 1 ildouble: 1 ldouble: 1 diff --git a/sysdeps/i386/fpu/s_tanf.S b/sysdeps/i386/fpu/s_tanf.S deleted file mode 100644 index 74bc22f..0000000 --- a/sysdeps/i386/fpu/s_tanf.S +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Written by J.T. Conklin <jtc@netbsd.org>. - * Fixed errno handling by Ulrich Drepper <drepper@redhat.com>. - * Public domain. - */ - -#define __need_Emath -#include <bits/errno.h> -#include <machine/asm.h> - -RCSID("$NetBSD: s_tanf.S,v 1.3 1995/05/09 00:31:09 jtc Exp $") - -ENTRY(__tanf) - flds 4(%esp) - fxam - fstsw %ax - movb $0x45, %dh - andb %ah, %dh - cmpb $0x05, %dh - je 3f -4: fptan - fnstsw %ax - testl $0x400,%eax - jnz 1f - fstp %st(0) - ret -1: fldpi - fadd %st(0) - fxch %st(1) -2: fprem1 - fstsw %ax - testl $0x400,%eax - jnz 2b - fstp %st(1) - fptan - fstp %st(0) - ret -3: -#ifdef PIC - pushl %ebx - cfi_adjust_cfa_offset (4) - cfi_rel_offset (ebx, 0) - LOAD_PIC_REG (bx) - call __errno_location@PLT - movl $EDOM, (%eax) - popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) -#else - call __errno_location@PLT - movl $EDOM, (%eax) -#endif - jmp 4b -END (__tanf) -weak_alias (__tanf, tanf) |