Add more random libm-test inputs [committed]

Message ID alpine.DEB.2.10.1508132324060.7713@digraph.polyomino.org.uk
State Committed
Headers

Commit Message

Joseph Myers Aug. 13, 2015, 11:24 p.m. UTC
  This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.

Tested for x86_64 and x86.  Committed.

(auto-libm-test-out diffs omitted below.)

2015-08-13  Joseph Myers  <joseph@codesourcery.com>

	* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
	asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
	exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
	and tgamma.
	* math/auto-libm-test-out: Regenerated.
	* sysdeps/i386/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
  

Comments

Paul Pluzhnikov Aug. 14, 2015, 4:18 p.m. UTC | #1
On Thu, Aug 13, 2015 at 4:24 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> This patch adds more test inputs to various libm functions found
> through random generation to have larger ulps errors than previously
> listed in libm-test-ulp, on at least one of x86_64 and x86.
>
> Tested for x86_64 and x86.  Committed.
>
> (auto-libm-test-out diffs omitted below.)
>
> 2015-08-13  Joseph Myers  <joseph@codesourcery.com>
>
>         * math/auto-libm-test-in: Add more tests of acos, acosh, asin,
>         asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
>         exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
>         and tgamma.
>         * math/auto-libm-test-out: Regenerated.
>         * sysdeps/i386/fpu/libm-test-ulps: Update.
>         * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

I am getting a failure in  math/test-double-vlen4-avx2.out after above commit:

testing double vector math (without inline functions)
Failure: Test: sincos_vlen4_avx2 (0x6.287cc8749213p+0) extra output 2
Result:
 is:          9.92193768256899422120e-01   0x1.fc00d253eab190000000p-1
 should be:   9.92193768256899644165e-01   0x1.fc00d253eab1b0000000p-1
 difference:  2.22044604925031308085e-16   0x1.00000000000000000000p-52
 ulp       :  2.0000
 max.ulp   :  1.0000
Maximal error of `sincos_vlen4_avx2'
 is      : 2 ulp
 accepted: 1 ulp

Test suite completed:
  1596 test cases plus 0 tests for exception flags and
    1572 tests for errno executed.
  2 errors occurred.


/proc/cpuinfo says:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz
stepping : 2
microcode : 0x2e
cpu MHz : 1200.000
cache size : 15360 KB
physical id : 0
$ head -40 /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz
stepping : 2
microcode : 0x2e
cpu MHz : 1200.000
cache size : 15360 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 6
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 15
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl
xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor
ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2
x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand
lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi
flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms
invpcid
bogomips : 6983.41
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
  
Joseph Myers Aug. 14, 2015, 4:37 p.m. UTC | #2
On Fri, 14 Aug 2015, Paul Pluzhnikov wrote:

> I am getting a failure in  math/test-double-vlen4-avx2.out after above commit:

Yes, if you have hardware with the more recent vector instructions then 
you should commit the results of "make regen-ulps" - some of the vector 
tests can't be run without sufficiently recent vector hardware (I don't 
have anything more recent than AVX), meaning ulps regeneration without 
that vector hardware won't do anything to the ulps for those vector tests.
  
Paul Pluzhnikov Aug. 14, 2015, 5 p.m. UTC | #3
On Fri, Aug 14, 2015 at 9:37 AM, Joseph Myers <joseph@codesourcery.com> wrote:
> On Fri, 14 Aug 2015, Paul Pluzhnikov wrote:
>
>> I am getting a failure in  math/test-double-vlen4-avx2.out after above commit:
>
> Yes, if you have hardware with the more recent vector instructions then
> you should commit the results of "make regen-ulps"

Thanks. Committed as db7f8c8fe0575fa4c441c2f04e666a01cb06f0cc.
  

Patch

diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index b14146e..d3a4834 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -70,6 +70,8 @@  acos 0x5.dd258006121b8p-4
 acos -0x2.35f051e70dbc4p-4
 acos 0xe.9a5c0d7fabb9aa1p-4
 acos 0xe.17513589de79b75p-4
+acos 0x3.e57821d368ebap-4
+acos 0x2.0bee8p-4
 acos min
 acos -min
 acos min_subnorm
@@ -117,6 +119,10 @@  acosh 0x1.11eab6p+0
 acosh 0x1.0fffaap+0
 acosh 0x1.068e0eca105a6p+0
 acosh 0x2.8d4288p+0
+acosh 0x1.5d71a6p+36
+acosh 0x1.476a3c43d7edep+288
+acosh 0xc.84cb1dbbd1b1p+0
+acosh 0x1.0722362c26ba5p+0
 acosh max no-test-inline
 
 asin 0
@@ -140,6 +146,7 @@  asin -0x3.1c54d10e5c844p-4
 asin 0xf.c9675fa6fe69f12p-4
 asin -0xa.fc5afp-4
 asin 0xd.805e5p-4
+asin -0x2.1a02dcp-4
 asin min
 asin -min
 asin min_subnorm
@@ -221,6 +228,9 @@  asinh -0x7.63a06320c42e4p-4
 asinh 0x6.f4a93p-4
 asinh -0x7.88bcc8p-4
 asinh -0x3.11c35p-4
+asinh -0x4.39534p-4
+asinh -0xd.d62e8p+92
+asinh -0x4.cfb9805a53a2065p-4
 asinh 0x1p-500
 asinh 0x1p-5000
 asinh min
@@ -251,6 +261,7 @@  atan -0x2.3249ap+0
 atan -0x1.363f46p+0
 atan -0x1.ad4c0ap+0
 atan -0x3.eb8e18p+0
+atan 0x3.53c188p+0
 atan min
 atan -min
 atan min_subnorm
@@ -304,6 +315,7 @@  atan2 -0xa.b4101p+20 -0xf.9c4c8p-4
 atan2 0x4.251bb8p-4 0x7.40ac68p+0
 atan2 0x1.47239ep+68 0xa.3ac3cp+68
 atan2 -0x6.b0794p-4 0x3.8ff10cp+0
+atan2 -0x7.15e7af0a1780cp-724 0xf.fffffp+124
 atan2 min min
 atan2 min -min
 atan2 -min min
@@ -392,6 +404,8 @@  atanh -0x3.f0f519a687b64p-8
 atanh 0x6.fd4ec8p-4
 atanh -0x2.6cb2a8p-4
 atanh -0xc.21df7c7f51508p-4
+atanh 0x5.8be99p-40
+atanh 0x3.cbed35fe733d8p-4
 atanh 0x1p-500
 atanh 0x1p-5000
 atanh min
@@ -425,6 +439,7 @@  cabs -0x1.26a566p+120 0x4.017b28p+92
 cabs -0x1.0eda54p+28 0xb.09476p+0
 cabs -0x1.133b84p+84 -0xa.7d925f57f60cp+768
 cabs -0 -0x3.4e5d7877324cp+0
+cabs -0xa.f59b8p+4 0xa.21a95p+20
 
 # carg (x + i 0) == 0 for x > 0.
 carg 2.0 0
@@ -476,6 +491,7 @@  cbrt -0x1.d6a8bep-20
 cbrt -0x3.593ed8p-72
 cbrt 0x1.bd0098p-104
 cbrt -0x3.300d34p+0
+cbrt 0x6.247f5p-4
 cbrt max
 cbrt -max
 cbrt min
@@ -942,6 +958,7 @@  cosh -0xb.60713p+0
 cosh -0x3.cee48p+0
 cosh 0x2.f5d128p+0
 cosh -0xd.0c03p+0
+cosh -0x3.d04328728b72cp-4
 # GCC bug 59666: results on directed rounding may be incorrect.
 cosh max no-test-inline xfail-rounding:ldbl-128ibm
 cosh -max no-test-inline xfail-rounding:ldbl-128ibm
@@ -1093,6 +1110,8 @@  csqrt -0xb.e2bc1cd6eaa7p-180 0x8p-152
 csqrt 0xd.25d559ac5baap-168 0x8p-152
 csqrt -0x9.0a61a7b482d28p-168 -0x8p-152
 csqrt 0x3.f768f58949e3fe6cp-4 0x2.0c2e89a5cff98p+0
+csqrt 0x6.b1a2e79e9c9acp-164 0x8p-152
+csqrt -0x8.ec8932bf5603p-172 0x8p-152
 
 csqrt 0x1.fffffep+127 0x1.fffffep+127
 csqrt 0x1.fffffep+127 1.0
@@ -1252,6 +1271,7 @@  erf 0x1.44e722p+0
 erf -0x1.3a0d48p+0
 erf -0x1.c975cap+0
 erf -0x1.e6a006p+0
+erf -0x1.4d32f4p-12
 
 erfc 0.0
 erfc -0
@@ -1295,6 +1315,8 @@  erfc 0x2.f8646cp+0
 erfc 0x1.514548p+0
 erfc 0x2.36c504p+0
 erfc 0x1.65e31p+0
+erfc 0xd.44cd3p-4
+erfc 0xd.47425b3cafa48p-4
 
 exp 0
 exp -0
@@ -1341,6 +1363,8 @@  exp -0x1.760cd14774bd9p+0
 exp 0x1.4bed28p+0
 exp -0x1.f1cf36p+8
 exp 0x3.248524p+0
+exp 0x1.f0b362p+0
+exp 0xd.89746a799ac4eedp+0
 
 exp10 0
 exp10 -0
@@ -1442,6 +1466,7 @@  exp2 -0x1.3045fep+8
 exp2 0xa.87b8bp+0
 exp2 -0xe.2ce69p-4
 exp2 -0xc.1bf12p-16
+exp2 -0x4.8ce878p-4
 
 expm1 0
 expm1 -0
@@ -1980,6 +2005,7 @@  lgamma 0xb.2e679p+0
 lgamma 0xb.01191p+0
 lgamma 0xb.26fdap+0
 lgamma 0xb.4ad0ap+0
+lgamma 0xe.7a678p+20
 
 log 1
 log e
@@ -1996,6 +2022,7 @@  log 0xa.ae688p-4
 log 0x1.017f8ap+44
 log 0x1.0b5c1ep+36
 log 0x2.1b17c2887e938p+928
+log 0x1.929d9cp+0
 
 log10 1
 log10 0.1
@@ -2045,6 +2072,7 @@  log1p 0xa.5028608bd65f38dp-4
 log1p 0x5.bf78873e20a2d468p-4
 log1p 0x7.aa5198p-4
 log1p 0x2.564fap+0
+log1p 0x7.fc242a2235222ef8p-4
 
 log2 1
 log2 e
@@ -2062,6 +2090,7 @@  log2 0x1.0a588ep+0
 log2 0xb.e77c6p-4
 log2 0x1.4fe37ep+0
 log2 0x3.9b0754p+8
+log2 0xb.e132ap-4
 log2 min
 log2 min_subnorm
 
@@ -2464,6 +2493,7 @@  pow 1.5 1.03125
 pow 0x1.7d1a0a6f2p+681 1.5
 pow 0x1.ce78f2p+0 -0x2.7f1f78p+4
 pow 0xf.fffffp+124 -0x5.b5b648p+0
+pow 0x1.430d4cp+0 0x5.0e462p+4
 
 sin 0
 sin -0
@@ -2507,6 +2537,7 @@  sin 0x1.2001469775ce6p32
 sin -0x3.3de320f6be87ep+1020
 sin 0xe.9f1e5bc3bb88p+112
 sin 0x4.7857dp+68
+sin 0x6.287cc8749212e72p+0
 sin min
 sin -min
 sin min_subnorm
@@ -2533,6 +2564,7 @@  sincos 0x1p+28
 sincos -0x3.3de320f6be87ep+1020
 sincos 0xe.9f1e5bc3bb88p+112
 sincos 0x4.7857dp+68
+sincos 0x6.287cc8749212e72p+0
 sincos min
 sincos -min
 sincos min_subnorm
@@ -2720,6 +2752,9 @@  tan -0x1.4f69cp+0
 tan 0x1.6ca7e8p+0
 tan -0x1.b569cp+0
 tan -0x2.12bafcp+0
+tan 0x2.091d68p+0
+tan -0x5.302ab9b18593264p+0
+tan 0x1.1ad374p+0
 tan min
 tan -min
 tan min_subnorm
@@ -2779,6 +2814,8 @@  tanh -0x2.6082fp-4
 tanh 0xe.05031p-16
 tanh 0x3.c80eaa7adaa3p-4
 tanh 0x2.00f9857616524p-4
+tanh -0xe.9e035p+0
+tanh -0x3.c0d8b54c5a488p-4
 tanh min
 tanh -min
 tanh min_subnorm
@@ -3236,6 +3273,14 @@  tgamma -0x1.4a5caap+4
 tgamma -0x9.2d3a5p+0
 tgamma -0xb.0f63ep+0
 tgamma -0x5.f0e02p+8
+tgamma -0xb.3123bp+0
+tgamma -0x9.6d538p+0
+tgamma -0xc.c2439p+0
+tgamma -0xc.372f043322128p+0
+tgamma -0xa.ccfcep+0
+tgamma -0x9.418c8p+0
+tgamma -0x6.ce9158p+0
+tgamma -0xd.cbf53d0e7d06p+0
 
 y0 0.125
 y0 0.75
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index de53451..8263717 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -2,6 +2,8 @@ 
 
 # Maximal error of functions:
 Function: "acos":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -14,10 +16,14 @@  ildouble: 2
 ldouble: 2
 
 Function: "acos_upward":
+double: 1
+idouble: 1
 ildouble: 2
 ldouble: 2
 
 Function: "acosh":
+double: 1
+idouble: 1
 ildouble: 4
 ldouble: 2
 
@@ -34,6 +40,8 @@  ildouble: 6
 ldouble: 4
 
 Function: "acosh_upward":
+double: 1
+idouble: 1
 ildouble: 4
 ldouble: 3
 
@@ -44,10 +52,14 @@  ildouble: 1
 ldouble: 1
 
 Function: "asin_downward":
+double: 1
+idouble: 1
 ildouble: 2
 ldouble: 2
 
 Function: "asin_towardzero":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -62,18 +74,20 @@  ldouble: 1
 Function: "asinh":
 double: 1
 idouble: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "asinh_downward":
 double: 1
 float: 1
+idouble: 1
 ildouble: 5
 ldouble: 5
 
 Function: "asinh_towardzero":
 double: 1
 float: 1
+idouble: 1
 ildouble: 4
 ldouble: 4
 
@@ -83,13 +97,17 @@  float: 1
 idouble: 1
 ifloat: 1
 ildouble: 5
-ldouble: 4
+ldouble: 5
 
 Function: "atan":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
 Function: "atan2":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -165,12 +183,15 @@  ldouble: 3
 
 Function: "atanh_upward":
 double: 1
+float: 1
 idouble: 1
 ifloat: 1
 ildouble: 5
 ldouble: 5
 
 Function: "cabs":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -595,8 +616,8 @@  double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "cbrt_downward":
 double: 1
@@ -962,6 +983,7 @@  ldouble: 2
 
 Function: "cosh":
 double: 1
+idouble: 1
 ildouble: 2
 ldouble: 2
 
@@ -1230,8 +1252,8 @@  double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
 
 Function: Real part of "ctan":
 double: 1
@@ -1386,7 +1408,9 @@  ildouble: 1
 ldouble: 1
 
 Function: "erf_upward":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
@@ -1420,8 +1444,8 @@  double: 2
 float: 2
 idouble: 2
 ifloat: 2
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "exp":
 double: 1
@@ -1470,6 +1494,8 @@  ildouble: 1
 ldouble: 1
 
 Function: "exp2_towardzero":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -1486,12 +1512,14 @@  ldouble: 1
 Function: "exp_towardzero":
 double: 1
 idouble: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: "exp_upward":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
@@ -1710,6 +1738,8 @@  ildouble: 4
 ldouble: 4
 
 Function: "log":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -1754,16 +1784,16 @@  double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
 
 Function: "log1p_towardzero":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
 
 Function: "log1p_upward":
 double: 1
@@ -1780,6 +1810,8 @@  ildouble: 1
 ldouble: 1
 
 Function: "log2_downward":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
 
@@ -1884,8 +1916,8 @@  ldouble: 2
 Function: "sin_towardzero":
 double: 1
 idouble: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: "sin_upward":
 double: 1
@@ -1946,24 +1978,24 @@  ldouble: 5
 Function: "tan":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: "tan_downward":
 double: 1
 float: 2
 idouble: 1
 ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "tan_towardzero":
 double: 1
 float: 2
 idouble: 1
 ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "tan_upward":
 double: 1
@@ -1974,8 +2006,10 @@  ildouble: 2
 ldouble: 2
 
 Function: "tanh":
-ildouble: 2
-ldouble: 2
+double: 1
+idouble: 1
+ildouble: 3
+ldouble: 3
 
 Function: "tanh_downward":
 double: 1
@@ -2002,36 +2036,36 @@  ildouble: 5
 ldouble: 4
 
 Function: "tgamma":
-double: 2
+double: 3
 float: 3
-idouble: 2
+idouble: 3
 ifloat: 3
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "tgamma_downward":
 double: 3
-float: 3
+float: 4
 idouble: 3
-ifloat: 3
-ildouble: 3
-ldouble: 3
+ifloat: 4
+ildouble: 5
+ldouble: 5
 
 Function: "tgamma_towardzero":
-double: 3
-float: 3
-idouble: 3
-ifloat: 3
-ildouble: 4
-ldouble: 4
+double: 4
+float: 4
+idouble: 4
+ifloat: 4
+ildouble: 5
+ldouble: 5
 
 Function: "tgamma_upward":
-double: 3
+double: 4
 float: 4
-idouble: 3
+idouble: 4
 ifloat: 4
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "y0":
 double: 1
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index b5f2680..aeb3d49 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -40,9 +40,9 @@  ildouble: 2
 ldouble: 2
 
 Function: "acosh_downward":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 ildouble: 4
 ldouble: 4
@@ -57,9 +57,9 @@  ldouble: 4
 
 Function: "acosh_upward":
 double: 2
-float: 1
+float: 2
 idouble: 2
-ifloat: 1
+ifloat: 2
 ildouble: 3
 ldouble: 3
 
@@ -98,8 +98,8 @@  double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "asinh_downward":
 double: 3
@@ -122,8 +122,8 @@  double: 3
 float: 3
 idouble: 3
 ifloat: 3
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "atan":
 float: 1
@@ -186,9 +186,9 @@  ildouble: 1
 ldouble: 1
 
 Function: "atanh":
-double: 1
+double: 2
 float: 2
-idouble: 1
+idouble: 2
 ifloat: 2
 ildouble: 3
 ldouble: 3
@@ -1280,9 +1280,9 @@  ildouble: 4
 ldouble: 4
 
 Function: Real part of "csqrt_towardzero":
-double: 3
+double: 4
 float: 3
-idouble: 3
+idouble: 4
 ifloat: 3
 ildouble: 4
 ldouble: 4
@@ -1308,8 +1308,8 @@  double: 3
 float: 3
 idouble: 3
 ifloat: 3
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
 
 Function: Real part of "ctan":
 double: 1
@@ -1480,9 +1480,9 @@  ildouble: 3
 ldouble: 3
 
 Function: "erfc_downward":
-double: 4
+double: 5
 float: 6
-idouble: 4
+idouble: 5
 ifloat: 6
 ildouble: 4
 ldouble: 4
@@ -1496,12 +1496,12 @@  ildouble: 4
 ldouble: 4
 
 Function: "erfc_upward":
-double: 4
+double: 5
 float: 6
-idouble: 4
+idouble: 5
 ifloat: 6
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "exp":
 ildouble: 1
@@ -1578,12 +1578,14 @@  ldouble: 1
 Function: "exp_towardzero":
 double: 1
 idouble: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: "exp_upward":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
@@ -1665,9 +1667,9 @@  ldouble: 6
 
 Function: "gamma_upward":
 double: 4
-float: 3
+float: 4
 idouble: 4
-ifloat: 3
+ifloat: 4
 ildouble: 4
 ldouble: 4
 
@@ -1817,9 +1819,9 @@  ldouble: 6
 
 Function: "lgamma_upward":
 double: 4
-float: 3
+float: 4
 idouble: 4
-ifloat: 3
+ifloat: 4
 ildouble: 4
 ldouble: 4
 
@@ -1874,16 +1876,16 @@  double: 2
 float: 2
 idouble: 2
 ifloat: 2
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
 
 Function: "log1p_towardzero":
 double: 2
 float: 2
 idouble: 2
 ifloat: 2
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
 
 Function: "log1p_upward":
 double: 2
@@ -2001,25 +2003,25 @@  ldouble: 2
 
 Function: "pow_downward":
 double: 1
-float: 3
+float: 4
 idouble: 1
-ifloat: 3
+ifloat: 4
 ildouble: 4
 ldouble: 4
 
 Function: "pow_towardzero":
 double: 1
-float: 4
+float: 8
 idouble: 1
-ifloat: 4
+ifloat: 8
 ildouble: 1
 ldouble: 1
 
 Function: "pow_upward":
 double: 1
-float: 4
+float: 8
 idouble: 1
-ifloat: 4
+ifloat: 8
 ildouble: 2
 ldouble: 2
 
@@ -2056,8 +2058,8 @@  ldouble: 2
 Function: "sin_towardzero":
 double: 1
 idouble: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: "sin_upward":
 double: 1
@@ -2111,10 +2113,10 @@  Function: "sincos_vlen16":
 float: 1
 
 Function: "sincos_vlen2":
-double: 1
+double: 2
 
 Function: "sincos_vlen4":
-double: 1
+double: 2
 float: 1
 
 Function: "sincos_vlen4_avx2":
@@ -2162,24 +2164,24 @@  ldouble: 5
 Function: "tan":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: "tan_downward":
 double: 1
 float: 2
 idouble: 1
 ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "tan_towardzero":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "tan_upward":
 double: 1
@@ -2194,8 +2196,8 @@  double: 2
 float: 2
 idouble: 2
 ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: "tanh_downward":
 double: 3
@@ -2222,36 +2224,36 @@  ildouble: 4
 ldouble: 4
 
 Function: "tgamma":
-double: 4
+double: 5
 float: 5
-idouble: 4
+idouble: 5
 ifloat: 5
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "tgamma_downward":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-ildouble: 3
-ldouble: 3
+double: 5
+float: 5
+idouble: 5
+ifloat: 5
+ildouble: 5
+ldouble: 5
 
 Function: "tgamma_towardzero":
 double: 5
 float: 5
 idouble: 5
 ifloat: 5
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "tgamma_upward":
 double: 5
 float: 5
 idouble: 5
 ifloat: 5
-ildouble: 4
-ldouble: 4
+ildouble: 5
+ldouble: 5
 
 Function: "y0":
 double: 2