https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115934

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
   Target Milestone|---                         |15.0

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yup, one IV instead of two and

    +  _17 = (unsigned int) left_4(D);
    +  _2 = (unsigned int) rite_5(D);
    +  _1 = _2 + _17;
    +  _13 = (unsigned int) rite_15;
    +  _11 = -_13;
    +  _12 = _1 + _11;
    +  left_14 = (int) _12;

failing to identify and hoist the invariant part of left_4(D) + rite_5(D) -
rite_15.  I guess IVOPTs is only able to hoist fully invariants, not
invariant parts when rewriting a use.

Reply via email to