https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31889
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #5) > Except it is no longer fixed by that. That broke in GCC 10. It broke in GCC 10 because we now have: ``` if (_10 < _12) goto <bb 3>; [1.04%] else goto <bb 4>; [98.96%] <bb 3> [local count: 11166912]: d1 ={v} {CLOBBER(eol)}; d2 ={v} {CLOBBER(eol)}; goto <bb 8>; [100.00%] <bb 4> [local count: 1062574912]: if (_10 > _12) goto <bb 5>; [34.00%] else goto <bb 6>; [66.00%] <bb 5> [local count: 361275474]: d1 ={v} {CLOBBER(eol)}; d2 ={v} {CLOBBER(eol)}; goto <bb 8>; [100.00%] ``` Which can be figured out is the same via `code hoisting` pass.