https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95679
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- SCEV info is wrecked by copyprop in this case which does u1 (int hu, int nd) { int ex.0_1; @@ -36,10 +41,9 @@ <bb 11> [local count: 64191087]: <bb 6> [local count: 118111600]: - # hu_10 = PHI <hu_5(11), hu_5(12)> <bb 7> [local count: 1073741824]: - # hu_4 = PHI <hu_10(6), hu_9(5)> + # hu_4 = PHI <hu_5(6), hu_9(5)> _2 = (long int) hu_4; _3 = (void (*<T321>) (int, int)) _2; if (_3 < u1) caused by Aldys refactoring which lost a "changed" setting by too much C++-ification. Also looks like propagating into PHI args is now done twice?! Testing patch.