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).