https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101912
--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- > && !(leapcnt == 0 > || (prevcorr < corr > ? corr == prevcorr + 1 > : (corr == prevcorr > || corr == prevcorr - 1))))) > I guess the question is whether language rules allow us to read prevcorr when leapcnt== 0? Like we're doing here: > and after ifcombine we have: > > <bb 4> [local count: 996582262]: > _1 = corr_14 == 1; > _2 = leapcnt_5 != 0; > _3 = _1 & _2; > _19 = prevcorr_4 != 1; > _16 = _3 & _19; > _21 = prevcorr_4 != 2; > _18 = _16 & _21; > if (_18 != 0) > goto <bb 7>; [1.21%] > else > goto <bb 5>; [98.79%]