(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
collapse-2.c
       1  /* { dg-do run } */
       2  
       3  #include <stdlib.h>
       4  
       5  int
       6  main (void)
       7  {
       8    int i, j, k, l = 0, f = 0, x = 0, l2 = 0;
       9    int m1 = 4, m2 = -5, m3 = 17;
      10  
      11  #pragma acc parallel
      12    #pragma acc loop seq collapse(3) reduction(+:l)
      13      for (i = -2; i < m1; i++)
      14        for (j = m2; j < -2; j++)
      15  	{
      16  	  for (k = 13; k < m3; k++)
      17  	    {
      18                if ((i + 2) * 12 + (j + 5) * 4 + (k - 13) !=  9 + f++)
      19  		l++;
      20  	    }
      21  	}
      22  
      23    /*  Test loop with > condition.  */
      24  #pragma acc parallel
      25    #pragma acc loop seq collapse(3) reduction(+:l2)
      26      for (i = -2; i < m1; i++)
      27        for (j = -3; j > (m2 - 1); j--)
      28  	{
      29  	  for (k = 13; k < m3; k++)
      30  	    {
      31  	      if ((i + 2) * 12 + (j + 5) * 4 + (k - 13) !=  9 + f++)
      32  		l2++;
      33  	    }
      34  	}
      35  
      36      for (i = -2; i < m1; i++)
      37        for (j = m2; j < -2; j++)
      38  	{
      39  	  for (k = 13; k < m3; k++)
      40  	    {
      41                if ((i + 2) * 12 + (j + 5) * 4 + (k - 13) !=  9 + f++)
      42  		x++;
      43  	    }
      44  	}
      45  
      46    if (l != x || l2 != x)
      47      abort ();
      48  
      49    return 0;
      50  }