[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-04 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #12 from Jakub Jelinek --- (In reply to Jakub Jelinek from comment #9) > There are e.g. 2^23-1 different sNaNs and 2^23 different qNaNs in binary32 > format. 2^23-2 sNaNs actually ;)

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-04 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #11 from Aldy Hernandez --- I'll just fix union and implement copysign folding and leave it at that.

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-04 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #10 from Aldy Hernandez --- Got it. Less work for me :-). Thanks for the explanation.

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-04 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #9 from Jakub Jelinek --- (In reply to Aldy Hernandez from comment #7) > ?? And if we keep NAN signs up to date, maybe just maybe, we can return a > NAN from singleton_p() if we're sure about the sign. ISTM we should be able > to

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-04 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #8 from Aldy Hernandez --- Created attachment 53534 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53534=edit Do not clobber signbit when unioning a NAN. Untested patch to maintain signbit when unioning a NAN with another

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-04 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #7 from Aldy Hernandez --- (In reply to Jakub Jelinek from comment #1) > BTW, regarding sign, generally NaNs can have either sign, though in this > testcase we know the sign is clear (positive NaN). Not sure how much we can > rely

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-03 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #6 from Jakub Jelinek --- You can get a NaN with negative sign e.g. through copysign (__builtin_nan (""), -1.0).

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-03 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 Aldy Hernandez changed: What|Removed |Added Resolution|--- |FIXED Status|NEW

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-03 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #4 from Aldy Hernandez --- (In reply to Jakub Jelinek from comment #1) > Global Exported: iftmp.2_6 = [frange] double [0.0, 0.0] !SIGN > Folding PHI node: iftmp.2_6 = PHI <0.0(4), Nan(5)> > Queued PHI for removal. Folds to: 0.0 >

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-03 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 --- Comment #3 from Aldy Hernandez --- Created attachment 53532 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53532=edit patch in testing

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-03 Thread aldyh at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 Aldy Hernandez changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |aldyh at gcc dot gnu.org

[Bug middle-end/106819] [13 Regression] NaN != NaN comparisons return false at -O2 since r13-2338

2022-09-03 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819 Jakub Jelinek changed: What|Removed |Added Target Milestone|--- |13.0 Priority|P3