update libm-test-ulps for new exp

Message ID 4c570272-db39-aa9d-664b-b6e32402f448@arm.com
State New, archived
Headers

Commit Message

Szabolcs Nagy July 12, 2018, 3:52 p.m. UTC
  Update error bounds for the new exp implementation on alpha, hppa,
m68k/coldfire, microblaze, mips/mips32, mips/mips64, nios2, powerpc,
riscv/nofpu, riscv/rv64, s390, sh and sparc.  Only non-nearest
rounding ulp bounds increased.  Did not run the math tests on real
hardware, but used the following ULP bounds to generate the new files:

Function: Imaginary part of "ccos_downward":
double: 3
idouble: 3
Function: Imaginary part of "ccos_towardzero":
double: 3
idouble: 3
Function: Real part of "ccosh_downward":
double: 2
idouble: 2
Function: Imaginary part of "ccosh_downward":
double: 3
idouble: 3
Function: Real part of "ccosh_towardzero":
double: 2
idouble: 2
Function: Imaginary part of "ccosh_towardzero":
double: 3
idouble: 3
Function: Real part of "cexp_downward":
double: 2
idouble: 2
Function: Imaginary part of "cexp_downward":
double: 3
idouble: 3
Function: Real part of "cexp_towardzero":
double: 2
idouble: 2
Function: Imaginary part of "cexp_towardzero":
double: 3
idouble: 3
Function: Imaginary part of "cexp_upward":
double: 3
idouble: 3
Function: "cosh_downward":
double: 2
idouble: 2
Function: "cosh_towardzero":
double: 2
idouble: 2
Function: "cosh_upward":
double: 2
idouble: 2
Function: Real part of "cpow_downward":
double: 5
idouble: 5
Function: Real part of "cpow_towardzero":
double: 5
idouble: 5
Function: Real part of "csin_downward":
double: 3
idouble: 3
Function: Real part of "csin_towardzero":
double: 3
idouble: 3
Function: Imaginary part of "csinh_downward":
double: 3
idouble: 3
Function: Imaginary part of "csinh_towardzero":
double: 3
idouble: 3
Function: "erfc_downward":
double: 4
idouble: 4
Function: "erfc_upward":
double: 4
idouble: 4
Function: "exp10_downward":
double: 3
idouble: 3
Function: "exp10_towardzero":
double: 3
idouble: 3

2018-07-12  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* sysdeps/alpha/fpu/libm-test-ulps: Update.
	* sysdeps/hppa/fpu/libm-test-ulps: Update.
	* sysdeps/m68k/coldfire/fpu/libm-test-ulps: Update.
	* sysdeps/microblaze/libm-test-ulps: Update.
	* sysdeps/mips/mips32/libm-test-ulps: Update.
	* sysdeps/mips/mips64/libm-test-ulps: Update.
	* sysdeps/nios2/libm-test-ulps: Update.
	* sysdeps/powerpc/nofpu/libm-test-ulps: Update.
	* sysdeps/riscv/nofpu/libm-test-ulps: Update.
	* sysdeps/riscv/rv64/rvd/libm-test-ulps: Update.
	* sysdeps/s390/fpu/libm-test-ulps: Update.
	* sysdeps/sh/libm-test-ulps: Update.
	* sysdeps/sparc/fpu/libm-test-ulps: Update.
  

Comments

Joseph Myers July 18, 2018, 5:25 p.m. UTC | #1
On Thu, 12 Jul 2018, Szabolcs Nagy wrote:

> Update error bounds for the new exp implementation on alpha, hppa,
> m68k/coldfire, microblaze, mips/mips32, mips/mips64, nios2, powerpc,
> riscv/nofpu, riscv/rv64, s390, sh and sparc.  Only non-nearest
> rounding ulp bounds increased.  Did not run the math tests on real
> hardware, but used the following ULP bounds to generate the new files:

This is adding ulps for non-to-nearest tests on some architectures that 
only support round-to-nearest and so have no such ulps in their existing 
files.

(I am generically dubious of such an update not based on actually running 
tests on the architectures involved - there can be architecture variations 
because of differences in e.g. whether multiply and add get fused - but 
adding ulps for tests that would not run on those architectures is 
definitely wrong.)
  
Szabolcs Nagy July 19, 2018, 9:15 a.m. UTC | #2
On 18/07/18 18:25, Joseph Myers wrote:
> On Thu, 12 Jul 2018, Szabolcs Nagy wrote:
> 
>> Update error bounds for the new exp implementation on alpha, hppa,
>> m68k/coldfire, microblaze, mips/mips32, mips/mips64, nios2, powerpc,
>> riscv/nofpu, riscv/rv64, s390, sh and sparc.  Only non-nearest
>> rounding ulp bounds increased.  Did not run the math tests on real
>> hardware, but used the following ULP bounds to generate the new files:
> 
> This is adding ulps for non-to-nearest tests on some architectures that
> only support round-to-nearest and so have no such ulps in their existing
> files.
> 
> (I am generically dubious of such an update not based on actually running
> tests on the architectures involved - there can be architecture variations
> because of differences in e.g. whether multiply and add get fused - but
> adding ulps for tests that would not run on those architectures is
> definitely wrong.)
> 

i created this patch in case the changes get accepted late
so there is no time for maintainers to update the ulp file.
i agree that this is not good practice.

the numbers are upper bounds so max(fma-ulp,nofma-ulp) was
used for all targets.

in the long term i'd prefer if there was a generic ulp error
file and a target could just say it uses the generic bounds
(probably per function), so if a generic implementation is
changed, less ulp modifications are needed (targets may still
need to test in case of variation in target behaviour but
most of the time i'd expect the same bound to work for all,
if some target wants its own implementation then the burden
of maintaining separate ulp bounds is on that target)
  
Joseph Myers July 19, 2018, 5:03 p.m. UTC | #3
On Thu, 19 Jul 2018, Szabolcs Nagy wrote:

> in the long term i'd prefer if there was a generic ulp error
> file and a target could just say it uses the generic bounds

That runs into e.g. different long double formats (so you'd need ulps 
files to specify format names, not "ldouble", which is a good idea anyway, 
and then you'd need to select appropriate files depending on long double 
format - and you don't really want to duplicate the sysdeps etc. logic 
that selects long double formats, but you also have the tables of ulps 
generated for the manual, which does not depend on the glibc configuration 
and does not know what configurations use what sysdeps directories, so 
maybe the tables in the manual would also need rearranging somehow to have 
generic and architecture-specific ulps).
  
Wilco Dijkstra July 19, 2018, 5:14 p.m. UTC | #4
Joseph Myers wrote:

> That runs into e.g. different long double formats (so you'd need ulps 
> files to specify format names, not "ldouble", which is a good idea anyway, 
> and then you'd need to select appropriate files depending on long double 
> format - and you don't really want to duplicate the sysdeps etc. logic 
> that selects long double formats, but you also have the tables of ulps 
> generated for the manual, which does not depend on the glibc configuration 
> and does not know what configurations use what sysdeps directories, so 
> maybe the tables in the manual would also need rearranging somehow to have 
> generic and architecture-specific ulps).

Would it be feasible to include a generic ulp file which sets the expected ulps into the 
target ulp files that add or override such settings? That way most ulp files could be 
significantly reduced and only targets with special formats may need to have more 
entries. Also this would make it clearer when there are anomalies and possible
ulp errors that need to be fixed.

Wilco
  
Joseph Myers July 19, 2018, 5:22 p.m. UTC | #5
On Thu, 19 Jul 2018, Wilco Dijkstra wrote:

> Would it be feasible to include a generic ulp file which sets the 
> expected ulps into the target ulp files that add or override such 
> settings? That way most ulp files could be significantly reduced and 
> only targets with special formats may need to have more entries. Also 
> this would make it clearer when there are anomalies and possible ulp 
> errors that need to be fixed.

One could construct various such schemes, yes, at least for float and 
double ulps (but being able to share ldbl-128 ulps would be a good idea as 
well, including the same ulps being used for long double on some platforms 
and _Float128 on others, it's not as if there are architecture-specific 
ldbl-128 functions beyond fully-determined ones such as sqrtl and fmal - 
though there are architecture variations in whether multiply and add might 
get fused for float128).

I'd suggest a requirement for any such scheme should be code sharing 
between ulps file parsing for libm tests (gen-libm-test.pl) and the manual 
(libm-err-tab.pl).  We probably want to finish getting consensus on the 
use of Python to replace Perl (and possibly awk) in the build first.
  

Patch

diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps
index 12a6127ddf..27e81b53d1 100644
--- a/sysdeps/alpha/fpu/libm-test-ulps
+++ b/sysdeps/alpha/fpu/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -728,9 +728,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -768,33 +768,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1044,25 +1044,25 @@  ildouble: 1
 ldouble: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 3
@@ -1082,9 +1082,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 2
+double: 5
 float: 4
-idouble: 2
+idouble: 5
 ifloat: 4
 ildouble: 6
 ldouble: 6
@@ -1098,9 +1098,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
-double: 2
+double: 5
 float: 4
-idouble: 2
+idouble: 5
 ifloat: 4
 ildouble: 6
 ldouble: 6
@@ -1142,9 +1142,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1158,9 +1158,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1212,9 +1212,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1228,9 +1228,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1520,17 +1520,17 @@  ildouble: 2
 ldouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
diff --git a/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps
index d0c4dea001..2c61a7ae91 100644
--- a/sysdeps/hppa/fpu/libm-test-ulps
+++ b/sysdeps/hppa/fpu/libm-test-ulps
@@ -544,9 +544,9 @@  idouble: 1
 ifloat: 1
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccos_towardzero":
@@ -556,9 +556,9 @@  idouble: 1
 ifloat: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccos_upward":
@@ -588,27 +588,27 @@  idouble: 1
 ifloat: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccosh_upward":
@@ -636,27 +636,27 @@  idouble: 1
 ifloat: 2
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 
 Function: Real part of "cexp_upward":
@@ -666,9 +666,9 @@  idouble: 1
 ifloat: 2
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 
 Function: Real part of "clog":
@@ -800,21 +800,21 @@  idouble: 1
 ifloat: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Real part of "cpow":
@@ -834,9 +834,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 
 Function: Imaginary part of "cpow_downward":
@@ -846,9 +846,9 @@  idouble: 2
 ifloat: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 
 Function: Imaginary part of "cpow_towardzero":
@@ -876,9 +876,9 @@  idouble: 1
 ifloat: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Imaginary part of "csin_downward":
@@ -888,9 +888,9 @@  idouble: 1
 ifloat: 2
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Imaginary part of "csin_towardzero":
@@ -930,9 +930,9 @@  idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "csinh_towardzero":
@@ -942,9 +942,9 @@  idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "csinh_upward":
@@ -1172,15 +1172,15 @@  ildouble: 6
 ldouble: 6
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 
 Function: "exp10_upward":
diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
index fad7f8f068..6b93655392 100644
--- a/sysdeps/m68k/coldfire/fpu/libm-test-ulps
+++ b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
@@ -55,6 +55,14 @@  Function: Imaginary part of "ccos":
 float: 1
 ifloat: 1
 
+Function: Imaginary part of "ccos_downward":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "ccos_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "ccosh":
 double: 1
 float: 1
@@ -65,6 +73,22 @@  Function: Imaginary part of "ccosh":
 float: 1
 ifloat: 1
 
+Function: Real part of "ccosh_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "ccosh_towardzero":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "cexp":
 float: 1
 ifloat: 1
@@ -73,6 +97,26 @@  Function: Imaginary part of "cexp":
 float: 1
 ifloat: 1
 
+Function: Real part of "cexp_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "cexp_towardzero":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_towardzero":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "cexp_upward":
+double: 3
+idouble: 3
+
 Function: Real part of "clog":
 float: 1
 ifloat: 1
@@ -93,6 +137,18 @@  float: 1
 idouble: 2
 ifloat: 1
 
+Function: "cosh_downward":
+double: 2
+idouble: 2
+
+Function: "cosh_towardzero":
+double: 2
+idouble: 2
+
+Function: "cosh_upward":
+double: 2
+idouble: 2
+
 Function: Real part of "cpow":
 double: 2
 float: 4
@@ -105,6 +161,22 @@  float: 2
 idouble: 2
 ifloat: 2
 
+Function: Real part of "cpow_downward":
+double: 5
+idouble: 5
+
+Function: Real part of "cpow_towardzero":
+double: 5
+idouble: 5
+
+Function: Real part of "csin_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "csin_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "csinh":
 float: 1
 ifloat: 1
@@ -115,6 +187,14 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "csinh_downward":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "csinh_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "csqrt":
 float: 1
 ifloat: 1
@@ -141,12 +221,28 @@  Function: "erfc":
 double: 1
 idouble: 1
 
+Function: "erfc_downward":
+double: 4
+idouble: 4
+
+Function: "erfc_upward":
+double: 4
+idouble: 4
+
 Function: "exp10":
 double: 6
 float: 2
 idouble: 6
 ifloat: 2
 
+Function: "exp10_downward":
+double: 3
+idouble: 3
+
+Function: "exp10_towardzero":
+double: 3
+idouble: 3
+
 Function: "expm1":
 double: 1
 float: 1
diff --git a/sysdeps/microblaze/libm-test-ulps b/sysdeps/microblaze/libm-test-ulps
index e4b4d4e490..f3fc2325ad 100644
--- a/sysdeps/microblaze/libm-test-ulps
+++ b/sysdeps/microblaze/libm-test-ulps
@@ -133,6 +133,14 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "ccos_downward":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "ccos_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "ccosh":
 double: 1
 float: 1
@@ -145,6 +153,22 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Real part of "ccosh_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "ccosh_towardzero":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "cexp":
 double: 2
 float: 1
@@ -157,6 +181,26 @@  float: 2
 idouble: 1
 ifloat: 2
 
+Function: Real part of "cexp_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "cexp_towardzero":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_towardzero":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "cexp_upward":
+double: 3
+idouble: 3
+
 Function: Real part of "clog":
 double: 3
 float: 3
@@ -189,6 +233,18 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: "cosh_downward":
+double: 2
+idouble: 2
+
+Function: "cosh_towardzero":
+double: 2
+idouble: 2
+
+Function: "cosh_upward":
+double: 2
+idouble: 2
+
 Function: Real part of "cpow":
 double: 2
 float: 4
@@ -199,12 +255,28 @@  Function: Imaginary part of "cpow":
 float: 2
 ifloat: 2
 
+Function: Real part of "cpow_downward":
+double: 5
+idouble: 5
+
+Function: Real part of "cpow_towardzero":
+double: 5
+idouble: 5
+
 Function: Real part of "csin":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 
+Function: Real part of "csin_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "csin_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "csinh":
 float: 1
 ifloat: 1
@@ -215,6 +287,14 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "csinh_downward":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "csinh_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "csqrt":
 double: 2
 float: 2
@@ -263,6 +343,14 @@  float: 2
 idouble: 3
 ifloat: 2
 
+Function: "erfc_downward":
+double: 4
+idouble: 4
+
+Function: "erfc_upward":
+double: 4
+idouble: 4
+
 Function: "exp":
 float: 1
 ifloat: 1
@@ -271,6 +359,14 @@  Function: "exp10":
 double: 2
 idouble: 2
 
+Function: "exp10_downward":
+double: 3
+idouble: 3
+
+Function: "exp10_towardzero":
+double: 3
+idouble: 3
+
 Function: "exp2":
 double: 1
 float: 1
diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
index e62cca3e03..798e3c465c 100644
--- a/sysdeps/mips/mips32/libm-test-ulps
+++ b/sysdeps/mips/mips32/libm-test-ulps
@@ -530,9 +530,9 @@  idouble: 1
 ifloat: 1
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccos_towardzero":
@@ -542,9 +542,9 @@  idouble: 1
 ifloat: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccos_upward":
@@ -572,27 +572,27 @@  idouble: 1
 ifloat: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccosh_upward":
@@ -620,27 +620,27 @@  idouble: 1
 ifloat: 2
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 
 Function: Real part of "cexp_upward":
@@ -650,9 +650,9 @@  idouble: 1
 ifloat: 2
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 
 Function: Real part of "clog":
@@ -780,21 +780,21 @@  idouble: 1
 ifloat: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Real part of "cpow":
@@ -808,9 +808,9 @@  float: 2
 ifloat: 2
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 
 Function: Imaginary part of "cpow_downward":
@@ -820,9 +820,9 @@  idouble: 1
 ifloat: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 
 Function: Imaginary part of "cpow_towardzero":
@@ -850,9 +850,9 @@  idouble: 1
 ifloat: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Imaginary part of "csin_downward":
@@ -862,9 +862,9 @@  idouble: 1
 ifloat: 1
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Imaginary part of "csin_towardzero":
@@ -902,9 +902,9 @@  idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "csinh_towardzero":
@@ -914,9 +914,9 @@  idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "csinh_upward":
@@ -1132,15 +1132,15 @@  double: 2
 idouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 
 Function: "exp10_upward":
diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
index 82b15be5af..fec97bdc10 100644
--- a/sysdeps/mips/mips64/libm-test-ulps
+++ b/sysdeps/mips/mips64/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -728,9 +728,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -768,33 +768,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1046,25 +1046,25 @@  ildouble: 1
 ldouble: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 3
@@ -1084,9 +1084,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1100,9 +1100,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1144,9 +1144,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1160,9 +1160,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1214,9 +1214,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1230,9 +1230,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1522,17 +1522,17 @@  ildouble: 2
 ldouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
diff --git a/sysdeps/nios2/libm-test-ulps b/sysdeps/nios2/libm-test-ulps
index 0b9ef2afec..fc42f63fd7 100644
--- a/sysdeps/nios2/libm-test-ulps
+++ b/sysdeps/nios2/libm-test-ulps
@@ -133,6 +133,14 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "ccos_downward":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "ccos_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "ccosh":
 double: 1
 float: 1
@@ -145,6 +153,22 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Real part of "ccosh_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "ccosh_towardzero":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "cexp":
 double: 2
 float: 1
@@ -157,6 +181,26 @@  float: 2
 idouble: 1
 ifloat: 2
 
+Function: Real part of "cexp_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "cexp_towardzero":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_towardzero":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "cexp_upward":
+double: 3
+idouble: 3
+
 Function: Real part of "clog":
 double: 3
 float: 3
@@ -191,6 +235,18 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: "cosh_downward":
+double: 2
+idouble: 2
+
+Function: "cosh_towardzero":
+double: 2
+idouble: 2
+
+Function: "cosh_upward":
+double: 2
+idouble: 2
+
 Function: Real part of "cpow":
 double: 2
 float: 5
@@ -201,12 +257,28 @@  Function: Imaginary part of "cpow":
 float: 2
 ifloat: 2
 
+Function: Real part of "cpow_downward":
+double: 5
+idouble: 5
+
+Function: Real part of "cpow_towardzero":
+double: 5
+idouble: 5
+
 Function: Real part of "csin":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 
+Function: Real part of "csin_downward":
+double: 3
+idouble: 3
+
+Function: Real part of "csin_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "csinh":
 float: 1
 ifloat: 1
@@ -217,6 +289,14 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "csinh_downward":
+double: 3
+idouble: 3
+
+Function: Imaginary part of "csinh_towardzero":
+double: 3
+idouble: 3
+
 Function: Real part of "csqrt":
 double: 2
 float: 2
@@ -265,6 +345,14 @@  float: 2
 idouble: 3
 ifloat: 2
 
+Function: "erfc_downward":
+double: 4
+idouble: 4
+
+Function: "erfc_upward":
+double: 4
+idouble: 4
+
 Function: "exp":
 float: 1
 ifloat: 1
@@ -273,6 +361,14 @@  Function: "exp10":
 double: 2
 idouble: 2
 
+Function: "exp10_downward":
+double: 3
+idouble: 3
+
+Function: "exp10_towardzero":
+double: 3
+idouble: 3
+
 Function: "exp2":
 double: 1
 float: 1
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
index aee738dafb..21c0c78f7f 100644
--- a/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 6
 ldouble: 6
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -728,9 +728,9 @@  ildouble: 6
 ldouble: 6
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -768,33 +768,33 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 6
 ldouble: 6
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 10
 ldouble: 10
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 11
 ldouble: 11
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 11
 ldouble: 11
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 11
 ldouble: 11
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 11
 ldouble: 11
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1044,25 +1044,25 @@  ildouble: 3
 ldouble: 3
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
@@ -1082,9 +1082,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 7
 ldouble: 7
@@ -1098,9 +1098,9 @@  ildouble: 4
 ldouble: 4
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 8
 ldouble: 8
@@ -1142,9 +1142,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -1158,9 +1158,9 @@  ildouble: 6
 ldouble: 6
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -1212,9 +1212,9 @@  ildouble: 6
 ldouble: 6
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -1228,9 +1228,9 @@  ildouble: 6
 ldouble: 6
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 6
 ldouble: 6
@@ -1520,17 +1520,17 @@  ildouble: 1
 ldouble: 1
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 9
 ldouble: 9
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 9
 ldouble: 9
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
index 365f950074..10fb787d8b 100644
--- a/sysdeps/riscv/nofpu/libm-test-ulps
+++ b/sysdeps/riscv/nofpu/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -728,9 +728,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -768,33 +768,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1036,25 +1036,25 @@  ildouble: 1
 ldouble: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 3
@@ -1074,9 +1074,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1090,9 +1090,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1134,9 +1134,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1150,9 +1150,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1204,9 +1204,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1220,9 +1220,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1476,9 +1476,9 @@  ildouble: 2
 ldouble: 2
 
 Function: "erfc_downward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
 ildouble: 5
 ldouble: 5
@@ -1492,9 +1492,9 @@  ildouble: 4
 ldouble: 4
 
 Function: "erfc_upward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
 ildouble: 5
 ldouble: 5
@@ -1510,17 +1510,17 @@  ildouble: 2
 ldouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rv64/rvd/libm-test-ulps
index f8feadcd0d..e2939fe104 100644
--- a/sysdeps/riscv/rv64/rvd/libm-test-ulps
+++ b/sysdeps/riscv/rv64/rvd/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -728,9 +728,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -768,33 +768,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1036,25 +1036,25 @@  ildouble: 1
 ldouble: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 3
@@ -1074,9 +1074,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1090,9 +1090,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1134,9 +1134,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1150,9 +1150,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1204,9 +1204,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1220,9 +1220,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1476,9 +1476,9 @@  ildouble: 2
 ldouble: 2
 
 Function: "erfc_downward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
 ildouble: 5
 ldouble: 5
@@ -1492,9 +1492,9 @@  ildouble: 4
 ldouble: 4
 
 Function: "erfc_upward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
 ildouble: 5
 ldouble: 5
@@ -1510,17 +1510,17 @@  ildouble: 2
 ldouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
index fec59c7d60..d26cac546c 100644
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ b/sysdeps/s390/fpu/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -728,9 +728,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -768,33 +768,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1038,25 +1038,25 @@  ildouble: 1
 ldouble: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 3
@@ -1076,9 +1076,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1092,9 +1092,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1136,9 +1136,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1152,9 +1152,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1206,9 +1206,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1222,9 +1222,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1478,9 +1478,9 @@  ildouble: 2
 ldouble: 2
 
 Function: "erfc_downward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
 ildouble: 5
 ldouble: 5
@@ -1494,9 +1494,9 @@  ildouble: 4
 ldouble: 4
 
 Function: "erfc_upward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
 ildouble: 5
 ldouble: 5
@@ -1512,17 +1512,17 @@  ildouble: 2
 ldouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps
index 11c5f3216d..fa0a368e73 100644
--- a/sysdeps/sh/libm-test-ulps
+++ b/sysdeps/sh/libm-test-ulps
@@ -263,6 +263,10 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "ccos_downward":
+double: 3
+idouble: 3
+
 Function: Real part of "ccos_towardzero":
 double: 1
 float: 2
@@ -270,9 +274,9 @@  idouble: 1
 ifloat: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "ccosh":
@@ -287,16 +291,24 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Real part of "ccosh_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "ccosh_downward":
+double: 3
+idouble: 3
+
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "cexp":
@@ -311,18 +323,30 @@  float: 2
 idouble: 1
 ifloat: 2
 
+Function: Real part of "cexp_downward":
+double: 2
+idouble: 2
+
+Function: Imaginary part of "cexp_downward":
+double: 3
+idouble: 3
+
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 
+Function: Imaginary part of "cexp_upward":
+double: 3
+idouble: 3
+
 Function: Real part of "clog":
 double: 3
 float: 3
@@ -385,12 +409,20 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: "cosh_downward":
+double: 2
+idouble: 2
+
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 
+Function: "cosh_upward":
+double: 2
+idouble: 2
+
 Function: Real part of "cpow":
 double: 2
 float: 5
@@ -401,10 +433,14 @@  Function: Imaginary part of "cpow":
 float: 2
 ifloat: 2
 
+Function: Real part of "cpow_downward":
+double: 5
+idouble: 5
+
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 
 Function: Imaginary part of "cpow_towardzero":
@@ -419,10 +455,14 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Real part of "csin_downward":
+double: 3
+idouble: 3
+
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Imaginary part of "csin_towardzero":
@@ -441,6 +481,10 @@  float: 1
 idouble: 1
 ifloat: 1
 
+Function: Imaginary part of "csinh_downward":
+double: 3
+idouble: 3
+
 Function: Real part of "csinh_towardzero":
 double: 2
 float: 2
@@ -448,9 +492,9 @@  idouble: 2
 ifloat: 2
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 
 Function: Real part of "csqrt":
@@ -543,20 +587,32 @@  float: 2
 idouble: 3
 ifloat: 2
 
+Function: "erfc_downward":
+double: 4
+idouble: 4
+
 Function: "erfc_towardzero":
 double: 3
 float: 3
 idouble: 3
 ifloat: 3
 
+Function: "erfc_upward":
+double: 4
+idouble: 4
+
 Function: "exp10":
 double: 2
 idouble: 2
 
+Function: "exp10_downward":
+double: 3
+idouble: 3
+
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 
 Function: "exp2":
diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps
index 84aed3a4e2..7fc00f2ceb 100644
--- a/sysdeps/sparc/fpu/libm-test-ulps
+++ b/sysdeps/sparc/fpu/libm-test-ulps
@@ -712,9 +712,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -728,9 +728,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -768,33 +768,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh_towardzero":
-double: 1
+double: 2
 float: 3
-idouble: 1
+idouble: 2
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -832,33 +832,33 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_downward":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp_towardzero":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_towardzero":
-double: 1
+double: 3
 float: 3
-idouble: 1
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -872,9 +872,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_upward":
-double: 1
+double: 3
 float: 2
-idouble: 1
+idouble: 3
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1046,25 +1046,25 @@  ildouble: 1
 ldouble: 1
 
 Function: "cosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_towardzero":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 2
 
 Function: "cosh_upward":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 3
@@ -1084,9 +1084,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_downward":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1100,9 +1100,9 @@  ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
-double: 4
+double: 5
 float: 8
-idouble: 4
+idouble: 5
 ifloat: 8
 ildouble: 6
 ldouble: 6
@@ -1144,9 +1144,9 @@  ildouble: 1
 ldouble: 1
 
 Function: Real part of "csin_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1160,9 +1160,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Real part of "csin_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1214,9 +1214,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csinh_downward":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 2
 ldouble: 2
@@ -1230,9 +1230,9 @@  ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csinh_towardzero":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
 ildouble: 3
 ldouble: 3
@@ -1522,17 +1522,17 @@  ildouble: 2
 ldouble: 2
 
 Function: "exp10_downward":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3
 
 Function: "exp10_towardzero":
-double: 2
+double: 3
 float: 1
-idouble: 2
+idouble: 3
 ifloat: 1
 ildouble: 3
 ldouble: 3