Richard Biener wrote: > > We also change the association of > > > > x / (y * C) -> (x / C) / y > > > > If C is a constant. > > Why's that profitable?
It enables (x * C1) / (y * C2) -> (x * C1/C2) / y for example. Also 1/y is now available to the reciprocal optimization, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026 for details. > > x / (- y) -> (-x) / y > > Why? (it's only one of the possible canonicalizations) Same here, y is now available for reciprocal optimization. The negate may now be optimized, for example (a * b) / -y -> (-a*b) / y will use a negated multiple on various targets. Wilco