/* PR middle-end/59152 */ /* { dg-do compile } */ /* { dg-options "-fopenmp -fipa-pure-const" } */ extern int b[]; void foo (void) { unsigned long v1, v2, v3; #pragma omp parallel for schedule(static, 32) collapse(3) for (v1 = 0; v1 < 20; v1 += 2) for (v2 = __LONG_MAX__; v2 > __LONG_MAX__ - 30; v2 -= 3) for (v3 = 10; v3 > 0; v3--) #pragma omp atomic b[v3]++; } void bar (void) { unsigned long v1, v2, v3; #pragma omp parallel for schedule(static) collapse(3) for (v1 = 0; v1 < 20; v1 += 2) for (v2 = __LONG_MAX__; v2 > __LONG_MAX__ - 30; v2 -= 3) for (v3 = 10; v3 > 0; v3--) #pragma omp atomic b[v3]++; } void baz (void) { unsigned long v1, v2, v3; #pragma omp parallel for schedule(runtime) collapse(3) for (v1 = 0; v1 < 20; v1 += 2) for (v2 = __LONG_MAX__; v2 > __LONG_MAX__ - 30; v2 -= 3) for (v3 = 10; v3 > 0; v3--) #pragma omp atomic b[v3]++; }