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

Drea Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---

  size:   1 _1 = x_13(D)->w[i_24];
  size:   1 _2 = y_14(D)->w[i_24];
  size:   0 _15 = .ADD_OVERFLOW (_1, _2);
  size:   0 _3 = IMAGPART_EXPR <_15>;
  size:   0 _4 = REALPART_EXPR <_15>;
  size:   0 _16 = .ADD_OVERFLOW (_4, k_23);
  size:   0 _5 = IMAGPART_EXPR <_16>;
  size:   1 _6 = _3 | _5;
  size:   0 _7 = REALPART_EXPR <_16>;
  size:   1 r_17(D)->w[i_24] = _7;
  size:   1 i_19 = i_24 + 1;


Hmm, even the size of ADD_OVERFLOW looks wrong ...

So we don't detect UADDC until after loop unrolling.  So the cost model here
might is not taking into that account.

Reply via email to