https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70159
--- Comment #9 from Sebastian Pop <spop at gcc dot gnu.org> --- Created attachment 37927 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37927&action=edit patch for hoisting expressions Updated the patch from PR23286 to hoist the redundant expressions: <bb 2>: inv_4 = 1.0e+0 / d_3(D); _18 = min_5(D) - a_6(D); _19 = _18 / inv_4; _20 = max_9(D) - a_6(D); _21 = _20 / inv_4; if (inv_4 >= 0.0) goto <bb 4>; else goto <bb 3>; <bb 3>: <bb 4>: # tmin_1 = PHI <_19(2), _21(3)> # tmax_2 = PHI <_21(2), _19(3)> _16 = tmin_1 + tmax_2; return _16; The attached patch does not pass make check and causes some infinite recursion.