/* { dg-do compile } */ /* { dg-options "-fopenmp -fdump-tree-omplower" } */ /* Test depend(sink) clause folding. */ int i,j,k, N; extern void bar(); void funk () { #pragma omp parallel for ordered(3) for (i=0; i < N; i++) for (j=0; j < N; ++j) for (k=0; k < N; ++k) { /* We remove the (sink:i,j-1,k) by virtue of it the i+0. The remaining clauses get folded with a GCD of -2 for `i' and a maximum of -2, +2 for 'j' and 'k'. */ #pragma omp ordered \ depend(sink:i-8,j-2,k+2) \ depend(sink:i, j-1,k) \ depend(sink:i-4,j-3,k+6) \ depend(sink:i-6,j-4,k-6) bar(); #pragma omp ordered depend(source) } } /* { dg-final { scan-tree-dump-times "omp ordered depend\\(sink:i-2,j-2,k\\+2\\)" 1 "omplower" { xfail *-*-* } } } */