https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94782
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2020-04-27 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Since the inner (a - 1U) * b is unsigned but a * b would be signed due to undefined signed overflow we cannot optimize to that. But we could indeed. optimize to (unsigned)a * (unsigned)b. fold-const.c contains related transforms that could be amended. reassoc could as well but would need enhancement for signed arithmetic.