This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Regenerate x86 and x86_64 ulps


>This doesn't apply cleanly (whitespace corrupted by cut-and-paste?) - 

>attaching the diff may help in such cases.

I have run the 'make regen-ulps'-cycle again, and I have tested if the diff applied cleanly, so I suppose it should work now. The diff is pasted below and I have attached it to this message.

>Please also let us know how 
>your name should appear as the git patch author and in the ChangeLog.

My name is Jeroen Albers

Below this is the pasted diff for sysdeps/i386/fpu/libm-test-ulps and sysdeps/x86_64/fpu/libm-test-ulps made on an AMD FX-8350 with GCC 4.8.1:

diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 8ab76af..530dbd7 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -263,9 +263,13 @@ ldouble: 1
 Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -422,6 +426,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -432,6 +439,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -470,6 +480,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -481,6 +494,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -635,12 +651,16 @@ ldouble: 1
 Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -799,6 +819,9 @@ idouble: 1
 Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
 float: 1
 ifloat: 1
@@ -821,6 +844,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -831,6 +857,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -876,6 +905,9 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (1.0 + 0x1.fp-30 i)":
 double: 1
 idouble: 1
@@ -897,6 +929,9 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (1.0 - 0x1.fp-30 i)":
 double: 1
 idouble: 1
@@ -1058,9 +1093,13 @@ ldouble: 1
 Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -1217,6 +1256,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -1227,6 +1269,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -1265,6 +1310,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (-1.0 + 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -1276,6 +1324,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (-1.0 - 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -1427,12 +1478,16 @@ ldouble: 1
 Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 ildouble: 1
 ldouble: 1
 Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 ildouble: 1
 ldouble: 1
@@ -1594,6 +1649,9 @@ idouble: 1
 Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
 float: 1
 ifloat: 1
@@ -1616,6 +1674,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -1626,6 +1687,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -1664,6 +1728,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
 double: 1
 float: 1
@@ -1685,6 +1752,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
 double: 1
 float: 1
@@ -1859,9 +1929,13 @@ ldouble: 1
 Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -1914,28 +1988,52 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (-0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (-0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (-0x1.fp-1000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (-0x1.fp-1000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-1025 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
 double: 1
 idouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (-0x1.fp-1025 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
 double: 1
 idouble: 1
@@ -1954,6 +2052,9 @@ ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 + 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (-0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
 double: 1
 float: 1
@@ -1974,6 +2075,9 @@ ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 - 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (-0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
 double: 1
 float: 1
@@ -2040,6 +2144,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casin (-0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -2060,6 +2167,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -2118,6 +2228,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2131,6 +2244,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2255,9 +2371,13 @@ ldouble: 1
 Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -2310,28 +2430,52 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (0x1.fp-1000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (0x1.fp-1000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-1025 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
 double: 1
 idouble: 1
 Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (0x1.fp-1025 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
 double: 1
 idouble: 1
@@ -2350,6 +2494,9 @@ ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 + 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
 double: 1
 float: 1
@@ -2370,6 +2517,9 @@ ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 - 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
 double: 1
 float: 1
@@ -2410,6 +2560,9 @@ idouble: 1
 Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
 float: 1
 ifloat: 1
@@ -2442,6 +2595,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casin (0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -2462,6 +2618,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -2520,6 +2679,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2533,6 +2695,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2723,6 +2888,9 @@ ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
 double: 1
 float: 1
@@ -2737,11 +2905,20 @@ ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-0x1.fp-1025 + 0.5 i)":
 ildouble: 1
 ldouble: 1
@@ -2838,6 +3015,8 @@ ldouble: 1
 Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -2849,6 +3028,8 @@ ldouble: 1
 Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -2892,17 +3073,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -2941,17 +3137,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -3142,6 +3353,9 @@ ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
 double: 1
 float: 1
@@ -3156,11 +3370,20 @@ ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1.fp-1025 + 0.5 i)":
 ildouble: 1
 ldouble: 1
@@ -3221,6 +3444,9 @@ idouble: 1
 Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1p-23 + 0.0 i)":
 ildouble: 1
 ldouble: 1
@@ -3263,6 +3489,8 @@ ldouble: 1
 Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -3274,6 +3502,8 @@ ldouble: 1
 Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -3317,17 +3547,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -3366,17 +3611,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -3421,6 +3681,9 @@ ifloat: 1
 Test "Imaginary part of: catan (-0x1.0000000000001p0 + 0x1p-27 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
 double: 1
 idouble: 1
@@ -3454,30 +3717,57 @@ ldouble: 1
 Test "Imaginary part of: catan (-0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-13 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-16382 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-64 + 1.0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (-0x1p-64 - 1.0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (-1.0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3500,6 +3790,9 @@ ifloat: 1
 Test "Imaginary part of: catan (0x1.0000000000001p0 + 0x1p-27 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
 double: 1
 idouble: 1
@@ -3533,35 +3826,68 @@ ldouble: 1
 Test "Imaginary part of: catan (0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-13 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-16382 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-64 + 1.0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (0x1p-64 - 1.0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (1.0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
 
 # catanh
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
 ildouble: 1
 ldouble: 1
@@ -3580,6 +3906,18 @@ ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
 ildouble: 1
 ldouble: 1
@@ -3604,6 +3942,18 @@ idouble: 1
 Test "Real part of: catanh (-0x1p-13 - 1.0 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x1p-64 + 1.0 i)":
 ildouble: 1
 ldouble: 1
@@ -3616,6 +3966,9 @@ ldouble: 1
 Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3625,6 +3978,9 @@ ldouble: 1
 Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3654,6 +4010,18 @@ ldouble: 1
 Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x0.ffffffp0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffp0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
 ildouble: 1
 ldouble: 1
@@ -3682,12 +4050,18 @@ idouble: 1
 Test "Real part of: catanh (0x1p-27 + 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x1p-27 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
 Test "Real part of: catanh (0x1p-27 - 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
@@ -3706,6 +4080,9 @@ ldouble: 1
 Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3715,6 +4092,9 @@ ldouble: 1
 Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3954,6 +4334,9 @@ ifloat: 1
 Test "Real part of: clog (0x1.fffffep+127 + 0x1.fffffep+127 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
 ildouble: 1
 ldouble: 1
@@ -4527,6 +4910,7 @@ ldouble: 1
 # cosh_upward
 Test "cosh_upward (22)":
 ildouble: 2
+ldouble: 1
 Test "cosh_upward (23)":
 ildouble: 2
 ldouble: 1
@@ -5494,6 +5878,9 @@ idouble: 1
 # sinh
 Test "sinh (0.75)":
 ildouble: 1
+Test "sinh (0x8p-32)":
+ildouble: 1
+ldouble: 1
 
 # sinh_downward
 Test "sinh_downward (22)":
@@ -5754,8 +6141,8 @@ ldouble: 2
 Test "tgamma (-0x1e.00002p0)":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 Test "tgamma (-0x1f4.00000000000002p0)":
 ildouble: 3
 ldouble: 3
@@ -7062,6 +7449,7 @@ ldouble: 1
 
 Function: "sinh":
 ildouble: 1
+ldouble: 1
 
 Function: "sinh_downward":
 double: 1
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 563fea8..d02618a 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -4233,6 +4233,9 @@ ifloat: 1
 Test "Real part of: catan (-0x1p-13 + 1.0 i)":
 float: 1
 ifloat: 1
+Test "Imaginary part of: catan (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-13 - 0x0.ffffffp0 i)":
 ildouble: 1
 ldouble: 1
@@ -4251,12 +4254,27 @@ ldouble: 1
 Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
 float: 1
 ifloat: 1
@@ -4386,6 +4404,9 @@ ifloat: 1
 Test "Real part of: catan (0x1p-13 + 1.0 i)":
 float: 1
 ifloat: 1
+Test "Imaginary part of: catan (0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-13 - 0x0.ffffffp0 i)":
 ildouble: 1
 ldouble: 1
@@ -4404,12 +4425,27 @@ ldouble: 1
 Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
 float: 1
 ifloat: 1
@@ -4451,6 +4487,12 @@ ildouble: 1
 ldouble: 1
 
 # catanh
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
 ildouble: 1
 ldouble: 1
@@ -4475,6 +4517,18 @@ ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffp0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -4570,6 +4624,9 @@ ldouble: 1
 Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
 float: 1
 ifloat: 1
@@ -4590,6 +4647,9 @@ ldouble: 1
 Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
 float: 1
 ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
 float: 1
 ifloat: 1
@@ -4629,6 +4689,12 @@ ldouble: 1
 Test "Real part of: catanh (0x0.ffffffp0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -4721,6 +4787,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -4741,6 +4810,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -5582,6 +5654,9 @@ ildouble: 1
 ldouble: 1
 
 # cosh_upward
+Test "cosh_upward (22)":
+ildouble: 1
+ldouble: 1
 Test "cosh_upward (23)":
 ildouble: 1
 ldouble: 1
@@ -5776,9 +5851,14 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: ctan (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
 Test "Imaginary part of: ctan (0.75 + 1.25 i)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "Real part of: ctan (0x1p1023 + 1 i)":
@@ -5895,9 +5975,9 @@ ldouble: 1
 # ctanh
 Test "Real part of: ctanh (-2 - 3 i)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: ctanh (-2 - 3 i)":
@@ -6039,6 +6119,9 @@ double: 1
 idouble: 1
 
 # erfc
+Test "erfc (0.75)":
+float: 1
+ifloat: 1
 Test "erfc (0x1.f7303cp+1)":
 double: 1
 idouble: 1
@@ -6589,6 +6672,11 @@ Test "sincos (M_PI_6l*2.0) extra output 2":
 double: 1
 idouble: 1
 
+# sinh
+Test "sinh (0x8p-32)":
+ildouble: 1
+ldouble: 1
+
 # sinh_downward
 Test "sinh_downward (22)":
 float: 1
@@ -6934,7 +7022,9 @@ float: 1
 ifloat: 1
 Test "tgamma (-0x4.fffff8p0)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "tgamma (-0x4.ffffffffffffcp0)":
@@ -6951,9 +7041,9 @@ ildouble: 1
 ldouble: 1
 Test "tgamma (-0x5.000008p0)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "tgamma (-0x5.ffffffffffffcp0)":
@@ -7158,9 +7248,9 @@ ildouble: 1
 ldouble: 1
 Test "tgamma (-9.5)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 2
 ldouble: 2
 Test "tgamma (0.5)":
@@ -7231,6 +7321,8 @@ Test "tgamma (0x4.0000000000004p0)":
 double: 1
 idouble: 1
 Test "tgamma (0x4.fffff8p0)":
+float: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "tgamma (0x4.ffffffffffffcp0)":
@@ -7246,8 +7338,8 @@ Test "tgamma (0x5.0000000000004p0)":
 double: 1
 idouble: 1
 Test "tgamma (0x5.000008p0)":
-float: 2
-ifloat: 2
+float: 3
+ifloat: 3
 ildouble: 1
 ldouble: 1
 Test "tgamma (0x5.fffff8p0)":
@@ -7422,7 +7514,9 @@ ildouble: 1
 ldouble: 1
 Test "tgamma (9.5)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
@@ -7447,7 +7541,9 @@ Test "y0 (0x1p-110)":
 double: 1
 idouble: 1
 Test "y0 (0x1p-20)":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 Test "y0 (0x1p-30)":
 float: 1
@@ -7462,9 +7558,14 @@ ifloat: 1
 Test "y0 (0x1p-50)":
 float: 1
 ifloat: 1
+Test "y0 (0x1p-60)":
+float: 1
+ifloat: 1
 Test "y0 (0x1p-70)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 Test "y0 (0x1p-80)":
 double: 1
 float: 1
@@ -7486,8 +7587,13 @@ float: 1
 idouble: 2
 ifloat: 1
 Test "y0 (10.0)":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
+Test "y0 (2.0)":
+double: 1
+idouble: 1
 Test "y0 (8.0)":
 double: 1
 float: 1
@@ -7556,8 +7662,13 @@ float: 1
 idouble: 2
 ifloat: 1
 Test "yn (0, 10.0)":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
+Test "yn (0, 2.0)":
+double: 1
+idouble: 1
 Test "yn (0, 8.0)":
 double: 1
 float: 1
@@ -7597,22 +7708,26 @@ ildouble: 2
 ldouble: 2
 Test "yn (10, 0.75)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 4
 ldouble: 4
 Test "yn (10, 1.0)":
 double: 1
+float: 2
 idouble: 1
+ifloat: 2
 Test "yn (10, 10.0)":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 Test "yn (10, 2.0)":
-double: 2
-idouble: 2
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
 Test "yn (3, 0.125)":
 double: 1
 idouble: 1
@@ -8239,6 +8354,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "sinh":
+ildouble: 1
+ldouble: 1
+
 Function: "sinh_downward":
 float: 1
 ifloat: 1
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 8ab76af..530dbd7 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -263,9 +263,13 @@ ldouble: 1
 Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -422,6 +426,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -432,6 +439,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -470,6 +480,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -481,6 +494,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -635,12 +651,16 @@ ldouble: 1
 Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -799,6 +819,9 @@ idouble: 1
 Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
 float: 1
 ifloat: 1
@@ -821,6 +844,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -831,6 +857,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -876,6 +905,9 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (1.0 + 0x1.fp-30 i)":
 double: 1
 idouble: 1
@@ -897,6 +929,9 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacos (1.0 - 0x1.fp-30 i)":
 double: 1
 idouble: 1
@@ -1058,9 +1093,13 @@ ldouble: 1
 Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -1217,6 +1256,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -1227,6 +1269,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -1265,6 +1310,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (-1.0 + 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -1276,6 +1324,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (-1.0 - 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -1427,12 +1478,16 @@ ldouble: 1
 Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 ildouble: 1
 ldouble: 1
 Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 ildouble: 1
 ldouble: 1
@@ -1594,6 +1649,9 @@ idouble: 1
 Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
 float: 1
 ifloat: 1
@@ -1616,6 +1674,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -1626,6 +1687,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -1664,6 +1728,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
 double: 1
 float: 1
@@ -1685,6 +1752,9 @@ ldouble: 1
 Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
 double: 1
 float: 1
@@ -1859,9 +1929,13 @@ ldouble: 1
 Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -1914,28 +1988,52 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (-0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (-0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (-0x1.fp-1000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (-0x1.fp-1000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (-0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (-0x1.fp-1025 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
 double: 1
 idouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (-0x1.fp-1025 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
 double: 1
 idouble: 1
@@ -1954,6 +2052,9 @@ ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 + 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (-0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
 double: 1
 float: 1
@@ -1974,6 +2075,9 @@ ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 - 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (-0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
 double: 1
 float: 1
@@ -2040,6 +2144,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casin (-0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -2060,6 +2167,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (-0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -2118,6 +2228,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2131,6 +2244,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2255,9 +2371,13 @@ ldouble: 1
 Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
 ildouble: 1
 ldouble: 1
@@ -2310,28 +2430,52 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0x1.fp-100 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (0x1.fp-100 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casin (0x1.fp-1000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (0x1.fp-1000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (0x1.fp-10000 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-10000 - 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casin (0x1.fp-1025 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
 double: 1
 idouble: 1
 Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
 double: 1
 idouble: 1
+Test "Real part of: casin (0x1.fp-1025 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
 double: 1
 idouble: 1
@@ -2350,6 +2494,9 @@ ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 + 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0x1.fp-129 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
 double: 1
 float: 1
@@ -2370,6 +2517,9 @@ ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 - 0x1p-23 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0x1.fp-129 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
 double: 1
 float: 1
@@ -2410,6 +2560,9 @@ idouble: 1
 Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
 float: 1
 ifloat: 1
@@ -2442,6 +2595,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 + 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casin (0x1p-23 - 0.5 i)":
 double: 1
 float: 1
@@ -2462,6 +2618,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casin (0x1p-23 - 0x1.000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
 double: 1
 float: 1
@@ -2520,6 +2679,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2533,6 +2695,9 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
 ildouble: 1
 ldouble: 1
@@ -2723,6 +2888,9 @@ ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
 double: 1
 float: 1
@@ -2737,11 +2905,20 @@ ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-0x1.fp-1025 + 0.5 i)":
 ildouble: 1
 ldouble: 1
@@ -2838,6 +3015,8 @@ ldouble: 1
 Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-0x1p-52 + 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -2849,6 +3028,8 @@ ldouble: 1
 Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-0x1p-52 - 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -2892,17 +3073,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -2941,17 +3137,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (-1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -3142,6 +3353,9 @@ ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 + 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 + 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
 double: 1
 float: 1
@@ -3156,11 +3370,20 @@ ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 - 0x1.fp-129 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (0x1.000002p0 - 0x1p-23 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1.fp-1025 + 0.5 i)":
 ildouble: 1
 ldouble: 1
@@ -3221,6 +3444,9 @@ idouble: 1
 Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
 double: 1
 idouble: 1
+Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1p-23 + 0.0 i)":
 ildouble: 1
 ldouble: 1
@@ -3263,6 +3489,8 @@ ldouble: 1
 Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1p-52 + 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -3274,6 +3502,8 @@ ldouble: 1
 Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (0x1p-52 - 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
@@ -3317,17 +3547,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 + 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -3366,17 +3611,32 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-100 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-1000 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-10000 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
 double: 1
 idouble: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-1025 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: casinh (1.0 - 0x1.fp-129 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
 double: 1
 float: 1
@@ -3421,6 +3681,9 @@ ifloat: 1
 Test "Imaginary part of: catan (-0x1.0000000000001p0 + 0x1p-27 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
 double: 1
 idouble: 1
@@ -3454,30 +3717,57 @@ ldouble: 1
 Test "Imaginary part of: catan (-0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-13 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-16382 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-64 + 1.0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (-0x1p-64 - 1.0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (-1.0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3500,6 +3790,9 @@ ifloat: 1
 Test "Imaginary part of: catan (0x1.0000000000001p0 + 0x1p-27 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
 double: 1
 idouble: 1
@@ -3533,35 +3826,68 @@ ldouble: 1
 Test "Imaginary part of: catan (0x1p-1022 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-13 + 0x0.ffffffp0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-16382 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-64 + 1.0 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (0x1p-64 - 1.0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: catan (1.0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
 
 # catanh
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
 ildouble: 1
 ldouble: 1
@@ -3580,6 +3906,18 @@ ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
 ildouble: 1
 ldouble: 1
@@ -3604,6 +3942,18 @@ idouble: 1
 Test "Real part of: catanh (-0x1p-13 - 1.0 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 + 1.0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x1p-64 + 1.0 i)":
 ildouble: 1
 ldouble: 1
@@ -3616,6 +3966,9 @@ ldouble: 1
 Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3625,6 +3978,9 @@ ldouble: 1
 Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3654,6 +4010,18 @@ ldouble: 1
 Test "Real part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x0.ffffffp0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x0.ffffffp0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
 ildouble: 1
 ldouble: 1
@@ -3682,12 +4050,18 @@ idouble: 1
 Test "Real part of: catanh (0x1p-27 + 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x1p-27 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
 double: 1
 idouble: 1
 Test "Real part of: catanh (0x1p-27 - 0x1.0000000000001p0 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
@@ -3706,6 +4080,9 @@ ldouble: 1
 Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (1.0 + 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3715,6 +4092,9 @@ ldouble: 1
 Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (1.0 - 0x1p-64 i)":
 ildouble: 1
 ldouble: 1
@@ -3954,6 +4334,9 @@ ifloat: 1
 Test "Real part of: clog (0x1.fffffep+127 + 0x1.fffffep+127 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: clog (0x1.fp+16383 + 0x1p+16383 i)":
 ildouble: 1
 ldouble: 1
@@ -4527,6 +4910,7 @@ ldouble: 1
 # cosh_upward
 Test "cosh_upward (22)":
 ildouble: 2
+ldouble: 1
 Test "cosh_upward (23)":
 ildouble: 2
 ldouble: 1
@@ -5494,6 +5878,9 @@ idouble: 1
 # sinh
 Test "sinh (0.75)":
 ildouble: 1
+Test "sinh (0x8p-32)":
+ildouble: 1
+ldouble: 1
 
 # sinh_downward
 Test "sinh_downward (22)":
@@ -5754,8 +6141,8 @@ ldouble: 2
 Test "tgamma (-0x1e.00002p0)":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 Test "tgamma (-0x1f4.00000000000002p0)":
 ildouble: 3
 ldouble: 3
@@ -7062,6 +7449,7 @@ ldouble: 1
 
 Function: "sinh":
 ildouble: 1
+ldouble: 1
 
 Function: "sinh_downward":
 double: 1
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 563fea8..d02618a 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -4233,6 +4233,9 @@ ifloat: 1
 Test "Real part of: catan (-0x1p-13 + 1.0 i)":
 float: 1
 ifloat: 1
+Test "Imaginary part of: catan (-0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-13 - 0x0.ffffffp0 i)":
 ildouble: 1
 ldouble: 1
@@ -4251,12 +4254,27 @@ ldouble: 1
 Test "Imaginary part of: catan (-0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (-0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
 float: 1
 ifloat: 1
@@ -4386,6 +4404,9 @@ ifloat: 1
 Test "Real part of: catan (0x1p-13 + 1.0 i)":
 float: 1
 ifloat: 1
+Test "Imaginary part of: catan (0x1p-13 + 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-13 - 0x0.ffffffp0 i)":
 ildouble: 1
 ldouble: 1
@@ -4404,12 +4425,27 @@ ldouble: 1
 Test "Imaginary part of: catan (0x1p-16382 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x0.fffffffffffff8p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 0x1.0000000000001p0 i)":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: catan (0x1p-27 - 1.0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
 float: 1
 ifloat: 1
@@ -4451,6 +4487,12 @@ ildouble: 1
 ldouble: 1
 
 # catanh
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x0.fffffffffffff8p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-1022 i)":
 ildouble: 1
 ldouble: 1
@@ -4475,6 +4517,18 @@ ldouble: 1
 Test "Real part of: catanh (-0x0.ffffffp0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (-0x1.0000000000001p0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -4570,6 +4624,9 @@ ldouble: 1
 Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
+Test "Real part of: catanh (-1.0 + 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
 float: 1
 ifloat: 1
@@ -4590,6 +4647,9 @@ ldouble: 1
 Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
 float: 1
 ifloat: 1
+Test "Real part of: catanh (-1.0 - 0x1p-27 i)":
+ildouble: 1
+ldouble: 1
 Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
 float: 1
 ifloat: 1
@@ -4629,6 +4689,12 @@ ldouble: 1
 Test "Real part of: catanh (0x0.ffffffp0 - 0x1p-13 i)":
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
+Test "Real part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -4721,6 +4787,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 + 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -4741,6 +4810,9 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: catanh (1.0 - 0x1p-13 i)":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
 float: 1
 ifloat: 1
@@ -5582,6 +5654,9 @@ ildouble: 1
 ldouble: 1
 
 # cosh_upward
+Test "cosh_upward (22)":
+ildouble: 1
+ldouble: 1
 Test "cosh_upward (23)":
 ildouble: 1
 ldouble: 1
@@ -5776,9 +5851,14 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: ctan (0.75 + 1.25 i)":
+float: 1
+ifloat: 1
 Test "Imaginary part of: ctan (0.75 + 1.25 i)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "Real part of: ctan (0x1p1023 + 1 i)":
@@ -5895,9 +5975,9 @@ ldouble: 1
 # ctanh
 Test "Real part of: ctanh (-2 - 3 i)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "Imaginary part of: ctanh (-2 - 3 i)":
@@ -6039,6 +6119,9 @@ double: 1
 idouble: 1
 
 # erfc
+Test "erfc (0.75)":
+float: 1
+ifloat: 1
 Test "erfc (0x1.f7303cp+1)":
 double: 1
 idouble: 1
@@ -6589,6 +6672,11 @@ Test "sincos (M_PI_6l*2.0) extra output 2":
 double: 1
 idouble: 1
 
+# sinh
+Test "sinh (0x8p-32)":
+ildouble: 1
+ldouble: 1
+
 # sinh_downward
 Test "sinh_downward (22)":
 float: 1
@@ -6934,7 +7022,9 @@ float: 1
 ifloat: 1
 Test "tgamma (-0x4.fffff8p0)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "tgamma (-0x4.ffffffffffffcp0)":
@@ -6951,9 +7041,9 @@ ildouble: 1
 ldouble: 1
 Test "tgamma (-0x5.000008p0)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "tgamma (-0x5.ffffffffffffcp0)":
@@ -7158,9 +7248,9 @@ ildouble: 1
 ldouble: 1
 Test "tgamma (-9.5)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 2
 ldouble: 2
 Test "tgamma (0.5)":
@@ -7231,6 +7321,8 @@ Test "tgamma (0x4.0000000000004p0)":
 double: 1
 idouble: 1
 Test "tgamma (0x4.fffff8p0)":
+float: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "tgamma (0x4.ffffffffffffcp0)":
@@ -7246,8 +7338,8 @@ Test "tgamma (0x5.0000000000004p0)":
 double: 1
 idouble: 1
 Test "tgamma (0x5.000008p0)":
-float: 2
-ifloat: 2
+float: 3
+ifloat: 3
 ildouble: 1
 ldouble: 1
 Test "tgamma (0x5.fffff8p0)":
@@ -7422,7 +7514,9 @@ ildouble: 1
 ldouble: 1
 Test "tgamma (9.5)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
@@ -7447,7 +7541,9 @@ Test "y0 (0x1p-110)":
 double: 1
 idouble: 1
 Test "y0 (0x1p-20)":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 Test "y0 (0x1p-30)":
 float: 1
@@ -7462,9 +7558,14 @@ ifloat: 1
 Test "y0 (0x1p-50)":
 float: 1
 ifloat: 1
+Test "y0 (0x1p-60)":
+float: 1
+ifloat: 1
 Test "y0 (0x1p-70)":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 Test "y0 (0x1p-80)":
 double: 1
 float: 1
@@ -7486,8 +7587,13 @@ float: 1
 idouble: 2
 ifloat: 1
 Test "y0 (10.0)":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
+Test "y0 (2.0)":
+double: 1
+idouble: 1
 Test "y0 (8.0)":
 double: 1
 float: 1
@@ -7556,8 +7662,13 @@ float: 1
 idouble: 2
 ifloat: 1
 Test "yn (0, 10.0)":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
+Test "yn (0, 2.0)":
+double: 1
+idouble: 1
 Test "yn (0, 8.0)":
 double: 1
 float: 1
@@ -7597,22 +7708,26 @@ ildouble: 2
 ldouble: 2
 Test "yn (10, 0.75)":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 4
 ldouble: 4
 Test "yn (10, 1.0)":
 double: 1
+float: 2
 idouble: 1
+ifloat: 2
 Test "yn (10, 10.0)":
-double: 1
+double: 2
 float: 1
-idouble: 1
+idouble: 2
 ifloat: 1
 Test "yn (10, 2.0)":
-double: 2
-idouble: 2
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
 Test "yn (3, 0.125)":
 double: 1
 idouble: 1
@@ -8239,6 +8354,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "sinh":
+ildouble: 1
+ldouble: 1
+
 Function: "sinh_downward":
 float: 1
 ifloat: 1

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]