/* { dg-do run } */
/* { dg-additional-options "-msse2" { target sse2_runtime } } */
/* { dg-additional-options "-mavx" { target avx_runtime } } */

int s = 0, i, j, u;

void
foo ()
{
  #pragma omp for simd schedule(static, 32) reduction(+:s) lastprivate(u) collapse(2)
  for (i = 0; i < 16; i++)
    for (j = 0; j < 16; j++)
      {
	s++;
	u = i + j;
      }
  if (i != 16 || j != 16 || s != 256 || u != 30)
    __builtin_abort ();
}

int
main ()
{
  foo ();
  return 0;
}
