https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96480
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That commit changes the pre-reassoc2 dump like: --- pr96480.ii.172t.printf-return-value2_ 2020-08-05 07:22:42.000000000 -0400 +++ pr96480.ii.172t.printf-return-value2 2020-08-05 07:23:32.000000000 -0400 @@ -31,13 +31,13 @@ bool is_foo(ENUM) (ENUM e) <bb 5> [12.87%]: if (e_2(D) == 3) - goto <bb 7> (<L4>); [3.00%] + goto <bb 6>; [3.00%] else - goto <bb 6>; [97.00%] + goto <bb 7> (<L4>); [97.00%] - <bb 6> [12.48%]: + <bb 6> [0.39%]: - # prephitmp_5 = PHI <1(2), 1(3), 1(4), 1(5), 0(6)> + # prephitmp_5 = PHI <1(2), 1(3), 1(4), 1(6), 0(5)> <L4> [14.13%]: return prephitmp_5; So I guess I need to debug why reassoc doesn't like that form.