[PATCH v2 00/12] RISC-V glibc port for the 32 bit
Joseph Myers
joseph@codesourcery.com
Wed Jul 18 20:05:00 GMT 2018
On Tue, 17 Jul 2018, Zong Li wrote:
> issue like 64 bit glibc port. In addition, there are some math test cases
> need to be checked but it looks unlike glibc's problem.
> sysdeps/riscv/nofpu/libm-test-ulps | 2198 --------------------
> sysdeps/riscv/rv32/nofpu/libm-test-ulps | 534 +++++
> sysdeps/riscv/rv32/rvd/libm-test-ulps | 1658 +++++++++++++++
> sysdeps/riscv/rv64/nofpu/libm-test-ulps | 2198 ++++++++++++++++++++
You should not need new libm-test-ulps files. That you have them suggests
to me some real problem with your libm port, until evidenced otherwise
with a clear explanation of exactly how different results arise. One file
for hard float and one for soft float should fully suffice for all RISC-V.
The functions whose interface varies between 32-bit and 64-bit - those
involving the "long" type as an argument or result - are also
exactly-determined functions that should never have any ulps in their
results. There are a few dbl-64/wordsize-64 functions that are not
exactly determined, but RV64 doesn't use dbl-64/wordsize-64 so that can't
explain any differences. Apart from that, everything not exactly
determined should behave the same for RV32 and RV64 (including such things
as the possibilities for fusing multiply and add). Finally, both RV32 and
RV64 use the same long double type, so that doesn't result in a difference
as it does for MIPS32 versus MIPS64.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list