* [PATCH 1/2] rsciv: Consolidate the libm-test-ulps @ 2020-09-04 19:45 Alistair Francis 2020-09-04 19:45 ` [PATCH 2/2] riscv: Remove RV32 floating point functions Alistair Francis 2020-09-04 20:27 ` [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Florian Weimer 0 siblings, 2 replies; 4+ messages in thread From: Alistair Francis @ 2020-09-04 19:45 UTC (permalink / raw) To: libc-alpha; +Cc: alistair23, alistair.francis Both RV32 and RV64 have the same libm-test-ulps, so consolidate them into a single file. --- sysdeps/riscv/rv64/rvd/libm-test-ulps | 1405 ----------------- sysdeps/riscv/rv64/rvd/libm-test-ulps-name | 1 - sysdeps/riscv/{rv32 => }/rvd/libm-test-ulps | 0 .../riscv/{rv32 => }/rvd/libm-test-ulps-name | 0 4 files changed, 1406 deletions(-) delete mode 100644 sysdeps/riscv/rv64/rvd/libm-test-ulps delete mode 100644 sysdeps/riscv/rv64/rvd/libm-test-ulps-name rename sysdeps/riscv/{rv32 => }/rvd/libm-test-ulps (100%) rename sysdeps/riscv/{rv32 => }/rvd/libm-test-ulps-name (100%) diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rv64/rvd/libm-test-ulps deleted file mode 100644 index 5b6f121ac5..0000000000 --- a/sysdeps/riscv/rv64/rvd/libm-test-ulps +++ /dev/null @@ -1,1405 +0,0 @@ -# Begin of automatic generation - -# Maximal error of functions: -Function: "acos": -float: 1 -ldouble: 1 - -Function: "acos_downward": -double: 1 -float: 1 -ldouble: 1 - -Function: "acos_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "acos_upward": -double: 1 -float: 1 -ldouble: 1 - -Function: "acosh": -double: 2 -float: 2 -ldouble: 2 - -Function: "acosh_downward": -double: 2 -float: 2 -ldouble: 3 - -Function: "acosh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: "acosh_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: "asin": -float: 1 -ldouble: 1 - -Function: "asin_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "asin_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "asin_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "asinh": -double: 1 -float: 2 -ldouble: 3 - -Function: "asinh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: "asinh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: "asinh_upward": -double: 3 -float: 3 -ldouble: 4 - -Function: "atan": -float: 1 -ldouble: 1 - -Function: "atan2": -float: 1 -ldouble: 1 - -Function: "atan2_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: "atan2_towardzero": -double: 1 -float: 2 -ldouble: 3 - -Function: "atan2_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "atan_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: "atan_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "atan_upward": -double: 1 -float: 2 -ldouble: 2 - -Function: "atanh": -double: 2 -float: 2 -ldouble: 3 - -Function: "atanh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: "atanh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: "atanh_upward": -double: 3 -float: 3 -ldouble: 4 - -Function: "cabs": -double: 1 -ldouble: 1 - -Function: "cabs_downward": -double: 1 -ldouble: 1 - -Function: "cabs_towardzero": -double: 1 -ldouble: 1 - -Function: "cabs_upward": -double: 1 -ldouble: 1 - -Function: Real part of "cacos": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cacos": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "cacos_downward": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cacos_downward": -double: 5 -float: 3 -ldouble: 6 - -Function: Real part of "cacos_towardzero": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cacos_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Real part of "cacos_upward": -double: 2 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cacos_upward": -double: 5 -float: 5 -ldouble: 7 - -Function: Real part of "cacosh": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cacosh": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "cacosh_downward": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "cacosh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: Real part of "cacosh_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "cacosh_towardzero": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "cacosh_upward": -double: 4 -float: 3 -ldouble: 6 - -Function: Imaginary part of "cacosh_upward": -double: 3 -float: 2 -ldouble: 4 - -Function: "carg": -float: 1 -ldouble: 2 - -Function: "carg_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: "carg_towardzero": -double: 1 -float: 2 -ldouble: 3 - -Function: "carg_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "casin": -double: 1 -float: 1 -ldouble: 2 - -Function: Imaginary part of "casin": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "casin_downward": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "casin_downward": -double: 5 -float: 3 -ldouble: 6 - -Function: Real part of "casin_towardzero": -double: 3 -float: 1 -ldouble: 3 - -Function: Imaginary part of "casin_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Real part of "casin_upward": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "casin_upward": -double: 5 -float: 5 -ldouble: 7 - -Function: Real part of "casinh": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "casinh": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "casinh_downward": -double: 5 -float: 3 -ldouble: 6 - -Function: Imaginary part of "casinh_downward": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "casinh_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "casinh_towardzero": -double: 3 -float: 1 -ldouble: 3 - -Function: Real part of "casinh_upward": -double: 5 -float: 5 -ldouble: 7 - -Function: Imaginary part of "casinh_upward": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "catan": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "catan": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "catan_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catan_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "catan_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catan_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "catan_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: Imaginary part of "catan_upward": -double: 2 -float: 2 -ldouble: 3 - -Function: Real part of "catanh": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "catanh": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "catanh_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catanh_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "catanh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catanh_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "catanh_upward": -double: 4 -float: 4 -ldouble: 4 - -Function: Imaginary part of "catanh_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "cbrt": -double: 3 -float: 1 -ldouble: 1 - -Function: "cbrt_downward": -double: 4 -float: 1 -ldouble: 1 - -Function: "cbrt_towardzero": -double: 3 -float: 1 -ldouble: 1 - -Function: "cbrt_upward": -double: 5 -float: 1 -ldouble: 1 - -Function: Real part of "ccos": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "ccos": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "ccos_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: Imaginary part of "ccos_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccos_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "ccos_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccos_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "ccos_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "ccosh": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "ccosh": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "ccosh_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "ccosh_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccosh_towardzero": -double: 2 -float: 3 -ldouble: 2 - -Function: Imaginary part of "ccosh_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccosh_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "ccosh_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "cexp": -double: 2 -float: 1 -ldouble: 1 - -Function: Imaginary part of "cexp": -double: 1 -float: 2 -ldouble: 1 - -Function: Real part of "cexp_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "cexp_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "cexp_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cexp_upward": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "clog": -double: 3 -float: 3 -ldouble: 2 - -Function: Imaginary part of "clog": -float: 1 -ldouble: 1 - -Function: Real part of "clog10": -double: 3 -float: 4 -ldouble: 2 - -Function: Imaginary part of "clog10": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "clog10_downward": -double: 5 -float: 5 -ldouble: 3 - -Function: Imaginary part of "clog10_downward": -double: 2 -float: 4 -ldouble: 3 - -Function: Real part of "clog10_towardzero": -double: 5 -float: 5 -ldouble: 4 - -Function: Imaginary part of "clog10_towardzero": -double: 2 -float: 4 -ldouble: 3 - -Function: Real part of "clog10_upward": -double: 6 -float: 5 -ldouble: 4 - -Function: Imaginary part of "clog10_upward": -double: 2 -float: 4 -ldouble: 3 - -Function: Real part of "clog_downward": -double: 4 -float: 3 -ldouble: 3 - -Function: Imaginary part of "clog_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "clog_towardzero": -double: 4 -float: 4 -ldouble: 3 - -Function: Imaginary part of "clog_towardzero": -double: 1 -float: 3 -ldouble: 2 - -Function: Real part of "clog_upward": -double: 4 -float: 3 -ldouble: 4 - -Function: Imaginary part of "clog_upward": -double: 1 -float: 2 -ldouble: 2 - -Function: "cos": -double: 1 -float: 1 -ldouble: 1 - -Function: "cos_downward": -double: 1 -float: 1 -ldouble: 3 - -Function: "cos_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "cos_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "cosh": -double: 1 -float: 2 -ldouble: 1 - -Function: "cosh_downward": -double: 2 -float: 1 -ldouble: 2 - -Function: "cosh_towardzero": -double: 2 -float: 1 -ldouble: 2 - -Function: "cosh_upward": -double: 2 -float: 2 -ldouble: 3 - -Function: Real part of "cpow": -double: 2 -float: 5 -ldouble: 4 - -Function: Imaginary part of "cpow": -float: 2 -ldouble: 1 - -Function: Real part of "cpow_downward": -double: 5 -float: 8 -ldouble: 6 - -Function: Imaginary part of "cpow_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "cpow_towardzero": -double: 5 -float: 8 -ldouble: 6 - -Function: Imaginary part of "cpow_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "cpow_upward": -double: 4 -float: 1 -ldouble: 3 - -Function: Imaginary part of "cpow_upward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "csin": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "csin": -ldouble: 1 - -Function: Real part of "csin_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Imaginary part of "csin_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "csin_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Imaginary part of "csin_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "csin_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "csin_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Real part of "csinh": -float: 1 -ldouble: 1 - -Function: Imaginary part of "csinh": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "csinh_downward": -double: 2 -float: 1 -ldouble: 2 - -Function: Imaginary part of "csinh_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "csinh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "csinh_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "csinh_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "csinh_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "csqrt": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "csqrt": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "csqrt_downward": -double: 5 -float: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_downward": -double: 4 -float: 3 -ldouble: 3 - -Function: Real part of "csqrt_towardzero": -double: 4 -float: 3 -ldouble: 3 - -Function: Imaginary part of "csqrt_towardzero": -double: 4 -float: 3 -ldouble: 3 - -Function: Real part of "csqrt_upward": -double: 5 -float: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_upward": -double: 3 -float: 3 -ldouble: 3 - -Function: Real part of "ctan": -double: 1 -float: 1 -ldouble: 3 - -Function: Imaginary part of "ctan": -double: 2 -float: 2 -ldouble: 3 - -Function: Real part of "ctan_downward": -double: 6 -float: 5 -ldouble: 4 - -Function: Imaginary part of "ctan_downward": -double: 2 -float: 2 -ldouble: 5 - -Function: Real part of "ctan_towardzero": -double: 5 -float: 2 -ldouble: 4 - -Function: Imaginary part of "ctan_towardzero": -double: 2 -float: 2 -ldouble: 5 - -Function: Real part of "ctan_upward": -double: 2 -float: 4 -ldouble: 5 - -Function: Imaginary part of "ctan_upward": -double: 2 -float: 2 -ldouble: 5 - -Function: Real part of "ctanh": -double: 2 -float: 2 -ldouble: 3 - -Function: Imaginary part of "ctanh": -double: 2 -float: 1 -ldouble: 3 - -Function: Real part of "ctanh_downward": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "ctanh_downward": -double: 6 -float: 5 -ldouble: 4 - -Function: Real part of "ctanh_towardzero": -double: 2 -float: 2 -ldouble: 5 - -Function: Imaginary part of "ctanh_towardzero": -double: 5 -float: 2 -ldouble: 3 - -Function: Real part of "ctanh_upward": -double: 2 -float: 2 -ldouble: 5 - -Function: Imaginary part of "ctanh_upward": -double: 2 -float: 3 -ldouble: 5 - -Function: "erf": -double: 1 -float: 1 -ldouble: 1 - -Function: "erf_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "erf_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "erf_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "erfc": -double: 2 -float: 2 -ldouble: 2 - -Function: "erfc_downward": -double: 4 -float: 4 -ldouble: 5 - -Function: "erfc_towardzero": -double: 3 -float: 3 -ldouble: 4 - -Function: "erfc_upward": -double: 4 -float: 4 -ldouble: 5 - -Function: "exp": -float: 1 -ldouble: 1 - -Function: "exp10": -double: 2 -ldouble: 2 - -Function: "exp10_downward": -double: 3 -float: 1 -ldouble: 3 - -Function: "exp10_towardzero": -double: 3 -float: 1 -ldouble: 3 - -Function: "exp10_upward": -double: 2 -float: 1 -ldouble: 3 - -Function: "exp2": -double: 1 -ldouble: 1 - -Function: "exp2_downward": -double: 1 -ldouble: 1 - -Function: "exp2_towardzero": -double: 1 -ldouble: 1 - -Function: "exp2_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "exp_downward": -double: 1 -float: 1 - -Function: "exp_towardzero": -double: 1 -float: 1 - -Function: "exp_upward": -double: 1 -float: 1 - -Function: "expm1": -double: 1 -float: 1 -ldouble: 1 - -Function: "expm1_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "expm1_towardzero": -double: 1 -float: 2 -ldouble: 4 - -Function: "expm1_upward": -double: 1 -float: 1 -ldouble: 3 - -Function: "gamma": -double: 3 -float: 3 -ldouble: 5 - -Function: "gamma_downward": -double: 4 -float: 4 -ldouble: 8 - -Function: "gamma_towardzero": -double: 4 -float: 3 -ldouble: 5 - -Function: "gamma_upward": -double: 4 -float: 5 -ldouble: 8 - -Function: "hypot": -double: 1 -ldouble: 1 - -Function: "hypot_downward": -double: 1 -ldouble: 1 - -Function: "hypot_towardzero": -double: 1 -ldouble: 1 - -Function: "hypot_upward": -double: 1 -ldouble: 1 - -Function: "j0": -double: 2 -float: 8 -ldouble: 2 - -Function: "j0_downward": -double: 2 -float: 4 -ldouble: 4 - -Function: "j0_towardzero": -double: 5 -float: 6 -ldouble: 2 - -Function: "j0_upward": -double: 4 -float: 5 -ldouble: 5 - -Function: "j1": -double: 2 -float: 8 -ldouble: 4 - -Function: "j1_downward": -double: 3 -float: 5 -ldouble: 4 - -Function: "j1_towardzero": -double: 3 -float: 2 -ldouble: 4 - -Function: "j1_upward": -double: 3 -float: 4 -ldouble: 3 - -Function: "jn": -double: 4 -float: 4 -ldouble: 7 - -Function: "jn_downward": -double: 4 -float: 5 -ldouble: 8 - -Function: "jn_towardzero": -double: 4 -float: 5 -ldouble: 8 - -Function: "jn_upward": -double: 5 -float: 4 -ldouble: 7 - -Function: "lgamma": -double: 3 -float: 3 -ldouble: 5 - -Function: "lgamma_downward": -double: 4 -float: 4 -ldouble: 8 - -Function: "lgamma_towardzero": -double: 4 -float: 3 -ldouble: 5 - -Function: "lgamma_upward": -double: 4 -float: 5 -ldouble: 8 - -Function: "log": -ldouble: 1 - -Function: "log10": -double: 2 -float: 2 -ldouble: 1 - -Function: "log10_downward": -double: 2 -float: 3 -ldouble: 1 - -Function: "log10_towardzero": -double: 2 -float: 1 -ldouble: 1 - -Function: "log10_upward": -double: 2 -float: 2 -ldouble: 1 - -Function: "log1p": -double: 1 -float: 1 -ldouble: 2 - -Function: "log1p_downward": -double: 1 -float: 2 -ldouble: 3 - -Function: "log1p_towardzero": -double: 2 -float: 2 -ldouble: 3 - -Function: "log1p_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: "log2": -double: 1 -float: 1 -ldouble: 2 - -Function: "log2_downward": -double: 3 -ldouble: 3 - -Function: "log2_towardzero": -double: 2 -ldouble: 1 - -Function: "log2_upward": -double: 3 -ldouble: 1 - -Function: "log_downward": -ldouble: 1 - -Function: "log_towardzero": -ldouble: 2 - -Function: "log_upward": -double: 1 -ldouble: 2 - -Function: "pow": -double: 1 -ldouble: 2 - -Function: "pow_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "pow_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: "pow_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "sin": -double: 1 -float: 1 -ldouble: 1 - -Function: "sin_downward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sin_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: "sin_upward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sincos": -double: 1 -ldouble: 1 - -Function: "sincos_downward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sincos_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: "sincos_upward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sinh": -double: 2 -float: 2 -ldouble: 2 - -Function: "sinh_downward": -double: 3 -float: 3 -ldouble: 3 - -Function: "sinh_towardzero": -double: 2 -float: 2 -ldouble: 3 - -Function: "sinh_upward": -double: 3 -float: 3 -ldouble: 4 - -Function: "tan": -float: 1 -ldouble: 1 - -Function: "tan_downward": -double: 1 -float: 2 -ldouble: 1 - -Function: "tan_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "tan_upward": -double: 1 -float: 1 -ldouble: 1 - -Function: "tanh": -double: 2 -float: 2 -ldouble: 2 - -Function: "tanh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: "tanh_towardzero": -double: 2 -float: 2 -ldouble: 3 - -Function: "tanh_upward": -double: 3 -float: 3 -ldouble: 3 - -Function: "tgamma": -double: 5 -float: 8 -ldouble: 4 - -Function: "tgamma_downward": -double: 5 -float: 7 -ldouble: 5 - -Function: "tgamma_towardzero": -double: 5 -float: 7 -ldouble: 5 - -Function: "tgamma_upward": -double: 4 -float: 8 -ldouble: 4 - -Function: "y0": -double: 2 -float: 6 -ldouble: 3 - -Function: "y0_downward": -double: 3 -float: 4 -ldouble: 4 - -Function: "y0_towardzero": -double: 3 -float: 3 -ldouble: 3 - -Function: "y0_upward": -double: 2 -float: 5 -ldouble: 3 - -Function: "y1": -double: 3 -float: 2 -ldouble: 2 - -Function: "y1_downward": -double: 3 -float: 2 -ldouble: 4 - -Function: "y1_towardzero": -double: 3 -float: 2 -ldouble: 2 - -Function: "y1_upward": -double: 5 -float: 2 -ldouble: 5 - -Function: "yn": -double: 3 -float: 3 -ldouble: 5 - -Function: "yn_downward": -double: 3 -float: 4 -ldouble: 5 - -Function: "yn_towardzero": -double: 3 -float: 3 -ldouble: 5 - -Function: "yn_upward": -double: 4 -float: 5 -ldouble: 5 - -# end of automatic generation diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name b/sysdeps/riscv/rv64/rvd/libm-test-ulps-name deleted file mode 100644 index 827fcdca19..0000000000 --- a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name +++ /dev/null @@ -1 +0,0 @@ -RISC-V diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps similarity index 100% rename from sysdeps/riscv/rv32/rvd/libm-test-ulps rename to sysdeps/riscv/rvd/libm-test-ulps diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps-name b/sysdeps/riscv/rvd/libm-test-ulps-name similarity index 100% rename from sysdeps/riscv/rv32/rvd/libm-test-ulps-name rename to sysdeps/riscv/rvd/libm-test-ulps-name -- 2.28.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] riscv: Remove RV32 floating point functions 2020-09-04 19:45 [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Alistair Francis @ 2020-09-04 19:45 ` Alistair Francis 2020-09-04 20:27 ` [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Florian Weimer 1 sibling, 0 replies; 4+ messages in thread From: Alistair Francis @ 2020-09-04 19:45 UTC (permalink / raw) To: libc-alpha; +Cc: alistair23, alistair.francis We don't need RV32 specific floating point functions, instead make them generic for RISC-V. --- sysdeps/riscv/rv32/rvd/Implies | 1 - sysdeps/riscv/rv64/rvd/s_lrint.c | 30 ----------------------- sysdeps/riscv/rv64/rvd/s_lround.c | 30 ----------------------- sysdeps/riscv/rv64/rvf/s_lrintf.c | 31 ------------------------ sysdeps/riscv/rv64/rvf/s_lroundf.c | 31 ------------------------ sysdeps/riscv/{rv32 => }/rvd/s_lrint.c | 15 +++++++++--- sysdeps/riscv/{rv32 => }/rvd/s_lround.c | 15 +++++++++--- sysdeps/riscv/{rv32 => }/rvf/s_lrintf.c | 14 ++++++++--- sysdeps/riscv/{rv32 => }/rvf/s_lroundf.c | 14 ++++++++--- 9 files changed, 44 insertions(+), 137 deletions(-) delete mode 100644 sysdeps/riscv/rv64/rvd/s_lrint.c delete mode 100644 sysdeps/riscv/rv64/rvd/s_lround.c delete mode 100644 sysdeps/riscv/rv64/rvf/s_lrintf.c delete mode 100644 sysdeps/riscv/rv64/rvf/s_lroundf.c rename sysdeps/riscv/{rv32 => }/rvd/s_lrint.c (81%) rename sysdeps/riscv/{rv32 => }/rvd/s_lround.c (80%) rename sysdeps/riscv/{rv32 => }/rvf/s_lrintf.c (81%) rename sysdeps/riscv/{rv32 => }/rvf/s_lroundf.c (81%) diff --git a/sysdeps/riscv/rv32/rvd/Implies b/sysdeps/riscv/rv32/rvd/Implies index 1151214e8f..9438838e98 100644 --- a/sysdeps/riscv/rv32/rvd/Implies +++ b/sysdeps/riscv/rv32/rvd/Implies @@ -1,3 +1,2 @@ -riscv/rv32/rvf riscv/rvd riscv/rvf diff --git a/sysdeps/riscv/rv64/rvd/s_lrint.c b/sysdeps/riscv/rv64/rvd/s_lrint.c deleted file mode 100644 index d9f65a27c5..0000000000 --- a/sysdeps/riscv/rv64/rvd/s_lrint.c +++ /dev/null @@ -1,30 +0,0 @@ -/* lrint(). RISC-V version. - Copyright (C) 2017-2020 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#include <libm-alias-double.h> -#include <stdint.h> - -long int -__lrint (double x) -{ - int64_t res; - asm ("fcvt.l.d %0, %1" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_double (__lrint, lrint) diff --git a/sysdeps/riscv/rv64/rvd/s_lround.c b/sysdeps/riscv/rv64/rvd/s_lround.c deleted file mode 100644 index 73e513c783..0000000000 --- a/sysdeps/riscv/rv64/rvd/s_lround.c +++ /dev/null @@ -1,30 +0,0 @@ -/* llround(). RISC-V version. - Copyright (C) 2017-2020 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#include <libm-alias-double.h> -#include <stdint.h> - -long int -__lround (double x) -{ - int64_t res; - asm ("fcvt.l.d %0, %1, rmm" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_double (__lround, lround) diff --git a/sysdeps/riscv/rv64/rvf/s_lrintf.c b/sysdeps/riscv/rv64/rvf/s_lrintf.c deleted file mode 100644 index c7c033c3be..0000000000 --- a/sysdeps/riscv/rv64/rvf/s_lrintf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lrintf(). RISC-V version. - Copyright (C) 2017-2020 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#include <math.h> -#include <libm-alias-float.h> -#include <stdint.h> - -long int -__lrintf (float x) -{ - int64_t res; - asm ("fcvt.l.s %0, %1" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_float (__lrint, lrint) diff --git a/sysdeps/riscv/rv64/rvf/s_lroundf.c b/sysdeps/riscv/rv64/rvf/s_lroundf.c deleted file mode 100644 index 76817cadad..0000000000 --- a/sysdeps/riscv/rv64/rvf/s_lroundf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lroundf(). RISC-V version. - Copyright (C) 2017-2020 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#include <math.h> -#include <libm-alias-float.h> -#include <stdint.h> - -long int -__lroundf (float x) -{ - int64_t res; - asm ("fcvt.l.s %0, %1, rmm" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_float (__lround, lround) diff --git a/sysdeps/riscv/rv32/rvd/s_lrint.c b/sysdeps/riscv/rvd/s_lrint.c similarity index 81% rename from sysdeps/riscv/rv32/rvd/s_lrint.c rename to sysdeps/riscv/rvd/s_lrint.c index bdec792f18..46a7fb3da4 100644 --- a/sysdeps/riscv/rv32/rvd/s_lrint.c +++ b/sysdeps/riscv/rvd/s_lrint.c @@ -1,4 +1,4 @@ -/* lrint(). The 32-bit RISC-V (RV32) version. +/* lrint(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,15 +16,22 @@ License along with the GNU C Library. If not, see <https://www.gnu.org/licenses/>. */ -#include <math.h> #include <libm-alias-double.h> #include <stdint.h> +#if __WORDSIZE == 64 +# define OP "fcvt.l.d" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.d" +#else +# error Unsupported +#endif + long int __lrint (double x) { - int32_t res; - asm ("fcvt.w.d %0, %1" : "=r" (res) : "f" (x)); + long int res; + asm (OP "\t%0, %1" : "=r" (res) : "f" (x)); return res; } diff --git a/sysdeps/riscv/rv32/rvd/s_lround.c b/sysdeps/riscv/rvd/s_lround.c similarity index 80% rename from sysdeps/riscv/rv32/rvd/s_lround.c rename to sysdeps/riscv/rvd/s_lround.c index 78bccd47ae..95753dcb39 100644 --- a/sysdeps/riscv/rv32/rvd/s_lround.c +++ b/sysdeps/riscv/rvd/s_lround.c @@ -1,4 +1,4 @@ -/* lround(). 32-bit RISC-V (RV32) version. +/* llround(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,15 +16,22 @@ License along with the GNU C Library. If not, see <https://www.gnu.org/licenses/>. */ -#include <math.h> #include <libm-alias-double.h> #include <stdint.h> +#if __WORDSIZE == 64 +# define OP "fcvt.l.d" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.d" +#else +# error Unsupported +#endif + long int __lround (double x) { - int32_t res; - asm ("fcvt.w.d %0, %1, rmm" : "=r" (res) : "f" (x)); + long int res; + asm (OP "\t%0, %1, rmm" : "=r" (res) : "f" (x)); return res; } diff --git a/sysdeps/riscv/rv32/rvf/s_lrintf.c b/sysdeps/riscv/rvf/s_lrintf.c similarity index 81% rename from sysdeps/riscv/rv32/rvf/s_lrintf.c rename to sysdeps/riscv/rvf/s_lrintf.c index b8e1df439e..84fca99526 100644 --- a/sysdeps/riscv/rv32/rvf/s_lrintf.c +++ b/sysdeps/riscv/rvf/s_lrintf.c @@ -1,4 +1,4 @@ -/* lrintf(). 32-bit RISC-V (RV32) version. +/* lrintf(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -20,11 +20,19 @@ #include <libm-alias-float.h> #include <stdint.h> +#if __WORDSIZE == 64 +# define OP "fcvt.l.s" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.s" +#else +# error Unsupported +#endif + long int __lrintf (float x) { - int32_t res; - asm ("fcvt.w.s %0, %1" : "=r" (res) : "f" (x)); + long res; + asm (OP "\t%0, %1" : "=r" (res) : "f" (x)); return res; } diff --git a/sysdeps/riscv/rv32/rvf/s_lroundf.c b/sysdeps/riscv/rvf/s_lroundf.c similarity index 81% rename from sysdeps/riscv/rv32/rvf/s_lroundf.c rename to sysdeps/riscv/rvf/s_lroundf.c index 32f9925084..eba9b7adce 100644 --- a/sysdeps/riscv/rv32/rvf/s_lroundf.c +++ b/sysdeps/riscv/rvf/s_lroundf.c @@ -1,4 +1,4 @@ -/* lroundf(). 32-bit RISC-V (RV32) version. +/* lroundf(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -20,11 +20,19 @@ #include <libm-alias-float.h> #include <stdint.h> +#if __WORDSIZE == 64 +# define OP "fcvt.l.s" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.s" +#else +# error Unsupported +#endif + long int __lroundf (float x) { - int32_t res; - asm ("fcvt.w.s %0, %1, rmm" : "=r" (res) : "f" (x)); + long res; + asm (OP "\t%0, %1, rmm" : "=r" (res) : "f" (x)); return res; } -- 2.28.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] rsciv: Consolidate the libm-test-ulps 2020-09-04 19:45 [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Alistair Francis 2020-09-04 19:45 ` [PATCH 2/2] riscv: Remove RV32 floating point functions Alistair Francis @ 2020-09-04 20:27 ` Florian Weimer 2020-09-04 20:39 ` Alistair Francis 1 sibling, 1 reply; 4+ messages in thread From: Florian Weimer @ 2020-09-04 20:27 UTC (permalink / raw) To: Alistair Francis via Libc-alpha; +Cc: Alistair Francis * Alistair Francis via Libc-alpha: > Both RV32 and RV64 have the same libm-test-ulps, so consolidate them > into a single file. Typo in the commit subject. Is it likely that there will be future divergence? ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] rsciv: Consolidate the libm-test-ulps 2020-09-04 20:27 ` [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Florian Weimer @ 2020-09-04 20:39 ` Alistair Francis 0 siblings, 0 replies; 4+ messages in thread From: Alistair Francis @ 2020-09-04 20:39 UTC (permalink / raw) To: Florian Weimer; +Cc: Alistair Francis via Libc-alpha, Alistair Francis On Fri, Sep 4, 2020 at 1:27 PM Florian Weimer <fw@deneb.enyo.de> wrote: > > * Alistair Francis via Libc-alpha: > > > Both RV32 and RV64 have the same libm-test-ulps, so consolidate them > > into a single file. > > Typo in the commit subject. Thanks, fixed. > > Is it likely that there will be future divergence? I don't think so. When I was upstreaming the 32-bit port Joseph mentioned that they should be the same. Alistair ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-09-04 20:50 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-09-04 19:45 [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Alistair Francis 2020-09-04 19:45 ` [PATCH 2/2] riscv: Remove RV32 floating point functions Alistair Francis 2020-09-04 20:27 ` [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Florian Weimer 2020-09-04 20:39 ` Alistair Francis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).