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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rdapp at gcc dot gnu.org

--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
Testcase from PR128078:

__attribute__((noinline)) unsigned long long f(int b, int s, int n)
{
  unsigned long long z = 0;
  for (int i = 0; i < n; i += 3)
    z += (unsigned long long)(long long)((b + i) * s);
  return z;
}

int main(void)
{
  if (f(-2, 1 << 30, 4) != -(1ULL << 30))
    __builtin_abort();
}


we might now be able to address this with the SCEV assumptions work that went
in.  Still with additional cost, then at versioning time (and requiring
versioning in the first place).

Reply via email to