public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 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

* [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-20 19:21 ` DJ Delorie
  2022-09-21 17:37   ` Adhemerval Zanella Netto
  0 siblings, 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

end of thread, other threads:[~2022-09-21 17:37 UTC | newest]

Thread overview: 6+ 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
2022-09-20 19:50 [PATCH 0/2] coalesce some rv64 and rv32 stuff 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).