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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I am thinking we should mark this as won't fix.
In VRP2 we have:
    <bb 4> [local count: 105119324]:
    _7 = l_20(D) | 1;
    _8 = (unsigned int) _7;
    if (_8 <= 1)
      goto <bb 6>; [41.00%]
    else
      goto <bb 13>; [59.00%]

...
4->6  (T) _7 :  [irange] int [0, 1] MASK 0x1 VALUE 0x0
4->6  (T) _8 :  [irange] unsigned int [0, 1]
4->6  (T) l_20(D) :     [irange] UNDEFINED
...
=========== BB 6 ============
Imports: l_20(D)  
Exports: _5  l_20(D)  
         _5 : l_20(D)(I)  
_7      [irange] int [0, 1] MASK 0x1 VALUE 0x0
l_20(D) [irange] UNDEFINED
    <bb 6> [local count: 43098922]:
    _5 = (unsigned int) l_20(D);
    b = _7;
    if (_5 > 1)
      goto <bb 14>; [37.49%]
    else
      goto <bb 15>; [62.51%]

We techincally could have [0,1] as the range for l_20(D) on the edge 4->6
And then that if goes away.

Reply via email to