https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109154
--- Comment #13 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #12) > (In reply to Aldy Hernandez from comment #10) > > BTW, I don't think it helps at all here, but casting from l_10 to a float, > > we know _1 can't be either -0.0 or +-INF or +-NAN. We could add a range-op > > entry for NOP_EXPR / CONVERT_EXPR to expose this fact. Well, at the very > > least that it can't be a NAN...in the current representation for frange's. > > We definitely should add range-ops for conversions from integral to floating > point and from floating to integral and their reverses. But until we have > more than one range, if the integral value is VARYING, for 32-bit signed int > the range would be > [-0x1.p+31, 0x1.p+31] so nothing specific around zero. With 3+ ranges we > could make it > [-0x1.p+31, -1.][0., 0.][1., 0x1.p+31] if we think normal values around zero > are important special cases. Ultimately we want "unlimited" sub-ranges like we have for int_range_max, but who knows what pandora's box that will open :-/.