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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
widening_mul is unfortunately too late here.
The normal widening_mul divmod optimization can handle not just
  c = a / b;
  d = a % b;
or
  d = a % b;
  c = a / b;
but also
  c = a / b;
... hundreds of stmts
  d = a % b;
or
  d = a % b;
  if (...)
    {
      if (...)
        c = a / b;
    }
If we handle it after the bitintlower pass, we can handle only the first 2
cases (i.e. where it is really adjacent) and nothing else.

Reply via email to