(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
goacc/
loop-auto-1.c
       1  
       2  void Foo ()
       3  {
       4    
       5  #pragma acc parallel num_gangs(10) num_workers(32) vector_length(32)
       6    {
       7  #pragma acc loop vector
       8      for (int ix = 0; ix < 10; ix++)
       9        {
      10  #pragma acc loop seq
      11  	for (int jx = 0; jx < 10; jx++) {}
      12  
      13  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
      14  	for (int jx = 0; jx < 10; jx++) {}
      15        }
      16  
      17  #pragma acc loop worker
      18      for (int ix = 0; ix < 10; ix++)
      19        {
      20  #pragma acc loop auto
      21  	for (int jx = 0; jx < 10; jx++) {}
      22  
      23  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
      24  	for (int jx = 0; jx < 10; jx++)
      25  	  {
      26  #pragma acc loop vector
      27  	    for (int kx = 0; kx < 10; kx++) {}
      28  	  }
      29        }
      30  
      31  #pragma acc loop gang
      32      for (int ix = 0; ix < 10; ix++)
      33        {
      34  #pragma acc loop auto
      35  	for (int jx = 0; jx < 10; jx++) {}
      36  
      37  #pragma acc loop auto
      38  	for (int jx = 0; jx < 10; jx++)
      39  	  {
      40  #pragma acc loop auto
      41  	    for (int kx = 0; kx < 10; kx++) {}
      42  	  }
      43  
      44  #pragma acc loop worker
      45  	for (int jx = 0; jx < 10; jx++)
      46  	  {
      47  #pragma acc loop auto
      48  	    for (int kx = 0; kx < 10; kx++) {}
      49  	  }
      50  
      51  #pragma acc loop vector
      52  	for (int jx = 0; jx < 10; jx++)
      53  	  {
      54  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
      55  	    for (int kx = 0; kx < 10; kx++) {}
      56  	  }
      57  
      58  #pragma acc loop auto
      59  	for (int jx = 0; jx < 10; jx++)
      60  	  {
      61  #pragma acc loop vector
      62  	    for (int kx = 0; kx < 10; kx++) {}
      63  	  }
      64  
      65        }
      66      
      67  #pragma acc loop auto
      68      for (int ix = 0; ix < 10; ix++)
      69        {
      70  #pragma acc loop auto
      71  	for (int jx = 0; jx < 10; jx++)
      72  	  {
      73  #pragma acc loop auto
      74  	    for (int kx = 0; kx < 10; kx++) {}
      75  	  }
      76        }
      77  
      78  #pragma acc loop auto
      79      for (int ix = 0; ix < 10; ix++)
      80        {
      81  #pragma acc loop auto
      82  	for (int jx = 0; jx < 10; jx++)
      83  	  {
      84  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
      85  	    for (int kx = 0; kx < 10; kx++)
      86  	      {
      87  #pragma acc loop auto
      88  		for (int lx = 0; lx < 10; lx++) {}
      89  	      }
      90  	  }
      91        }
      92    }
      93  }
      94  
      95  #pragma acc routine gang
      96  void Gang (void)
      97  {
      98  #pragma acc loop vector
      99      for (int ix = 0; ix < 10; ix++)
     100        {
     101  #pragma acc loop seq
     102  	for (int jx = 0; jx < 10; jx++) {}
     103  
     104  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     105  	for (int jx = 0; jx < 10; jx++) {}
     106        }
     107  
     108  #pragma acc loop worker
     109      for (int ix = 0; ix < 10; ix++)
     110        {
     111  #pragma acc loop auto
     112  	for (int jx = 0; jx < 10; jx++) {}
     113  
     114  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     115  	for (int jx = 0; jx < 10; jx++)
     116  	  {
     117  #pragma acc loop vector
     118  	    for (int kx = 0; kx < 10; kx++) {}
     119  	  }
     120        }
     121  
     122  #pragma acc loop gang
     123      for (int ix = 0; ix < 10; ix++)
     124        {
     125  #pragma acc loop auto
     126  	for (int jx = 0; jx < 10; jx++) {}
     127  
     128  #pragma acc loop auto
     129  	for (int jx = 0; jx < 10; jx++)
     130  	  {
     131  #pragma acc loop auto
     132  	    for (int kx = 0; kx < 10; kx++) {}
     133  	  }
     134  
     135  #pragma acc loop worker
     136  	for (int jx = 0; jx < 10; jx++)
     137  	  {
     138  #pragma acc loop auto
     139  	    for (int kx = 0; kx < 10; kx++) {}
     140  	  }
     141  
     142  #pragma acc loop vector
     143  	for (int jx = 0; jx < 10; jx++)
     144  	  {
     145  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     146  	    for (int kx = 0; kx < 10; kx++) {}
     147  	  }
     148  
     149  #pragma acc loop auto
     150  	for (int jx = 0; jx < 10; jx++)
     151  	  {
     152  #pragma acc loop vector
     153  	    for (int kx = 0; kx < 10; kx++) {}
     154  	  }
     155  
     156        }
     157      
     158  #pragma acc loop auto
     159      for (int ix = 0; ix < 10; ix++)
     160        {
     161  #pragma acc loop auto
     162  	for (int jx = 0; jx < 10; jx++)
     163  	  {
     164  #pragma acc loop auto
     165  	    for (int kx = 0; kx < 10; kx++) {}
     166  	  }
     167        }
     168  }
     169  
     170  #pragma acc routine worker
     171  void Worker (void)
     172  {
     173  #pragma acc loop vector
     174      for (int ix = 0; ix < 10; ix++)
     175        {
     176  #pragma acc loop seq
     177  	for (int jx = 0; jx < 10; jx++) {}
     178  
     179  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     180  	for (int jx = 0; jx < 10; jx++) {}
     181        }
     182  
     183  #pragma acc loop worker
     184      for (int ix = 0; ix < 10; ix++)
     185        {
     186  #pragma acc loop auto
     187  	for (int jx = 0; jx < 10; jx++) {}
     188  
     189  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     190  	for (int jx = 0; jx < 10; jx++)
     191  	  {
     192  #pragma acc loop vector
     193  	    for (int kx = 0; kx < 10; kx++) {}
     194  	  }
     195        }
     196  
     197  #pragma acc loop auto
     198      for (int ix = 0; ix < 10; ix++)
     199        {
     200  #pragma acc loop auto
     201  	for (int jx = 0; jx < 10; jx++) {}
     202        }
     203  
     204  #pragma acc loop auto
     205      for (int ix = 0; ix < 10; ix++)
     206        {
     207  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     208  	for (int jx = 0; jx < 10; jx++)
     209  	  {
     210  #pragma acc loop auto
     211  	    for (int kx = 0; kx < 10; kx++) {}
     212  	  }
     213        }
     214  }
     215  
     216  #pragma acc routine vector
     217  void Vector (void)
     218  {
     219  #pragma acc loop vector
     220      for (int ix = 0; ix < 10; ix++)
     221        {
     222  #pragma acc loop seq
     223  	for (int jx = 0; jx < 10; jx++) {}
     224  
     225  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     226  	for (int jx = 0; jx < 10; jx++) {}
     227        }
     228  
     229  #pragma acc loop auto
     230      for (int ix = 0; ix < 10; ix++) {}
     231  
     232  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     233      for (int ix = 0; ix < 10; ix++)
     234        {
     235  #pragma acc loop auto
     236  	for (int jx = 0; jx < 10; jx++) {}
     237        }
     238  }
     239  
     240  #pragma acc routine seq
     241  void Seq (void)
     242  {
     243  #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */
     244      for (int ix = 0; ix < 10; ix++) {}
     245  }