RISC-V / GCC 10: invalid operation not set in acos and asin
Joseph Myers
joseph@codesourcery.com
Wed May 13 18:49:00 GMT 2020
On Wed, 13 May 2020, Aurelien Jarno wrote:
> I have tracked the issue to the following piece of code from
> sysdeps/ieee754/dbl-64/e_asin.c:
>
> | else {
> | u.i[HIGH_HALF]=0x7ff00000;
> | v.i[HIGH_HALF]=0x7ff00000;
> | u.i[LOW_HALF]=0;
> | v.i[LOW_HALF]=0;
> | return u.x/v.x;
> | }
>
> GCC 10 optimizes out that code and loads a NaN value from memory instead
> of doing the division, which explains why the invalid operation
> exception is not set.
So that should be filed as a regression bug in GCC. If fixed quickly we
can then put something on the per-release wiki pages about the fix for GCC
bug N (bug present in 10.1, fixed in 10.2) being needed to avoid those
failures.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list