https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118140
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I suspect if you rewrite it to be: int h = f[g - 1] ? 2 : 0; int i = f[g - 1] ? f_3 : 0; d = d || h > i; You run into the same issue and my patch won't show up in the bisect.