https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62217
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Actually it is a bad interaction between DOM and complete unrolling.
<bb 20>:
# i_14 = PHI <i_36(19)>
if (i_14 == b_6(D))
goto <bb 21>;
else
goto <bb 22>;
<bb 21>:
g_x[b_6(D)] = *x1_7(D);
i_11 = i_14 + 1;
goto <bb 3>;
<bb 22>:
__builtin_unreachable ();
--- CUT ---
Basic Block 21 should have been a __builtin_unreachable (); also.
BB21 was bb5 after dom.
BB5 was changed all the way back in dom to:
<bb 5>:
g_x[b_6(D)] = *x1_7(D);
goto <bb 7>;
It was before DOM:
<bb 5>:
g_x[i_14] = *x2_9(D);