https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106819
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |13.0 Priority|P3 |P1 CC|aldyh at redhat dot com |aldyh at gcc dot gnu.org, | |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- 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 doesn't look correct. It is a range [0,0] or NaN, so it shouldn't be singleton_p and shouldn't fold to 0.0. 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 on that though, say if the NaN would be sNaN with known sign bit set, it could raise an exception and be replaced by canonical qNaN which doesn't have sign set.