https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102844
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Before:
<bb 13> [local count: 25265782]:
<L4>:
nd.7_11 = _46;
_12 = _46 + -128;
_13 = (unsigned char) _12;
dic = _13;
goto <bb 15>; [100.00%]
<bb 14> [local count: 25265782]:
<L5>:
dic = 0;
<bb 15> [local count: 114848370]:
# nd_52 = PHI <nd_6(14), 149(12), nd_6(13), 33(8)>
return nd_52;
<bb 16> [local count: 25270028]:
_46 = (signed char) nd_6;
if (_46 < 0)
goto <bb 13>; [33.33%]
else
goto <bb 14>; [66.67%]
Hmmm:
<bb 16> [local count: 25270028]:
nd_36 = ASSERT_EXPR <nd_47, nd_47 <= 130>;
_46 = (signed char) nd_36;
if (_46 < 0)
goto <bb 21>; [33.33%]
else
goto <bb 20>; [66.67%]
<bb 21> [local count: 8423438]:
_17 = ASSERT_EXPR <_46, _46 < 0>;
nd_39 = ASSERT_EXPR <nd_36, nd_36 + 128 <= 127>;
<bb 13> [local count: 25265782]:
<L4>:
nd.7_11 = _34(D);
_12 = _33(D) + -128;
_13 = (unsigned char) _12;
dic = _13;
goto <bb 15>; [100.00%]
<bb 20> [local count: 16846590]:
nd_45 = ASSERT_EXPR <nd_36, nd_36 + 128 > 127>;
Hmm, no phi node at bb 13 for _46 ....