Re: Optimization bug with floating-point?

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Wed, 13 Mar 2019 16:41:51 +0100
On 3/13/19 4:16 PM, Steve Kargl wrote:
> On Tue, Mar 12, 2019 at 07:45:41PM -0700, Steve Kargl wrote:
>>
>> gcc8 --version
>> gcc8 (FreeBSD Ports Collection) 8.3.0
>>
>> gcc8 -fno-builtin -o z a.c -lm && ./z
>> gcc8 -O -fno-builtin -o z a.c -lm && ./z
>> gcc8 -O2 -fno-builtin -o z a.c -lm && ./z
>> gcc8 -O3 -fno-builtin -o z a.c -lm && ./z
>>
>> Max ULP: 2.297073
>> Count: 0           (# of ULP that exceed 21)
>>
> 
> clang agrees with gcc8 if one changes ...
> 
>> int
>> main(void)
>> {
>>     double re, im, u, ur, ui;
>>     float complex f;
>>     float x, y;
> 
> this line to "volatile float x, y".
> 

Can you try to use:

#define sincos(x,p,q) do { \
         *(p) = sin(x); \
         *(q) = cos(x); \
} while (0)


Instead of libm's sincos(). Might be a bug in there.

--HPS
Received on Wed Mar 13 2019 - 14:42:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:20 UTC