about summary refs log tree commit diff
path: root/sysdeps/x86_64/fpu
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-06-26 22:01:27 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-06-26 22:02:24 +0000
commitc86ed71d633c22d6f638576f7660c52a5f783d66 (patch)
tree610b82948e239aed3d612a99c01318dedf497422 /sysdeps/x86_64/fpu
parent3f823e87ccbf3723eb4eeb63b0619f1a0ceb174e (diff)
downloadglibc-c86ed71d633c22d6f638576f7660c52a5f783d66.tar.gz
glibc-c86ed71d633c22d6f638576f7660c52a5f783d66.tar.xz
glibc-c86ed71d633c22d6f638576f7660c52a5f783d66.zip
Add float128 support for x86_64, x86.
This patch enables float128 support for x86_64 and x86.  All GCC
versions that can build glibc provide the required support, but since
GCC 6 and before don't provide __builtin_nanq / __builtin_nansq, sNaN
tests and some tests of NaN payloads need to be disabled with such
compilers (this does not affect the generated glibc binaries at all,
just the tests).  bits/floatn.h declares float128 support to be
available for GCC versions that provide the required libgcc support
(4.3 for x86_64, 4.4 for i386 GNU/Linux, 4.5 for i386 GNU/Hurd);
compilation-only support was present some time before then, but not
really useful without the libgcc functions.

fenv_private.h needed updating to avoid trying to put _Float128 values
in registers.  I make no assertion of optimality of the
math_opt_barrier / math_force_eval definitions for this case; they are
simply intended to be sufficient to work correctly.

Tested for x86_64 and x86, with GCC 7 and GCC 6.  (Testing for x32 was
compilation tests only with build-many-glibcs.py to verify the ABI
baseline updates.  I have not done any testing for Hurd, although the
float128 support is enabled there as for GNU/Linux.)

	* sysdeps/i386/Implies: Add ieee754/float128.
	* sysdeps/x86_64/Implies: Likewise.
	* sysdeps/x86/bits/floatn.h: New file.
	* sysdeps/x86/float128-abi.h: Likewise.
	* manual/math.texi (Mathematics): Document support for _Float128
	on x86_64 and x86.
	* sysdeps/i386/fpu/fenv_private.h: Include <bits/floatn.h>.
	(math_opt_barrier): Do not put _Float128 values in floating-point
	registers.
	(math_force_eval): Likewise.
	[__x86_64__] (SET_RESTORE_ROUNDF128): New macro.
	* sysdeps/x86/fpu/Makefile [$(subdir) = math] (CPPFLAGS): Append
	to Makefile variable.
	* sysdeps/x86/fpu/e_sqrtf128.c: New file.
	* sysdeps/x86/fpu/sfp-machine.h: Likewise.  Based on libgcc.
	* sysdeps/x86/math-tests.h: New file.
	* math/libm-test-support.h (XFAIL_FLOAT128_PAYLOAD): New macro.
	* math/libm-test-getpayload.inc (getpayload_test_data): Use
	XFAIL_FLOAT128_PAYLOAD.
	* math/libm-test-setpayload.inc (setpayload_test_data): Likewise.
	* math/libm-test-totalorder.inc (totalorder_test_data): Likewise.
	* math/libm-test-totalordermag.inc (totalordermag_test_data):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Update.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Diffstat (limited to 'sysdeps/x86_64/fpu')
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps564
1 files changed, 564 insertions, 0 deletions
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 61da961a57..c347642044 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -3,1027 +3,1291 @@
 # Maximal error of functions:
 Function: "acos":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "acos_downward":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "acos_towardzero":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "acos_upward":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "acosh":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "acosh_downward":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: "acosh_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: "acosh_upward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: "asin":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "asin_downward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "asin_towardzero":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "asin_upward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "asinh":
 double: 1
 float: 1
+float128: 3
 idouble: 1
 ifloat: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "asinh_downward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "asinh_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: "asinh_upward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "atan":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "atan2":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "atan2_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "atan2_towardzero":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 3
 ildouble: 1
 ldouble: 1
 
 Function: "atan2_upward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "atan_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "atan_towardzero":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "atan_upward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "atanh":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "atanh_downward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "atanh_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: "atanh_upward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "cabs":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cabs_downward":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cabs_towardzero":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cabs_upward":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "cacos":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "cacos":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cacos_downward":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cacos_downward":
 double: 5
 float: 3
+float128: 6
 idouble: 5
 ifloat: 3
+ifloat128: 6
 ildouble: 6
 ldouble: 6
 
 Function: Real part of "cacos_towardzero":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cacos_towardzero":
 double: 5
 float: 3
+float128: 5
 idouble: 5
 ifloat: 3
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: Real part of "cacos_upward":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cacos_upward":
 double: 5
 float: 7
+float128: 7
 idouble: 5
 ifloat: 7
+ifloat128: 7
 ildouble: 7
 ldouble: 7
 
 Function: Real part of "cacosh":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cacosh":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "cacosh_downward":
 double: 5
 float: 3
+float128: 5
 idouble: 5
 ifloat: 3
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "cacosh_downward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "cacosh_towardzero":
 double: 5
 float: 3
+float128: 5
 idouble: 5
 ifloat: 3
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "cacosh_towardzero":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cacosh_upward":
 double: 4
 float: 4
+float128: 6
 idouble: 4
 ifloat: 4
+ifloat128: 6
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "cacosh_upward":
 double: 3
 float: 2
+float128: 4
 idouble: 3
 ifloat: 2
+ifloat128: 4
 ildouble: 3
 ldouble: 3
 
 Function: "carg":
 float: 1
+float128: 2
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "carg_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "carg_towardzero":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 3
 ildouble: 1
 ldouble: 1
 
 Function: "carg_upward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "casin":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "casin":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "casin_downward":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "casin_downward":
 double: 5
 float: 3
+float128: 6
 idouble: 5
 ifloat: 3
+ifloat128: 6
 ildouble: 6
 ldouble: 6
 
 Function: Real part of "casin_towardzero":
 double: 3
 float: 1
+float128: 3
 idouble: 3
 ifloat: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "casin_towardzero":
 double: 5
 float: 3
+float128: 5
 idouble: 5
 ifloat: 3
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: Real part of "casin_upward":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "casin_upward":
 double: 5
 float: 7
+float128: 7
 idouble: 5
 ifloat: 7
+ifloat128: 7
 ildouble: 7
 ldouble: 7
 
 Function: Real part of "casinh":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "casinh":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "casinh_downward":
 double: 5
 float: 3
+float128: 6
 idouble: 5
 ifloat: 3
+ifloat128: 6
 ildouble: 6
 ldouble: 6
 
 Function: Imaginary part of "casinh_downward":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "casinh_towardzero":
 double: 5
 float: 3
+float128: 5
 idouble: 5
 ifloat: 3
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "casinh_towardzero":
 double: 3
 float: 1
+float128: 3
 idouble: 3
 ifloat: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "casinh_upward":
 double: 5
 float: 7
+float128: 7
 idouble: 5
 ifloat: 7
+ifloat128: 7
 ildouble: 7
 ldouble: 7
 
 Function: Imaginary part of "casinh_upward":
 double: 3
 float: 2
+float128: 3
 idouble: 3
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "catan":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "catan":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "catan_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "catan_downward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "catan_towardzero":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "catan_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "catan_upward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "catan_upward":
 double: 3
 float: 3
+float128: 3
 idouble: 3
 ifloat: 3
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "catanh":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "catanh":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "catanh_downward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "catanh_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "catanh_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "catanh_towardzero":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "catanh_upward":
 double: 4
 float: 4
+float128: 4
 idouble: 4
 ifloat: 4
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "catanh_upward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "cbrt":
 double: 3
 float: 1
+float128: 1
 idouble: 3
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cbrt_downward":
 double: 4
 float: 1
+float128: 1
 idouble: 4
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cbrt_towardzero":
 double: 3
 float: 1
+float128: 1
 idouble: 3
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cbrt_upward":
 double: 5
 float: 1
+float128: 1
 idouble: 5
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccos":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "ccos":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccos_downward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "ccos_downward":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "ccos_towardzero":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "ccos_towardzero":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "ccos_upward":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccos_upward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ccosh":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "ccosh":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "ccosh_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "ccosh_downward":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "ccosh_towardzero":
 double: 1
 float: 3
+float128: 2
 idouble: 1
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "ccosh_towardzero":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "ccosh_upward":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ccosh_upward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cexp":
 double: 2
 float: 1
+float128: 1
 idouble: 2
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "cexp":
 double: 1
 float: 2
+float128: 1
 idouble: 1
 ifloat: 2
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "cexp_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_downward":
 double: 1
 float: 3
+float128: 2
 idouble: 1
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "cexp_towardzero":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cexp_towardzero":
 double: 1
 float: 3
+float128: 2
 idouble: 1
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "cexp_upward":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp_upward":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "clog":
 double: 3
 float: 3
+float128: 2
 idouble: 3
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "clog":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "clog10":
 double: 3
 float: 4
+float128: 2
 idouble: 3
 ifloat: 4
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "clog10":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "clog10_downward":
 double: 5
 float: 4
+float128: 3
 idouble: 5
 ifloat: 4
+ifloat128: 3
 ildouble: 8
 ldouble: 8
 
 Function: Imaginary part of "clog10_downward":
 double: 2
 float: 4
+float128: 3
 idouble: 2
 ifloat: 4
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "clog10_towardzero":
 double: 5
 float: 5
+float128: 4
 idouble: 5
 ifloat: 5
+ifloat128: 4
 ildouble: 8
 ldouble: 8
 
 Function: Imaginary part of "clog10_towardzero":
 double: 2
 float: 4
+float128: 3
 idouble: 2
 ifloat: 4
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "clog10_upward":
 double: 6
 float: 5
+float128: 4
 idouble: 6
 ifloat: 5
+ifloat128: 4
 ildouble: 8
 ldouble: 8
 
 Function: Imaginary part of "clog10_upward":
 double: 2
 float: 4
+float128: 3
 idouble: 2
 ifloat: 4
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "clog_downward":
 double: 4
 float: 3
+float128: 3
 idouble: 4
 ifloat: 3
+ifloat128: 3
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "clog_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "clog_towardzero":
 double: 4
 float: 4
+float128: 3
 idouble: 4
 ifloat: 4
+ifloat128: 3
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "clog_towardzero":
 double: 1
 float: 3
+float128: 2
 idouble: 1
 ifloat: 3
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "clog_upward":
 double: 4
 float: 3
+float128: 4
 idouble: 4
 ifloat: 3
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "clog_upward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "cos":
+float128: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "cos_downward":
 double: 1
+float128: 3
 idouble: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "cos_towardzero":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "cos_upward":
 double: 1
+float128: 2
 idouble: 1
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
@@ -1050,534 +1314,674 @@ float: 1
 Function: "cosh":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "cosh_downward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 3
 
 Function: "cosh_towardzero":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "cosh_upward":
 double: 1
 float: 2
+float128: 3
 idouble: 1
 ifloat: 2
+ifloat128: 1
 ildouble: 2
 ldouble: 3
 
 Function: Real part of "cpow":
 double: 2
 float: 5
+float128: 4
 idouble: 2
 ifloat: 5
+ifloat128: 4
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "cpow":
 float: 2
+float128: 1
 ifloat: 2
+ifloat128: 1
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "cpow_downward":
 double: 4
 float: 8
+float128: 6
 idouble: 4
 ifloat: 8
+ifloat128: 6
 ildouble: 7
 ldouble: 7
 
 Function: Imaginary part of "cpow_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "cpow_towardzero":
 double: 4
 float: 8
+float128: 6
 idouble: 4
 ifloat: 8
+ifloat128: 6
 ildouble: 7
 ldouble: 7
 
 Function: Imaginary part of "cpow_towardzero":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "cpow_upward":
 double: 4
 float: 1
+float128: 3
 idouble: 4
 ifloat: 1
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cpow_upward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "csin":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
+Function: Imaginary part of "csin":
+float128: 1
+ifloat128: 1
+
 Function: Real part of "csin_downward":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csin_downward":
 double: 1
 float: 2
+float128: 2
 idouble: 1
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "csin_towardzero":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csin_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "csin_upward":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csin_upward":
 double: 1
 float: 3
+float128: 3
 idouble: 1
 ifloat: 3
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "csinh":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "csinh":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "csinh_downward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csinh_downward":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "csinh_towardzero":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csinh_towardzero":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "csinh_upward":
 double: 1
 float: 3
+float128: 3
 idouble: 1
 ifloat: 3
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "csinh_upward":
 double: 2
 float: 3
+float128: 2
 idouble: 2
 ifloat: 3
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "csqrt":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "csqrt":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "csqrt_downward":
 double: 5
 float: 4
+float128: 4
 idouble: 5
 ifloat: 4
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "csqrt_downward":
 double: 4
 float: 3
+float128: 3
 idouble: 4
 ifloat: 3
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "csqrt_towardzero":
 double: 4
 float: 3
+float128: 3
 idouble: 4
 ifloat: 3
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "csqrt_towardzero":
 double: 4
 float: 3
+float128: 3
 idouble: 4
 ifloat: 3
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "csqrt_upward":
 double: 5
 float: 4
+float128: 4
 idouble: 5
 ifloat: 4
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "csqrt_upward":
 double: 3
 float: 3
+float128: 3
 idouble: 3
 ifloat: 3
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "ctan":
 double: 1
 float: 1
+float128: 3
 idouble: 1
 ifloat: 1
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "ctan":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 1
 ldouble: 1
 
 Function: Real part of "ctan_downward":
 double: 6
 float: 5
+float128: 4
 idouble: 6
 ifloat: 5
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "ctan_downward":
 double: 2
 float: 2
+float128: 5
 idouble: 2
 ifloat: 2
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "ctan_towardzero":
 double: 5
 float: 3
+float128: 4
 idouble: 5
 ifloat: 3
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: Imaginary part of "ctan_towardzero":
 double: 2
 float: 2
+float128: 5
 idouble: 2
 ifloat: 2
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "ctan_upward":
 double: 2
 float: 4
+float128: 5
 idouble: 2
 ifloat: 4
+ifloat128: 5
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "ctan_upward":
 double: 2
 float: 1
+float128: 5
 idouble: 2
 ifloat: 1
+ifloat128: 5
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "ctanh":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "ctanh":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "ctanh_downward":
 double: 4
 float: 2
+float128: 5
 idouble: 4
 ifloat: 2
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "ctanh_downward":
 double: 6
 float: 5
+float128: 4
 idouble: 6
 ifloat: 5
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: Real part of "ctanh_towardzero":
 double: 2
 float: 2
+float128: 5
 idouble: 2
 ifloat: 2
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: Imaginary part of "ctanh_towardzero":
 double: 5
 float: 3
+float128: 3
 idouble: 5
 ifloat: 3
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: Real part of "ctanh_upward":
 double: 2
 float: 2
+float128: 5
 idouble: 2
 ifloat: 2
+ifloat128: 5
 ildouble: 3
 ldouble: 3
 
 Function: Imaginary part of "ctanh_upward":
 double: 2
 float: 3
+float128: 5
 idouble: 2
 ifloat: 3
+ifloat128: 5
 ildouble: 3
 ldouble: 3
 
 Function: "erf":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "erf_downward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "erf_towardzero":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "erf_upward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "erfc":
 double: 3
 float: 2
+float128: 2
 idouble: 3
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: "erfc_downward":
 double: 5
 float: 6
+float128: 5
 idouble: 5
 ifloat: 6
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: "erfc_towardzero":
 double: 3
 float: 4
+float128: 4
 idouble: 3
 ifloat: 4
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: "erfc_upward":
 double: 5
 float: 6
+float128: 5
 idouble: 5
 ifloat: 6
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: "exp":
+float128: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "exp10":
 double: 2
+float128: 2
 idouble: 2
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "exp10_downward":
 double: 2
 float: 1
+float128: 3
 idouble: 2
 ifloat: 1
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: "exp10_towardzero":
 double: 2
 float: 1
+float128: 3
 idouble: 2
 ifloat: 1
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: "exp10_upward":
 double: 2
 float: 1
+float128: 3
 idouble: 2
 ifloat: 1
+ifloat128: 3
 ildouble: 2
 ldouble: 2
 
 Function: "exp2":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "exp2_downward":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "exp2_towardzero":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "exp2_upward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
@@ -1624,32 +2028,40 @@ float: 1
 Function: "expm1":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "expm1_downward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: "expm1_towardzero":
 double: 1
 float: 2
+float128: 4
 idouble: 1
 ifloat: 2
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: "expm1_upward":
 double: 1
 float: 1
+float128: 3
 idouble: 1
 ifloat: 1
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
@@ -1687,275 +2099,347 @@ ldouble: 6
 
 Function: "hypot":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "hypot_downward":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "hypot_towardzero":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "hypot_upward":
 double: 1
+float128: 1
 idouble: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "j0":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "j0_downward":
 double: 2
 float: 4
+float128: 4
 idouble: 2
 ifloat: 4
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: "j0_towardzero":
 double: 3
 float: 2
+float128: 2
 idouble: 3
 ifloat: 2
+ifloat128: 2
 ildouble: 5
 ldouble: 5
 
 Function: "j0_upward":
 double: 3
 float: 2
+float128: 5
 idouble: 3
 ifloat: 2
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: "j1":
 double: 1
 float: 2
+float128: 4
 idouble: 1
 ifloat: 2
+ifloat128: 4
 ildouble: 1
 ldouble: 1
 
 Function: "j1_downward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: "j1_towardzero":
 double: 3
 float: 2
+float128: 4
 idouble: 3
 ifloat: 2
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: "j1_upward":
 double: 3
 float: 5
+float128: 3
 idouble: 3
 ifloat: 5
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "jn":
 double: 4
 float: 4
+float128: 7
 idouble: 4
 ifloat: 4
+ifloat128: 7
 ildouble: 4
 ldouble: 4
 
 Function: "jn_downward":
 double: 5
 float: 5
+float128: 8
 idouble: 5
 ifloat: 5
+ifloat128: 8
 ildouble: 4
 ldouble: 4
 
 Function: "jn_towardzero":
 double: 5
 float: 5
+float128: 8
 idouble: 5
 ifloat: 5
+ifloat128: 8
 ildouble: 5
 ldouble: 5
 
 Function: "jn_upward":
 double: 5
 float: 5
+float128: 7
 idouble: 5
 ifloat: 5
+ifloat128: 7
 ildouble: 5
 ldouble: 5
 
 Function: "lgamma":
 double: 4
 float: 4
+float128: 5
 idouble: 4
 ifloat: 4
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: "lgamma_downward":
 double: 5
 float: 4
+float128: 8
 idouble: 5
 ifloat: 4
+ifloat128: 8
 ildouble: 7
 ldouble: 7
 
 Function: "lgamma_towardzero":
 double: 5
 float: 4
+float128: 5
 idouble: 5
 ifloat: 4
+ifloat128: 5
 ildouble: 7
 ldouble: 7
 
 Function: "lgamma_upward":
 double: 5
 float: 5
+float128: 8
 idouble: 5
 ifloat: 5
+ifloat128: 8
 ildouble: 6
 ldouble: 6
 
 Function: "log":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "log10":
 double: 2
 float: 2
+float128: 1
 idouble: 2
 ifloat: 2
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "log10_downward":
 double: 2
 float: 3
+float128: 1
 idouble: 2
 ifloat: 3
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "log10_towardzero":
 double: 2
 float: 2
+float128: 1
 idouble: 2
 ifloat: 2
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "log10_upward":
 double: 2
 float: 2
+float128: 1
 idouble: 2
 ifloat: 2
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "log1p":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "log1p_downward":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: "log1p_towardzero":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: "log1p_upward":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: "log2":
 double: 2
 float: 1
+float128: 2
 idouble: 2
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
 Function: "log2_downward":
 double: 3
 float: 3
+float128: 3
 idouble: 3
 ifloat: 3
+ifloat128: 3
 ildouble: 1
 ldouble: 1
 
 Function: "log2_towardzero":
 double: 2
 float: 2
+float128: 1
 idouble: 2
 ifloat: 2
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "log2_upward":
 double: 3
 float: 3
+float128: 1
 idouble: 3
 ifloat: 3
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "log_downward":
 float: 2
+float128: 1
 ifloat: 2
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "log_towardzero":
 float: 2
+float128: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "log_upward":
 double: 1
 float: 2
+float128: 1
 idouble: 1
 ifloat: 2
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
@@ -1981,7 +2465,9 @@ float: 2
 
 Function: "pow":
 float: 1
+float128: 2
 ifloat: 1
+ifloat128: 2
 ildouble: 1
 ldouble: 1
 
@@ -2018,24 +2504,30 @@ ldouble: 2
 Function: "pow_downward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: "pow_towardzero":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
 Function: "pow_upward":
 double: 1
 float: 1
+float128: 2
 idouble: 1
 ifloat: 1
+ifloat128: 2
 ildouble: 4
 ldouble: 4
 
@@ -2060,24 +2552,32 @@ Function: "pow_vlen8_avx2":
 float: 3
 
 Function: "sin":
+float128: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "sin_downward":
 double: 1
+float128: 3
 idouble: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "sin_towardzero":
 double: 1
+float128: 2
 idouble: 1
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "sin_upward":
 double: 1
+float128: 3
 idouble: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
@@ -2102,24 +2602,32 @@ Function: "sin_vlen8_avx2":
 float: 1
 
 Function: "sincos":
+float128: 1
+ifloat128: 1
 ildouble: 1
 ldouble: 1
 
 Function: "sincos_downward":
 double: 1
+float128: 3
 idouble: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "sincos_towardzero":
 double: 1
+float128: 2
 idouble: 1
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "sincos_upward":
 double: 1
+float128: 3
 idouble: 1
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
@@ -2146,222 +2654,278 @@ float: 1
 Function: "sinh":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "sinh_downward":
 double: 3
 float: 3
+float128: 3
 idouble: 3
 ifloat: 3
+ifloat128: 3
 ildouble: 5
 ldouble: 5
 
 Function: "sinh_towardzero":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: "sinh_upward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "tan":
 float: 1
+float128: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "tan_downward":
 double: 1
 float: 2
+float128: 1
 idouble: 1
 ifloat: 2
+ifloat128: 1
 ildouble: 3
 ldouble: 3
 
 Function: "tan_towardzero":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 3
 ldouble: 3
 
 Function: "tan_upward":
 double: 1
 float: 1
+float128: 1
 idouble: 1
 ifloat: 1
+ifloat128: 1
 ildouble: 2
 ldouble: 2
 
 Function: "tanh":
 double: 2
 float: 2
+float128: 2
 idouble: 2
 ifloat: 2
+ifloat128: 2
 ildouble: 3
 ldouble: 3
 
 Function: "tanh_downward":
 double: 3
 float: 3
+float128: 4
 idouble: 3
 ifloat: 3
+ifloat128: 4
 ildouble: 4
 ldouble: 4
 
 Function: "tanh_towardzero":
 double: 2
 float: 2
+float128: 3
 idouble: 2
 ifloat: 2
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "tanh_upward":
 double: 3
 float: 3
+float128: 3
 idouble: 3
 ifloat: 3
+ifloat128: 3
 ildouble: 4
 ldouble: 4
 
 Function: "tgamma":
 double: 5
 float: 5
+float128: 4
 idouble: 5
 ifloat: 5
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "tgamma_downward":
 double: 5
 float: 5
+float128: 5
 idouble: 5
 ifloat: 5
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: "tgamma_towardzero":
 double: 5
 float: 5
+float128: 5
 idouble: 5
 ifloat: 5
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: "tgamma_upward":
 double: 5
 float: 5
+float128: 4
 idouble: 5
 ifloat: 5
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "y0":
 double: 2
 float: 1
+float128: 3
 idouble: 2
 ifloat: 1
+ifloat128: 3
 ildouble: 1
 ldouble: 1
 
 Function: "y0_downward":
 double: 3
 float: 4
+float128: 4
 idouble: 3
 ifloat: 4
+ifloat128: 4
 ildouble: 5
 ldouble: 5
 
 Function: "y0_towardzero":
 double: 3
 float: 3
+float128: 3
 idouble: 3
 ifloat: 3
+ifloat128: 3
 ildouble: 5
 ldouble: 5
 
 Function: "y0_upward":
 double: 3
 float: 5
+float128: 3
 idouble: 3
 ifloat: 5
+ifloat128: 3
 ildouble: 3
 ldouble: 3
 
 Function: "y1":
 double: 3
 float: 2
+float128: 2
 idouble: 3
 ifloat: 2
+ifloat128: 2
 ildouble: 2
 ldouble: 2
 
 Function: "y1_downward":
 double: 3
 float: 2
+float128: 4
 idouble: 3
 ifloat: 2
+ifloat128: 4
 ildouble: 7
 ldouble: 7
 
 Function: "y1_towardzero":
 double: 3
 float: 2
+float128: 2
 idouble: 3
 ifloat: 2
+ifloat128: 2
 ildouble: 5
 ldouble: 5
 
 Function: "y1_upward":
 double: 7
 float: 2
+float128: 5
 idouble: 7
 ifloat: 2
+ifloat128: 5
 ildouble: 7
 ldouble: 7
 
 Function: "yn":
 double: 3
 float: 3
+float128: 5
 idouble: 3
 ifloat: 3
+ifloat128: 5
 ildouble: 4
 ldouble: 4
 
 Function: "yn_downward":
 double: 3
 float: 4
+float128: 5
 idouble: 3
 ifloat: 4
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: "yn_towardzero":
 double: 3
 float: 3
+float128: 5
 idouble: 3
 ifloat: 3
+ifloat128: 5
 ildouble: 5
 ldouble: 5
 
 Function: "yn_upward":
 double: 4
 float: 5
+float128: 5
 idouble: 4
 ifloat: 5
+ifloat128: 5
 ildouble: 4
 ldouble: 4