about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/fpu/e_expl.S4
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps114
-rw-r--r--sysdeps/x86_64/fpu/e_expl.S4
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps122
4 files changed, 227 insertions, 17 deletions
diff --git a/sysdeps/i386/fpu/e_expl.S b/sysdeps/i386/fpu/e_expl.S
index a8a5e70b07..5917f574b1 100644
--- a/sysdeps/i386/fpu/e_expl.S
+++ b/sysdeps/i386/fpu/e_expl.S
@@ -130,7 +130,6 @@ ENTRY(IEEE754_EXPL)
 #endif
 3:	FLDLOG			/* 1  log2(base)      */
 	fmul	%st(1), %st	/* 1  x log2(base)    */
-#ifdef USE_AS_EXPM1L
 	/* Set round-to-nearest temporarily.  */
 	subl	$8, %esp
 	cfi_adjust_cfa_offset (8)
@@ -139,15 +138,12 @@ ENTRY(IEEE754_EXPL)
 	andl	4(%esp), %edx
 	movl	%edx, (%esp)
 	fldcw	(%esp)
-#endif
 	frndint			/* 1  i               */
 	fld	%st(1)		/* 2  x               */
 	frndint			/* 2  xi              */
-#ifdef USE_AS_EXPM1L
 	fldcw	4(%esp)
 	addl	$8, %esp
 	cfi_adjust_cfa_offset (-8)
-#endif
 	fld	%st(1)		/* 3  i               */
 	fldt	MO(c0)		/* 4  c0              */
 	fld	%st(2)		/* 5  xi              */
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index dc53d94b4a..ae0a303d01 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -7095,6 +7095,10 @@ Test "cosh_downward (-0x2.c5e3bp+8)":
 ildouble: 1
 Test "cosh_downward (-0x2.c679d1f73f0fap+8)":
 ildouble: 2
+Test "cosh_downward (-0x2.c679d1f73f0fb624p+8)":
+ildouble: 2
+Test "cosh_downward (-0x2.c679d1f73f0fb628p+8)":
+ildouble: 2
 Test "cosh_downward (-0x2.c679d1f73f0fcp+8)":
 ildouble: 1
 Test "cosh_downward (-0x2.c679dp+8)":
@@ -7181,15 +7185,25 @@ Test "cosh_towardzero (-0x2.c5d37700c6bbp+12)":
 ldouble: 2
 Test "cosh_towardzero (-0x2.c5e3acd2922a6p+8)":
 ildouble: 1
+Test "cosh_towardzero (-0x2.c679d1f73f0fap+8)":
+ildouble: 2
+Test "cosh_towardzero (-0x2.c679d1f73f0fb624p+8)":
+ildouble: 2
+Test "cosh_towardzero (-0x2.c679d1f73f0fb628p+8)":
+ildouble: 2
 Test "cosh_towardzero (-0x2.c679dp+8)":
 double: 1
 ildouble: 1
 Test "cosh_towardzero (-0x5.96a7ep+4)":
 double: 1
+ildouble: 2
 ldouble: 1
 Test "cosh_towardzero (0x1.6p+4)":
 ildouble: 1
 ldouble: 2
+Test "cosh_towardzero (0x1.8p+4)":
+ildouble: 1
+ldouble: 1
 Test "cosh_towardzero (0x2.c5d374p+12)":
 ldouble: 1
 Test "cosh_towardzero (0x2.c5d37700c6bb03a4p+12)":
@@ -7240,6 +7254,11 @@ ildouble: 1
 Test "cosh_upward (-0x2.c679d1f73f0fap+8)":
 double: 1
 ildouble: 1
+Test "cosh_upward (-0x2.c679d1f73f0fb624p+8)":
+ildouble: 1
+Test "cosh_upward (-0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+ldouble: 1
 Test "cosh_upward (-0x2.c679d1f73f0fcp+8)":
 ildouble: 1
 Test "cosh_upward (-0x2p-16384)":
@@ -7292,6 +7311,11 @@ ildouble: 1
 Test "cosh_upward (0x2.c679d1f73f0fap+8)":
 double: 1
 ildouble: 1
+Test "cosh_upward (0x2.c679d1f73f0fb624p+8)":
+ildouble: 1
+Test "cosh_upward (0x2.c679d1f73f0fb628p+8)":
+ildouble: 2
+ldouble: 1
 Test "cosh_upward (0x2.c679d1f73f0fcp+8)":
 ildouble: 1
 Test "cosh_upward (0x2.c679d4p+8)":
@@ -8323,11 +8347,13 @@ Test "Real part of: ctan_towardzero (0x1p+0 + 0x1.63p+8 i)":
 ildouble: 1
 ldouble: 1
 Test "Real part of: ctan_towardzero (0x1p+0 + 0x1.6dp+8 i)":
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 Test "Real part of: ctan_towardzero (0x1p+0 + 0x2.dp+4 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: ctan_towardzero (0x1p+0 + 0x2.fp+4 i)":
 double: 1
 idouble: 1
@@ -8361,6 +8387,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: ctan_towardzero (0xcp-4 + 0x1.4p+0 i)":
+ildouble: 2
+ldouble: 2
 Test "Real part of: ctan_towardzero (0xf.ffffffffffff8p+1020 + 0x1p+0 i)":
 double: 1
 idouble: 1
@@ -9188,8 +9217,8 @@ Test "Imaginary part of: ctanh_towardzero (0x1.63p+8 + 0x1p+0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: ctanh_towardzero (0x1.6dp+8 + 0x1p+0 i)":
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 Test "Imaginary part of: ctanh_towardzero (0x1p+0 + 0x8p+1020 i)":
 double: 1
 idouble: 1
@@ -9235,6 +9264,8 @@ ldouble: 1
 Test "Imaginary part of: ctanh_towardzero (0x2.dp+4 + 0x1p+0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: ctanh_towardzero (0x2.fp+4 + 0x1p+0 i)":
 double: 1
 idouble: 1
@@ -9697,6 +9728,48 @@ Test "exp10 (0xcp-4)":
 ildouble: 1
 ldouble: 1
 
+# exp10_downward
+Test "exp10_downward (0x1.348e45573a1dd72cp+8)":
+ildouble: 2
+ldouble: 2
+Test "exp10_downward (0x3p+0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
+# exp10_tonearest
+Test "exp10_tonearest (0xcp-4)":
+ildouble: 1
+ldouble: 1
+
+# exp10_towardzero
+Test "exp10_towardzero (-0x1p+0)":
+ildouble: 1
+ldouble: 1
+Test "exp10_towardzero (0x1.344p+12)":
+ildouble: 1
+ldouble: 1
+Test "exp10_towardzero (0x3p+0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+
+# exp10_upward
+Test "exp10_upward (0x1.344p+12)":
+ildouble: 1
+ldouble: 1
+Test "exp10_upward (0x3p+0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
 # exp_downward
 Test "exp_downward (0x2.c5cp+8)":
 double: 1
@@ -9788,6 +9861,9 @@ ldouble: 1
 Test "exp_upward (-0x2.e870a7e5e88cp+8)":
 ildouble: 1
 ldouble: 1
+Test "exp_upward (0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+ldouble: 1
 Test "exp_upward (1)":
 double: 1
 float: 1
@@ -14500,7 +14576,7 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 1
+ildouble: 2
 ldouble: 3
 
 Function: "cosh_upward":
@@ -14740,6 +14816,34 @@ Function: "exp10":
 ildouble: 1
 ldouble: 1
 
+Function: "exp10_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
+Function: "exp10_tonearest":
+ildouble: 1
+ldouble: 1
+
+Function: "exp10_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
+Function: "exp10_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
 Function: "exp_downward":
 double: 1
 float: 1
diff --git a/sysdeps/x86_64/fpu/e_expl.S b/sysdeps/x86_64/fpu/e_expl.S
index 1c21f03ddc..36d30c26d3 100644
--- a/sysdeps/x86_64/fpu/e_expl.S
+++ b/sysdeps/x86_64/fpu/e_expl.S
@@ -127,20 +127,16 @@ ENTRY(IEEE754_EXPL)
 #endif
 3:	FLDLOG			/* 1  log2(base)      */
 	fmul	%st(1), %st	/* 1  x log2(base)    */
-#ifdef USE_AS_EXPM1L
 	/* Set round-to-nearest temporarily.  */
 	fstcw	-4(%rsp)
 	movl	$0xf3ff, %edx
 	andl	-4(%rsp), %edx
 	movl	%edx, -8(%rsp)
 	fldcw	-8(%rsp)
-#endif
 	frndint			/* 1  i               */
 	fld	%st(1)		/* 2  x               */
 	frndint			/* 2  xi              */
-#ifdef USE_AS_EXPM1L
 	fldcw	-4(%rsp)
-#endif
 	fld	%st(1)		/* 3  i               */
 	fldt	MO(c0)		/* 4  c0              */
 	fld	%st(2)		/* 5  xi              */
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 6404c74303..9c3b1b769e 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -8125,6 +8125,9 @@ ldouble: 2
 Test "cosh_towardzero (0x1.7p+4)":
 double: 1
 idouble: 1
+Test "cosh_towardzero (0x1.8p+4)":
+ildouble: 1
+ldouble: 1
 Test "cosh_towardzero (0x2.c5d374p+12)":
 ldouble: 1
 Test "cosh_towardzero (0x2.c5d37700c6bb03a4p+12)":
@@ -8180,6 +8183,9 @@ idouble: 1
 Test "cosh_upward (-0x2.c679d1f73f0fap+8)":
 double: 1
 idouble: 1
+Test "cosh_upward (-0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+ldouble: 1
 Test "cosh_upward (-0x2.c679dp+8)":
 double: 1
 idouble: 1
@@ -8215,6 +8221,9 @@ idouble: 1
 Test "cosh_upward (0x2.c679d1f73f0fap+8)":
 double: 1
 idouble: 1
+Test "cosh_upward (0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+ldouble: 1
 Test "cosh_upward (0x2.c679dp+8)":
 double: 1
 idouble: 1
@@ -9312,11 +9321,13 @@ Test "Real part of: ctan_towardzero (0x1p+0 + 0x1.63p+8 i)":
 ildouble: 1
 ldouble: 1
 Test "Real part of: ctan_towardzero (0x1p+0 + 0x1.6dp+8 i)":
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 Test "Real part of: ctan_towardzero (0x1p+0 + 0x2.dp+4 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: ctan_towardzero (0x1p+0 + 0x2.fp+4 i)":
 ildouble: 1
 ldouble: 1
@@ -9352,6 +9363,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: ctan_towardzero (0xcp-4 + 0x1.4p+0 i)":
+ildouble: 2
+ldouble: 2
 Test "Real part of: ctan_towardzero (0xf.ffffffffffff8p+1020 + 0x1p+0 i)":
 double: 2
 idouble: 2
@@ -10342,8 +10356,8 @@ Test "Imaginary part of: ctanh_towardzero (0x1.63p+8 + 0x1p+0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: ctanh_towardzero (0x1.6dp+8 + 0x1p+0 i)":
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 Test "Imaginary part of: ctanh_towardzero (0x1p+0 + 0x8p+1020 i)":
 double: 5
 idouble: 5
@@ -10396,6 +10410,8 @@ ldouble: 1
 Test "Imaginary part of: ctanh_towardzero (0x2.dp+4 + 0x1p+0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: ctanh_towardzero (0x2.fp+4 + 0x1p+0 i)":
 ildouble: 1
 ldouble: 1
@@ -10921,6 +10937,75 @@ Test "exp10 (36)":
 double: 1
 idouble: 1
 
+# exp10_downward
+Test "exp10_downward (0x1.348e45573a1dd72cp+8)":
+ildouble: 2
+ldouble: 2
+Test "exp10_downward (0x2.4p+4)":
+double: 1
+idouble: 1
+Test "exp10_downward (0x3p+0)":
+ildouble: 1
+ldouble: 1
+
+# exp10_tonearest
+Test "exp10_tonearest (-0x1.31p+8)":
+double: 1
+idouble: 1
+Test "exp10_tonearest (-0x1p+0)":
+double: 1
+idouble: 1
+Test "exp10_tonearest (-0x2.4p+4)":
+double: 1
+idouble: 1
+Test "exp10_tonearest (0x2.4p+4)":
+double: 1
+idouble: 1
+Test "exp10_tonearest (0x3p+0)":
+double: 1
+idouble: 1
+Test "exp10_tonearest (0xcp-4)":
+ildouble: 1
+ldouble: 1
+
+# exp10_towardzero
+Test "exp10_towardzero (-0x1p+0)":
+ildouble: 1
+ldouble: 1
+Test "exp10_towardzero (0x1.344p+12)":
+ildouble: 1
+ldouble: 1
+Test "exp10_towardzero (0x2.4p+4)":
+double: 1
+idouble: 1
+
+# exp10_upward
+Test "exp10_upward (-0x1.344p+12)":
+float: 1
+ifloat: 1
+Test "exp10_upward (-0x1.86ap+16)":
+float: 1
+ifloat: 1
+Test "exp10_upward (-0xf.424p+16)":
+float: 1
+ifloat: 1
+Test "exp10_upward (-0xf.fffffp+124)":
+float: 1
+ifloat: 1
+Test "exp10_upward (0x1.344p+12)":
+ildouble: 1
+ldouble: 1
+Test "exp10_upward (0x2.4p+4)":
+double: 1
+idouble: 1
+Test "exp10_upward (0x3p+0)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
 # exp_downward
 Test "exp_downward (0x2.c5cp+8)":
 ildouble: 1
@@ -11057,6 +11142,9 @@ idouble: 1
 Test "exp_upward (0x2.c5cp+8)":
 double: 1
 idouble: 1
+Test "exp_upward (0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+ldouble: 1
 Test "exp_upward (0x3.2p+4)":
 double: 1
 idouble: 1
@@ -16375,6 +16463,32 @@ idouble: 1
 ildouble: 1
 ldouble: 1
 
+Function: "exp10_downward":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
+
+Function: "exp10_tonearest":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
+Function: "exp10_towardzero":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
+Function: "exp10_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
 Function: "exp_downward":
 double: 1
 float: 1