blob: d166dac950b2b641230f3c9b483f94270cc00781 [file] [log] [blame]
/* { 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 *-*-* } } } */