/* { dg-do compile } */
/* { dg-options "-O3 -fdump-tree-ldist" } */

void
foo (int *p)
{
  unsigned short i, j;

  for (i = 0; i < 100; i++)
    for (j = 1; j < 101; j++)
      {
	unsigned int index = 100 * i + j;
	p[index-1] = 0;
      }
}

/* Loop can be transformed into builtin memset since &p[...] is SCEV.  */
/* { dg-final { scan-tree-dump "builtin_memset" "ldist" } } */