https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92712
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Known to work| |7.5.0 Keywords| |missed-optimization Last reconfirmed| |2019-11-28 CC| |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Summary|Performance regression with |[8/9/10 Regression] |assumed values |Performance regression with | |assumed values Target Milestone|--- |8.4 Known to fail| |9.2.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- This is final value replacement becoming more correct wrt undefined overflow I guess. final value replacement: x_6 = PHI <x_5(3)> with expr: (const int) ((unsigned int) t_1(D) + 4294967295) * v_3(D) + v_3(D) final stmt: x_6 = _14 + v_3(D); Here we fail to optimize (t - 1)*v + v to t * v. Not sure how the t >= 0 assert helped but we likely get rid of that earlier and earlier.