This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH v2 00/12] RISC-V glibc port for the 32 bit
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Zong Li <zong at andestech dot com>
- Cc: <palmer at dabbelt dot com>, <darius at bluespec dot com>, <andrew at sifive dot com>, <dj at redhat dot com>, <rth at twiddle dot net>, <libc-alpha at sourceware dot org>, <rth7680 at gmail dot com>, <zongbox at gmail dot com>
- Date: Wed, 18 Jul 2018 20:05:28 +0000
- Subject: Re: [PATCH v2 00/12] RISC-V glibc port for the 32 bit
- References: <email@example.com>
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