This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC v1 12/16] RISC-V: Regenerate ULPs of RISC-V


On Fri, 21 Jun 2019, Alistair Francis wrote:

> From: Zong Li <zongbox@gmail.com>
> 
> Use the regen-ulp to generate the ulp files of rvd and nofpu. The RV32
> and RV64 use the same ulps.

I'm afraid you need more explanation of some of the changes.

> diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
> index 700772a5bf..102144a428 100644
> --- a/sysdeps/riscv/nofpu/libm-test-ulps
> +++ b/sysdeps/riscv/nofpu/libm-test-ulps
> @@ -532,16 +532,16 @@ double: 1
>  float: 1
>  idouble: 1
>  ifloat: 1
> -ildouble: 1
> -ldouble: 1
> +ildouble: 8
> +ldouble: 8
>  
>  Function: Imaginary part of "catan":
>  double: 1
>  float: 1
>  idouble: 1
>  ifloat: 1
> -ildouble: 1
> -ldouble: 1
> +ildouble: 4
> +ldouble: 4

Other architectures using binary128 long double don't have such large ULPs 
here.  You need to explain why you're getting larger ULPs for RV32.  
Likewise for the other ULPs increases.  If necessary, trace execution of 
the functions both on RV32 and on some other architecture (e.g. AArch64, 
or x86_64 for the _Float128 functions) to determine exactly where it 
diverges.

Maybe there is some relevant soft-fp bug, beyond the one that was fixed by

commit ff48ea6787526d7e669af93ce2681b911d39675c
Author: Zong Li <zong@andestech.com>
Date:   Thu Nov 1 17:34:39 2018 +0000

    soft-fp: Use temporary variable in FP_FRAC_SUB_3/FP_FRAC_SUB_4

(of course you need to make sure the GCC you use has that fix in libgcc as 
well)?

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]