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

--- Comment #7 from Andrew Macleod <amacleod at redhat dot com> ---
(In reply to Andrew Macleod from comment #6)

> Ranger knows the range of m_3 on entry to BB3 is:
> [0, 2][4294967296, 18446744069414584322]
> we cant enumerate all the ranges that have [0,2] in the lower words, or
> there'd just be too many subranges.
> 
> and sadly, if that code were instead:
>  _7 = m_3(D) & 4294967295;
>  _8 = _7 & 4294967292;
> 
> we would again get [0,2] for a range for _8.   but no. someone thinks they
> are smarter again.  Why the heck don't we do that??
> 

scratch that. we still wouldn't get it. I was delusional.  we still dont know
that all the upper ranges don't fill some of those bits.. ie 0x100000000 thru
0x1FFFFFFF is in the range of m_3... and so we'd still fail the masking test.

only bitmask tracking or precision sensitive equivalence will capture this
case.

Reply via email to