(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
gomp/
doacross-7.c
       1  void
       2  foo (int l)
       3  {
       4    int i, j, k;
       5    #pragma omp parallel
       6    {
       7      #pragma omp for schedule(static) ordered (3)
       8      for (i = 2; i < 256 / 16 - 1; i++)
       9        for (j = 0; j < 8; j += 2)
      10  	for (k = 1; k <= 3; k++)
      11  	  {
      12  	    #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      13  	    #pragma omp ordered doacross(source:)
      14  	  }
      15      #pragma omp for schedule(static) ordered (3) collapse(2)
      16      for (i = 2; i < 256 / 16 - 1; i++)
      17        for (j = 0; j < 8; j += 2)
      18  	for (k = 1; k <= 3; k++)
      19  	  {
      20  	    #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      21  	    #pragma omp ordered doacross(source:)
      22  	  }
      23      #pragma omp for schedule(static) ordered (3) collapse(3)
      24      for (i = 2; i < 256 / 16 - 1; i++)
      25        for (j = 0; j < 8; j += 2)
      26  	for (k = 1; k <= 3; k++)
      27  	  {
      28  	    #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      29  	    #pragma omp ordered doacross(source: omp_cur_iteration)
      30  	  }
      31      #pragma omp for schedule(static) ordered (1) nowait
      32      for (i = 2; i < 256 / 16 - 1; i += l)
      33        {
      34  	#pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      35  	#pragma omp ordered doacross(source:)
      36        }
      37    }
      38  }
      39  
      40  void
      41  bar (int l, int m, int n, int o)
      42  {
      43    int i, j, k;
      44    #pragma omp for schedule(static) ordered (3)
      45    for (i = 2; i < 256 / 16 - 1; i++)
      46      for (j = 0; j < m; j += n)
      47        for (k = o; k <= 3; k++)
      48  	{
      49  	  foo (l);
      50  	  #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      51  	  #pragma omp ordered doacross(source:omp_cur_iteration)
      52  	}
      53    #pragma omp for schedule(static) ordered (3) collapse(2)
      54    for (i = 2; i < 256 / 16 - m; i += n)
      55      for (j = 0; j < 8; j += o)
      56        for (k = 1; k <= 3; k++)
      57  	{
      58  	  foo (l);
      59  	  #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      60  	  #pragma omp ordered doacross(source : omp_cur_iteration)
      61  	}
      62    #pragma omp for schedule(static) ordered (3) collapse(3)
      63    for (i = m; i < 256 / 16 - 1; i++)
      64      for (j = 0; j < n; j += 2)
      65        for (k = 1; k <= o; k++)
      66  	{
      67  	  foo (l);
      68  	  #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      69  	  #pragma omp ordered doacross(source :)
      70  	}
      71    #pragma omp for schedule(static) ordered
      72    for (i = m; i < n / 16 - 1; i += l)
      73      {
      74        foo (l);
      75        #pragma omp ordered doacross(sink: omp_cur_iteration - 1)
      76        #pragma omp ordered doacross(source: omp_cur_iteration)
      77      }
      78  }