diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/fpu/e_expl.S | 4 | ||||
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 114 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/e_expl.S | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/libm-test-ulps | 122 |
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 |