/* { dg-do run } */ /* { dg-options "-O0 -fopenmp-simd" } */ #include #define ASSERT_EQ(var, val) \ do \ { \ if ((var) != (val)) \ { \ fprintf (stderr, "%s:%d: Unexpected value %d, expected %d\n", \ __FILE__, __LINE__, (var), (val)); \ __builtin_abort (); \ } \ } \ while (0) #define ASSERT_EQ_PTR(var, ptr) \ do \ { \ if ((var) != (ptr)) \ { \ fprintf (stderr, "%s:%d: Unexpected value %p, expected %p\n", \ __FILE__, __LINE__, (var), (ptr)); \ __builtin_abort (); \ } \ } \ while (0) int main () { int iter_count; int data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int iter = 0; int *i; #pragma omp tile sizes(1) for (i = data; i < data + 10; i = i + 2) { ASSERT_EQ_PTR (i, data + 2 * iter); ASSERT_EQ (*i, data[2 * iter]); iter++; } unsigned long real_iter_count = ((unsigned long)i - (unsigned long)data) / (sizeof (int) * 2); ASSERT_EQ (real_iter_count, 5); return 0; }