https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63941
--- Comment #2 from Yuri Rumyantsev <ysrumyan at gmail dot com> --- My patch is responsible for ICE - I did not assume that before if-convert phase cfg may contain redundant degenerative conditional branches: <bb 4>: ... _14 = d[pretmp_51]; if (_14 != 0) goto <bb 6>; else goto <bb 5>; } bb_5 (preds = {bb_4 }, succs = {bb_6 }) { <bb 5>: } bb_6 (preds = {bb_5 bb_4 }, succs = {bb_10 bb_7 }) I deleted wrong assert and slightly changed code to set up predicate for join bb conditionally. With this fix test is compiled successfully. The patch was sent to GCC community for review.