https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94234
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- The closest we have is /* (A * C) +- (B * C) -> (A+-B) * C and (A * C) +- A -> A * (C+-1). which does not handle conversions, although it should be possible to add them.