public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug web/111694] New: Wrong behavior for signbit of negative zero when optimizing
@ 2023-10-04 17:09 alonzakai at gmail dot com
  2023-10-04 18:31 ` [Bug tree-optimization/111694] [13/14 Regression] " amonakov at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: alonzakai at gmail dot com @ 2023-10-04 17:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111694

            Bug ID: 111694
           Summary: Wrong behavior for signbit of negative zero when
                    optimizing
           Product: gcc
           Version: 13.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: web
          Assignee: unassigned at gcc dot gnu.org
          Reporter: alonzakai at gmail dot com
  Target Milestone: ---

This behaves incorrectly in 13.2.0 with -O1 and above, but is correct in 12,
11, and 10. It is also correct in 13.2.0 without optimizations.

Testcase:


#include <math.h>
#include <stdio.h>

void test(double l, double r) {
  if (l == r && l == 0 && (signbit(l) || signbit(r))) {
    puts("one is negative");
  }
}

int main() {
  test(0.0, -0.0);
  test(-0.0, 0.0);
}


This should print "one is negative" twice, but only does so once in 13.2.0 with
-O1:

$ gcc-13 a.c -O1 ; ./a.out
one is negative
$ gcc-13 a.c -O0 ; ./a.out
one is negative
one is negative
$

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-10-11 20:48 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-04 17:09 [Bug web/111694] New: Wrong behavior for signbit of negative zero when optimizing alonzakai at gmail dot com
2023-10-04 18:31 ` [Bug tree-optimization/111694] [13/14 Regression] " amonakov at gcc dot gnu.org
2023-10-04 19:09 ` pinskia at gcc dot gnu.org
2023-10-05  7:37 ` rguenth at gcc dot gnu.org
2023-10-06 17:30 ` amacleod at redhat dot com
2023-10-09 17:10 ` cvs-commit at gcc dot gnu.org
2023-10-09 17:11 ` amacleod at redhat dot com
2023-10-09 17:18 ` amonakov at gcc dot gnu.org
2023-10-09 17:36 ` amacleod at redhat dot com
2023-10-09 19:37 ` amacleod at redhat dot com
2023-10-11 20:45 ` cvs-commit at gcc dot gnu.org
2023-10-11 20:48 ` amacleod at redhat dot com

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