public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libgcc/67624] New: arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN
@ 2015-09-18 13:11 pekka.jaaskelainen at parmance dot com
2015-09-18 17:00 ` [Bug libgcc/67624] " rearnsha at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: pekka.jaaskelainen at parmance dot com @ 2015-09-18 13:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67624
Bug ID: 67624
Summary: arm/fp16.c __gnu_f2h_internal has wrong pattern for
INF/NAN
Product: gcc
Version: 4.9.1
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: libgcc
Assignee: unassigned at gcc dot gnu.org
Reporter: pekka.jaaskelainen at parmance dot com
Target Milestone: ---
I believe the f2h conversion routine uses wrong mask for INF/NAN in the early
shortcut. It seems to be the case also in the gcc HEAD.
This should fix it:
--- arm/fp16.c 2015-09-18 15:53:51.069011932 +0300
+++ fp16.c 2015-09-18 15:50:50.653013393 +0300
@@ -35,7 +35,7 @@
{
if (!ieee)
return sign;
- return sign | 0x7e00 | (mantissa >> 13);
+ return sign | 0x7c00 | (mantissa >> 13);
}
if (aexp == 0 && mantissa == 0)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcc/67624] arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN
2015-09-18 13:11 [Bug libgcc/67624] New: arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN pekka.jaaskelainen at parmance dot com
@ 2015-09-18 17:00 ` rearnsha at gcc dot gnu.org
2015-09-18 22:22 ` joseph at codesourcery dot com
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: rearnsha at gcc dot gnu.org @ 2015-09-18 17:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67624
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-09-18
Ever confirmed|0 |1
--- Comment #1 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
Yes, the existing code looks wrong in that infinity gets converted to NaN.
Your patch, however, is not right either, since it can convert some NaNs (where
only the bottom 13 bits are non-zero) to infinity.
I'd need to think a bit more on what the exact conversion needs to be in these
cases.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcc/67624] arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN
2015-09-18 13:11 [Bug libgcc/67624] New: arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN pekka.jaaskelainen at parmance dot com
2015-09-18 17:00 ` [Bug libgcc/67624] " rearnsha at gcc dot gnu.org
@ 2015-09-18 22:22 ` joseph at codesourcery dot com
2015-09-24 9:40 ` rearnsha at gcc dot gnu.org
2015-09-24 9:41 ` rearnsha at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: joseph at codesourcery dot com @ 2015-09-18 22:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67624
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
All NaNs should have the top mantissa bit set in the result of the
conversion (i.e. the result of the conversion should always be a quiet
NaN, not a signaling NaN) - setting that bit also ensures the result is
not an infinity. Then I think the remaining bits in the mantissa of the
result should match the corresponding high bits in the mantissa of the
source (which appears to be what the hardware conversion instructions are
documented to do).
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcc/67624] arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN
2015-09-18 13:11 [Bug libgcc/67624] New: arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN pekka.jaaskelainen at parmance dot com
2015-09-18 17:00 ` [Bug libgcc/67624] " rearnsha at gcc dot gnu.org
2015-09-18 22:22 ` joseph at codesourcery dot com
@ 2015-09-24 9:40 ` rearnsha at gcc dot gnu.org
2015-09-24 9:41 ` rearnsha at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: rearnsha at gcc dot gnu.org @ 2015-09-24 9:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67624
--- Comment #3 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
Author: rearnsha
Date: Thu Sep 24 09:40:06 2015
New Revision: 228082
URL: https://gcc.gnu.org/viewcvs?rev=228082&root=gcc&view=rev
Log:
ARM: fp16 Fix PR 67624 - Incorrect conversion of float Infinity to __fp16
PR libgcc/67624
libgcc:
* config/arm/fp16.c (__gnu_f2h_internal): Handle infinity correctly.
gcc/testsuite:
* gcc.target/arm/fp16-inf.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/arm/fp16-inf.c
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgcc/ChangeLog
trunk/libgcc/config/arm/fp16.c
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcc/67624] arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN
2015-09-18 13:11 [Bug libgcc/67624] New: arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN pekka.jaaskelainen at parmance dot com
` (2 preceding siblings ...)
2015-09-24 9:40 ` rearnsha at gcc dot gnu.org
@ 2015-09-24 9:41 ` rearnsha at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: rearnsha at gcc dot gnu.org @ 2015-09-24 9:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67624
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-09-24 9:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-18 13:11 [Bug libgcc/67624] New: arm/fp16.c __gnu_f2h_internal has wrong pattern for INF/NAN pekka.jaaskelainen at parmance dot com
2015-09-18 17:00 ` [Bug libgcc/67624] " rearnsha at gcc dot gnu.org
2015-09-18 22:22 ` joseph at codesourcery dot com
2015-09-24 9:40 ` rearnsha at gcc dot gnu.org
2015-09-24 9:41 ` rearnsha at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).