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
