https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68894
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- This is a missed code hoisting opportunity again. _6 = a1[i_24]; _7 = a2[i_24]; if (_6 < _7) goto <bb 6>; else goto <bb 7>; <bb 6>: _8 = a3[i_24]; _22 = MIN_EXPR <_6, _8>; goto <bb 8>; <bb 7>: _9 = a3[i_24]; _28 = MIN_EXPR <_7, _9>; <bb 8>: # d_2 = PHI <_22(6), _28(7)> we fail to hoist/CSE _8/_9 here. There is another PR speaking about a similar issue of phiopt / CSE / hoisting interaction.