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

--- Comment #5 from Andrew Macleod <amacleod at redhat dot com> ---
The key change is that condition:
   _6 = f.5_5 << 4;
    e = _6;
    h_23 = (short int) _6;

    if (_21 == -1)
      goto <bb 3>; [50.00%]
    else
      goto <bb 4>; [50.00%]

On the false edge, we lose the ability to determine that h_23 is [16,16], and
instead, it remains [0,0][16,16]..    that causes us to not be able to
eliminate the branch

Reply via email to