https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95867
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- It's done through POWI internally, I guess we could open the internal function to also operate on integers... As for overflow for a multiplication chain of the same operand there shouldn't be any issue, but not sure how far we should go with signed arithmetic support early (for the late reassoc the idea is still to set flag_wrapv = 1). We could carefully handle some cases by ensuring to only perform "safe" linearization and for the resulting chains adjust operand sorting to only perform "safe" commutations (basically not sort, only optimize trailing constants / cancellations).