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).