https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31263
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-12-25 Severity|minor |enhancement Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- _1 = i_10 + 500; _2 = _1 * 2; _3 = _2 - i_10; _4 = _3 - i_10; (simplify (minus (mult:s (plus:cs @0 @1) INTEGER_CST@2) @0) (plus (mult @0 (minus @2 { build_one_cst (type); }) (mult @1 @2)))) Will work for the above case though I don't know if it is the right thing to do as we are trading one mult for 2 in some cases.