* [PATCH 0/2] coalesce some rv64 and rv32 stuff @ 2022-09-20 19:50 DJ Delorie 2022-09-15 4:37 ` [PATCH 1/2] riscv: Consolidate the libm-test-ulps DJ Delorie 2022-09-20 19:21 ` [PATCH 2/2] riscv: Remove RV32 floating point functions DJ Delorie 0 siblings, 2 replies; 6+ messages in thread From: DJ Delorie @ 2022-09-20 19:50 UTC (permalink / raw) To: libc-alpha This is a rework of Alistair's patches from Sept 2020. I used the latest rv64 ULPs and tweaked the .c moves to accomodate the latest copyright years etc. Alistair retains credit for the authorship, I'm just tweaking it to make it apply cleanly. https://patchwork.sourceware.org/project/glibc/list/?series=815 Alistair Francis (2): riscv: Consolidate the libm-test-ulps riscv: Remove RV32 floating point functions sysdeps/riscv/rv32/rvd/libm-test-ulps | 1405 ----------------- sysdeps/riscv/rv32/rvd/libm-test-ulps-name | 1 - sysdeps/riscv/rv32/rvd/s_lrint.c | 31 - sysdeps/riscv/rv32/rvd/s_lround.c | 31 - sysdeps/riscv/rv32/rvf/s_lrintf.c | 31 - sysdeps/riscv/rv32/rvf/s_lroundf.c | 31 - sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps | 0 .../riscv/{rv64 => }/rvd/libm-test-ulps-name | 0 sysdeps/riscv/{rv64 => }/rvd/s_lrint.c | 12 +- sysdeps/riscv/{rv64 => }/rvd/s_lround.c | 12 +- sysdeps/riscv/{rv64 => }/rvf/s_lrintf.c | 12 +- sysdeps/riscv/{rv64 => }/rvf/s_lroundf.c | 12 +- 12 files changed, 40 insertions(+), 1538 deletions(-) delete mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps delete mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps-name delete mode 100644 sysdeps/riscv/rv32/rvd/s_lrint.c delete mode 100644 sysdeps/riscv/rv32/rvd/s_lround.c delete mode 100644 sysdeps/riscv/rv32/rvf/s_lrintf.c delete mode 100644 sysdeps/riscv/rv32/rvf/s_lroundf.c rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps (100%) rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps-name (100%) rename sysdeps/riscv/{rv64 => }/rvd/s_lrint.c (83%) rename sysdeps/riscv/{rv64 => }/rvd/s_lround.c (83%) rename sysdeps/riscv/{rv64 => }/rvf/s_lrintf.c (83%) rename sysdeps/riscv/{rv64 => }/rvf/s_lroundf.c (83%) -- 2.31.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] riscv: Consolidate the libm-test-ulps 2022-09-20 19:50 [PATCH 0/2] coalesce some rv64 and rv32 stuff DJ Delorie @ 2022-09-15 4:37 ` DJ Delorie 2022-09-21 17:35 ` Adhemerval Zanella Netto 2022-09-20 19:21 ` [PATCH 2/2] riscv: Remove RV32 floating point functions DJ Delorie 1 sibling, 1 reply; 6+ messages in thread From: DJ Delorie @ 2022-09-15 4:37 UTC (permalink / raw) To: libc-alpha Both RV32 and RV64 should have the same libm-test-ulps, so consolidate them into a single file. --- sysdeps/riscv/rv32/rvd/libm-test-ulps | 1405 ----------------- sysdeps/riscv/rv32/rvd/libm-test-ulps-name | 1 - sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps | 0 .../riscv/{rv64 => }/rvd/libm-test-ulps-name | 0 4 files changed, 1406 deletions(-) delete mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps delete mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps-name rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps (100%) rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps-name (100%) diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps b/sysdeps/riscv/rv32/rvd/libm-test-ulps deleted file mode 100644 index 5b6f121ac5..0000000000 --- a/sysdeps/riscv/rv32/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/rv32/rvd/libm-test-ulps-name b/sysdeps/riscv/rv32/rvd/libm-test-ulps-name deleted file mode 100644 index 6d2816082e..0000000000 --- a/sysdeps/riscv/rv32/rvd/libm-test-ulps-name +++ /dev/null @@ -1 +0,0 @@ -RISC-V 32-bit diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps similarity index 100% rename from sysdeps/riscv/rv64/rvd/libm-test-ulps rename to sysdeps/riscv/rvd/libm-test-ulps diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name b/sysdeps/riscv/rvd/libm-test-ulps-name similarity index 100% rename from sysdeps/riscv/rv64/rvd/libm-test-ulps-name rename to sysdeps/riscv/rvd/libm-test-ulps-name -- 2.31.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] riscv: Consolidate the libm-test-ulps 2022-09-15 4:37 ` [PATCH 1/2] riscv: Consolidate the libm-test-ulps DJ Delorie @ 2022-09-21 17:35 ` Adhemerval Zanella Netto 2022-09-21 18:39 ` DJ Delorie 0 siblings, 1 reply; 6+ messages in thread From: Adhemerval Zanella Netto @ 2022-09-21 17:35 UTC (permalink / raw) To: DJ Delorie, libc-alpha On 15/09/22 01:37, DJ Delorie via Libc-alpha wrote: > > Both RV32 and RV64 should have the same libm-test-ulps, so consolidate > them into a single file. LGTM, thanks. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > --- > sysdeps/riscv/rv32/rvd/libm-test-ulps | 1405 ----------------- > sysdeps/riscv/rv32/rvd/libm-test-ulps-name | 1 - > sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps | 0 > .../riscv/{rv64 => }/rvd/libm-test-ulps-name | 0 > 4 files changed, 1406 deletions(-) > delete mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps > delete mode 100644 sysdeps/riscv/rv32/rvd/libm-test-ulps-name > rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps (100%) > rename sysdeps/riscv/{rv64 => }/rvd/libm-test-ulps-name (100%) > > diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps b/sysdeps/riscv/rv32/rvd/libm-test-ulps > deleted file mode 100644 > index 5b6f121ac5..0000000000 > --- a/sysdeps/riscv/rv32/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/rv32/rvd/libm-test-ulps-name b/sysdeps/riscv/rv32/rvd/libm-test-ulps-name > deleted file mode 100644 > index 6d2816082e..0000000000 > --- a/sysdeps/riscv/rv32/rvd/libm-test-ulps-name > +++ /dev/null > @@ -1 +0,0 @@ > -RISC-V 32-bit > diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps > similarity index 100% > rename from sysdeps/riscv/rv64/rvd/libm-test-ulps > rename to sysdeps/riscv/rvd/libm-test-ulps > diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name b/sysdeps/riscv/rvd/libm-test-ulps-name > similarity index 100% > rename from sysdeps/riscv/rv64/rvd/libm-test-ulps-name > rename to sysdeps/riscv/rvd/libm-test-ulps-name ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] riscv: Consolidate the libm-test-ulps 2022-09-21 17:35 ` Adhemerval Zanella Netto @ 2022-09-21 18:39 ` DJ Delorie 0 siblings, 0 replies; 6+ messages in thread From: DJ Delorie @ 2022-09-21 18:39 UTC (permalink / raw) To: Adhemerval Zanella Netto; +Cc: libc-alpha Thanks! Pushed. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] riscv: Remove RV32 floating point functions 2022-09-20 19:50 [PATCH 0/2] coalesce some rv64 and rv32 stuff DJ Delorie 2022-09-15 4:37 ` [PATCH 1/2] riscv: Consolidate the libm-test-ulps DJ Delorie @ 2022-09-20 19:21 ` DJ Delorie 2022-09-21 17:37 ` Adhemerval Zanella Netto 1 sibling, 1 reply; 6+ messages in thread From: DJ Delorie @ 2022-09-20 19:21 UTC (permalink / raw) To: libc-alpha We don't need RV32 specific floating point functions, instead make them generic for RISC-V. --- sysdeps/riscv/rv32/rvd/s_lrint.c | 31 ------------------------ sysdeps/riscv/rv32/rvd/s_lround.c | 31 ------------------------ sysdeps/riscv/rv32/rvf/s_lrintf.c | 31 ------------------------ sysdeps/riscv/rv32/rvf/s_lroundf.c | 31 ------------------------ sysdeps/riscv/{rv64 => }/rvd/s_lrint.c | 12 +++++++-- sysdeps/riscv/{rv64 => }/rvd/s_lround.c | 12 +++++++-- sysdeps/riscv/{rv64 => }/rvf/s_lrintf.c | 12 +++++++-- sysdeps/riscv/{rv64 => }/rvf/s_lroundf.c | 12 +++++++-- 8 files changed, 40 insertions(+), 132 deletions(-) delete mode 100644 sysdeps/riscv/rv32/rvd/s_lrint.c delete mode 100644 sysdeps/riscv/rv32/rvd/s_lround.c delete mode 100644 sysdeps/riscv/rv32/rvf/s_lrintf.c delete mode 100644 sysdeps/riscv/rv32/rvf/s_lroundf.c rename sysdeps/riscv/{rv64 => }/rvd/s_lrint.c (83%) rename sysdeps/riscv/{rv64 => }/rvd/s_lround.c (83%) rename sysdeps/riscv/{rv64 => }/rvf/s_lrintf.c (83%) rename sysdeps/riscv/{rv64 => }/rvf/s_lroundf.c (83%) diff --git a/sysdeps/riscv/rv32/rvd/s_lrint.c b/sysdeps/riscv/rv32/rvd/s_lrint.c deleted file mode 100644 index f0a4d6135f..0000000000 --- a/sysdeps/riscv/rv32/rvd/s_lrint.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lrint(). The 32-bit RISC-V (RV32) version. - Copyright (C) 2020-2022 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-double.h> -#include <stdint.h> - -long int -__lrint (double x) -{ - int32_t res; - asm ("fcvt.w.d %0, %1" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_double (__lrint, lrint) diff --git a/sysdeps/riscv/rv32/rvd/s_lround.c b/sysdeps/riscv/rv32/rvd/s_lround.c deleted file mode 100644 index 7549461095..0000000000 --- a/sysdeps/riscv/rv32/rvd/s_lround.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lround(). 32-bit RISC-V (RV32) version. - Copyright (C) 2020-2022 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-double.h> -#include <stdint.h> - -long int -__lround (double x) -{ - int32_t res; - asm ("fcvt.w.d %0, %1, rmm" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_double (__lround, lround) diff --git a/sysdeps/riscv/rv32/rvf/s_lrintf.c b/sysdeps/riscv/rv32/rvf/s_lrintf.c deleted file mode 100644 index 6cc281f82a..0000000000 --- a/sysdeps/riscv/rv32/rvf/s_lrintf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lrintf(). 32-bit RISC-V (RV32) version. - Copyright (C) 2020-2022 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) -{ - int32_t res; - asm ("fcvt.w.s %0, %1" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_float (__lrint, lrint) diff --git a/sysdeps/riscv/rv32/rvf/s_lroundf.c b/sysdeps/riscv/rv32/rvf/s_lroundf.c deleted file mode 100644 index dcaef30fc7..0000000000 --- a/sysdeps/riscv/rv32/rvf/s_lroundf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lroundf(). 32-bit RISC-V (RV32) version. - Copyright (C) 2020-2022 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) -{ - int32_t res; - asm ("fcvt.w.s %0, %1, rmm" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_float (__lround, lround) diff --git a/sysdeps/riscv/rv64/rvd/s_lrint.c b/sysdeps/riscv/rvd/s_lrint.c similarity index 83% rename from sysdeps/riscv/rv64/rvd/s_lrint.c rename to sysdeps/riscv/rvd/s_lrint.c index 64bf72ec02..5a9693034c 100644 --- a/sysdeps/riscv/rv64/rvd/s_lrint.c +++ b/sysdeps/riscv/rvd/s_lrint.c @@ -19,11 +19,19 @@ #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) { - int64_t res; - asm ("fcvt.l.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/rv64/rvd/s_lround.c b/sysdeps/riscv/rvd/s_lround.c similarity index 83% rename from sysdeps/riscv/rv64/rvd/s_lround.c rename to sysdeps/riscv/rvd/s_lround.c index 1b55d99a0e..f869aa41ce 100644 --- a/sysdeps/riscv/rv64/rvd/s_lround.c +++ b/sysdeps/riscv/rvd/s_lround.c @@ -19,11 +19,19 @@ #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) { - int64_t res; - asm ("fcvt.l.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/rv64/rvf/s_lrintf.c b/sysdeps/riscv/rvf/s_lrintf.c similarity index 83% rename from sysdeps/riscv/rv64/rvf/s_lrintf.c rename to sysdeps/riscv/rvf/s_lrintf.c index ca97bc108e..0bd4945df7 100644 --- a/sysdeps/riscv/rv64/rvf/s_lrintf.c +++ b/sysdeps/riscv/rvf/s_lrintf.c @@ -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) { - int64_t res; - asm ("fcvt.l.s %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/rv64/rvf/s_lroundf.c b/sysdeps/riscv/rvf/s_lroundf.c similarity index 83% rename from sysdeps/riscv/rv64/rvf/s_lroundf.c rename to sysdeps/riscv/rvf/s_lroundf.c index 046870d0a3..c6dd141230 100644 --- a/sysdeps/riscv/rv64/rvf/s_lroundf.c +++ b/sysdeps/riscv/rvf/s_lroundf.c @@ -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) { - int64_t res; - asm ("fcvt.l.s %0, %1, rmm" : "=r" (res) : "f" (x)); + long int res; + asm (OP "\t%0, %1, rmm" : "=r" (res) : "f" (x)); return res; } -- 2.31.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] riscv: Remove RV32 floating point functions 2022-09-20 19:21 ` [PATCH 2/2] riscv: Remove RV32 floating point functions DJ Delorie @ 2022-09-21 17:37 ` Adhemerval Zanella Netto 0 siblings, 0 replies; 6+ messages in thread From: Adhemerval Zanella Netto @ 2022-09-21 17:37 UTC (permalink / raw) To: DJ Delorie, libc-alpha On 20/09/22 16:21, DJ Delorie via Libc-alpha wrote: > > We don't need RV32 specific floating point functions, instead make them > generic for RISC-V. LGTM, thanks. Maybe in the future adapt to use compiler builtins. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > --- > sysdeps/riscv/rv32/rvd/s_lrint.c | 31 ------------------------ > sysdeps/riscv/rv32/rvd/s_lround.c | 31 ------------------------ > sysdeps/riscv/rv32/rvf/s_lrintf.c | 31 ------------------------ > sysdeps/riscv/rv32/rvf/s_lroundf.c | 31 ------------------------ > sysdeps/riscv/{rv64 => }/rvd/s_lrint.c | 12 +++++++-- > sysdeps/riscv/{rv64 => }/rvd/s_lround.c | 12 +++++++-- > sysdeps/riscv/{rv64 => }/rvf/s_lrintf.c | 12 +++++++-- > sysdeps/riscv/{rv64 => }/rvf/s_lroundf.c | 12 +++++++-- > 8 files changed, 40 insertions(+), 132 deletions(-) > delete mode 100644 sysdeps/riscv/rv32/rvd/s_lrint.c > delete mode 100644 sysdeps/riscv/rv32/rvd/s_lround.c > delete mode 100644 sysdeps/riscv/rv32/rvf/s_lrintf.c > delete mode 100644 sysdeps/riscv/rv32/rvf/s_lroundf.c > rename sysdeps/riscv/{rv64 => }/rvd/s_lrint.c (83%) > rename sysdeps/riscv/{rv64 => }/rvd/s_lround.c (83%) > rename sysdeps/riscv/{rv64 => }/rvf/s_lrintf.c (83%) > rename sysdeps/riscv/{rv64 => }/rvf/s_lroundf.c (83%) > > diff --git a/sysdeps/riscv/rv32/rvd/s_lrint.c b/sysdeps/riscv/rv32/rvd/s_lrint.c > deleted file mode 100644 > index f0a4d6135f..0000000000 > --- a/sysdeps/riscv/rv32/rvd/s_lrint.c > +++ /dev/null > @@ -1,31 +0,0 @@ > -/* lrint(). The 32-bit RISC-V (RV32) version. > - Copyright (C) 2020-2022 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-double.h> > -#include <stdint.h> > - > -long int > -__lrint (double x) > -{ > - int32_t res; > - asm ("fcvt.w.d %0, %1" : "=r" (res) : "f" (x)); > - return res; > -} > - > -libm_alias_double (__lrint, lrint) > diff --git a/sysdeps/riscv/rv32/rvd/s_lround.c b/sysdeps/riscv/rv32/rvd/s_lround.c > deleted file mode 100644 > index 7549461095..0000000000 > --- a/sysdeps/riscv/rv32/rvd/s_lround.c > +++ /dev/null > @@ -1,31 +0,0 @@ > -/* lround(). 32-bit RISC-V (RV32) version. > - Copyright (C) 2020-2022 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-double.h> > -#include <stdint.h> > - > -long int > -__lround (double x) > -{ > - int32_t res; > - asm ("fcvt.w.d %0, %1, rmm" : "=r" (res) : "f" (x)); > - return res; > -} > - > -libm_alias_double (__lround, lround) > diff --git a/sysdeps/riscv/rv32/rvf/s_lrintf.c b/sysdeps/riscv/rv32/rvf/s_lrintf.c > deleted file mode 100644 > index 6cc281f82a..0000000000 > --- a/sysdeps/riscv/rv32/rvf/s_lrintf.c > +++ /dev/null > @@ -1,31 +0,0 @@ > -/* lrintf(). 32-bit RISC-V (RV32) version. > - Copyright (C) 2020-2022 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) > -{ > - int32_t res; > - asm ("fcvt.w.s %0, %1" : "=r" (res) : "f" (x)); > - return res; > -} > - > -libm_alias_float (__lrint, lrint) > diff --git a/sysdeps/riscv/rv32/rvf/s_lroundf.c b/sysdeps/riscv/rv32/rvf/s_lroundf.c > deleted file mode 100644 > index dcaef30fc7..0000000000 > --- a/sysdeps/riscv/rv32/rvf/s_lroundf.c > +++ /dev/null > @@ -1,31 +0,0 @@ > -/* lroundf(). 32-bit RISC-V (RV32) version. > - Copyright (C) 2020-2022 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) > -{ > - int32_t res; > - asm ("fcvt.w.s %0, %1, rmm" : "=r" (res) : "f" (x)); > - return res; > -} > - > -libm_alias_float (__lround, lround) > diff --git a/sysdeps/riscv/rv64/rvd/s_lrint.c b/sysdeps/riscv/rvd/s_lrint.c > similarity index 83% > rename from sysdeps/riscv/rv64/rvd/s_lrint.c > rename to sysdeps/riscv/rvd/s_lrint.c > index 64bf72ec02..5a9693034c 100644 > --- a/sysdeps/riscv/rv64/rvd/s_lrint.c > +++ b/sysdeps/riscv/rvd/s_lrint.c > @@ -19,11 +19,19 @@ > #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) > { > - int64_t res; > - asm ("fcvt.l.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/rv64/rvd/s_lround.c b/sysdeps/riscv/rvd/s_lround.c > similarity index 83% > rename from sysdeps/riscv/rv64/rvd/s_lround.c > rename to sysdeps/riscv/rvd/s_lround.c > index 1b55d99a0e..f869aa41ce 100644 > --- a/sysdeps/riscv/rv64/rvd/s_lround.c > +++ b/sysdeps/riscv/rvd/s_lround.c > @@ -19,11 +19,19 @@ > #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) > { > - int64_t res; > - asm ("fcvt.l.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/rv64/rvf/s_lrintf.c b/sysdeps/riscv/rvf/s_lrintf.c > similarity index 83% > rename from sysdeps/riscv/rv64/rvf/s_lrintf.c > rename to sysdeps/riscv/rvf/s_lrintf.c > index ca97bc108e..0bd4945df7 100644 > --- a/sysdeps/riscv/rv64/rvf/s_lrintf.c > +++ b/sysdeps/riscv/rvf/s_lrintf.c > @@ -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) > { > - int64_t res; > - asm ("fcvt.l.s %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/rv64/rvf/s_lroundf.c b/sysdeps/riscv/rvf/s_lroundf.c > similarity index 83% > rename from sysdeps/riscv/rv64/rvf/s_lroundf.c > rename to sysdeps/riscv/rvf/s_lroundf.c > index 046870d0a3..c6dd141230 100644 > --- a/sysdeps/riscv/rv64/rvf/s_lroundf.c > +++ b/sysdeps/riscv/rvf/s_lroundf.c > @@ -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) > { > - int64_t res; > - asm ("fcvt.l.s %0, %1, rmm" : "=r" (res) : "f" (x)); > + long int res; > + asm (OP "\t%0, %1, rmm" : "=r" (res) : "f" (x)); > return res; > } > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-09-21 18:39 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-09-20 19:50 [PATCH 0/2] coalesce some rv64 and rv32 stuff DJ Delorie 2022-09-15 4:37 ` [PATCH 1/2] riscv: Consolidate the libm-test-ulps DJ Delorie 2022-09-21 17:35 ` Adhemerval Zanella Netto 2022-09-21 18:39 ` DJ Delorie 2022-09-20 19:21 ` [PATCH 2/2] riscv: Remove RV32 floating point functions DJ Delorie 2022-09-21 17:37 ` Adhemerval Zanella Netto
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).