blob: 766f674d55be90ad782ed34af21ff65e7ffede4e [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-ivopts-details" } */
int *a;
int
foo1 (long long s, long long l)
{
long long i;
for (i = s; i < l; i++)
{
a[(short)i] = 0;
}
return 0;
}
int
foo2 (unsigned char s, unsigned char l, unsigned char c)
{
unsigned char i, step = 1;
int sum = 0;
for (i = s; i < l; i++)
{
sum += a[c];
c += step;
}
return sum;
}
int
foo3 (unsigned char s, unsigned char l, unsigned char c)
{
unsigned char i;
int sum = 0;
for (i = s; i != l; i += c)
{
sum += a[i];
}
return sum;
}
int
foo4 (unsigned char s, unsigned char l)
{
unsigned char i;
int sum = 0;
for (i = s; i != l; i++)
{
sum += a[i];
}
return sum;
}
/* Address of array references are not scevs. */
/* { dg-final { scan-tree-dump-not "use \[0-9\]\n address" "ivopts" } } */