(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
goacc/
nesting-1.c
       1  /* { dg-additional-options "--param=openacc-kernels=decompose" } */
       2  
       3  /* { dg-additional-options "-fopt-info-all-omp" } */
       4  
       5  /* { dg-additional-options "--param=openacc-privatization=noisy" } */
       6  
       7  /* It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
       8     passed to 'incr' may be unset, and in that case, it will be set to [...]",
       9     so to maintain compatibility with earlier Tcl releases, we manually
      10     initialize counter variables:
      11     { dg-line l_dummy[variable c_compute 0 c_loop_i 0] }
      12     { dg-message dummy {} { target iN-VAl-Id } l_dummy } to avoid
      13     "WARNING: dg-line var l_dummy defined, but not used".  */
      14  
      15  extern int i;
      16  
      17  void
      18  f_acc_parallel (void)
      19  {
      20  #pragma acc parallel
      21    {
      22  #pragma acc loop /* { dg-line l_loop_i[incr c_loop_i] } */
      23      /* { dg-note {variable 'i\.[0-9]+' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_loop_i$c_loop_i } */
      24      /* { dg-note {variable 'i' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_i$c_loop_i }
      25         { dg-note {variable 'i' ought to be adjusted for OpenACC privatization level: 'vector'} {} { target *-*-* } l_loop_i$c_loop_i } */
      26      /* { dg-optimized {assigned OpenACC gang vector loop parallelism} {} { target *-*-* } l_loop_i$c_loop_i } */
      27      for (i = 0; i < 2; ++i)
      28        ;
      29    }
      30  }
      31  
      32  
      33  void
      34  f_acc_kernels (void)
      35  {
      36  #pragma acc kernels /* { dg-line l_compute[incr c_compute] } */
      37    /* { dg-note {variable 'i\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_compute$c_compute } */
      38    {
      39  #pragma acc loop /* { dg-line l_loop_i[incr c_loop_i] } */
      40      /* { dg-note {forwarded loop nest in OpenACC 'kernels' region to 'parloops' for analysis} {} { target *-*-* } l_loop_i$c_loop_i } */
      41      /* { dg-note {variable 'i\.[0-9]+' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_loop_i$c_loop_i } */
      42      /* { dg-note {variable 'i' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_i$c_loop_i } */
      43      /* { dg-optimized {assigned OpenACC seq loop parallelism} {} { target *-*-* } l_loop_i$c_loop_i } */
      44      for (i = 0; i < 2; ++i)
      45        ;
      46    }
      47  }
      48  
      49  
      50  void
      51  f_acc_data (void)
      52  {
      53  #pragma acc data
      54    {
      55  #pragma acc parallel
      56      ;
      57  
      58  #pragma acc parallel
      59      {
      60  #pragma acc loop /* { dg-line l_loop_i[incr c_loop_i] } */
      61        /* { dg-note {variable 'i\.[0-9]+' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_loop_i$c_loop_i } */
      62        /* { dg-note {variable 'i' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_i$c_loop_i }
      63  	 { dg-note {variable 'i' ought to be adjusted for OpenACC privatization level: 'vector'} {} { target *-*-* } l_loop_i$c_loop_i } */
      64        /* { dg-optimized {assigned OpenACC gang vector loop parallelism} {} { target *-*-* } l_loop_i$c_loop_i } */
      65        for (i = 0; i < 2; ++i)
      66  	;
      67      }
      68  
      69  #pragma acc kernels /* { dg-line l_compute[incr c_compute] } */
      70      /* { dg-note {beginning 'gang-single' part in OpenACC 'kernels' region} {} { target *-*-* } l_compute$c_compute } */
      71      ;
      72  
      73  #pragma acc kernels /* { dg-line l_compute[incr c_compute] } */
      74      /* { dg-note {variable 'i\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_compute$c_compute } */
      75      {
      76  #pragma acc loop /* { dg-line l_loop_i[incr c_loop_i] } */
      77        /* { dg-note {forwarded loop nest in OpenACC 'kernels' region to 'parloops' for analysis} {} { target *-*-* } l_loop_i$c_loop_i } */
      78        /* { dg-note {variable 'i\.[0-9]+' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_loop_i$c_loop_i } */
      79        /* { dg-note {variable 'i' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_i$c_loop_i } */
      80        /* { dg-optimized {assigned OpenACC seq loop parallelism} {} { target *-*-* } l_loop_i$c_loop_i } */
      81        for (i = 0; i < 2; ++i)
      82  	;
      83      }
      84  
      85  #pragma acc data
      86      ;
      87  
      88  #pragma acc update host(i)
      89  
      90  #pragma acc enter data copyin(i)
      91  
      92  #pragma acc exit data delete(i)
      93  
      94  #pragma acc data
      95      {
      96  #pragma acc parallel
      97        ;
      98  
      99  #pragma acc parallel
     100        {
     101  #pragma acc loop /* { dg-line l_loop_i[incr c_loop_i] } */
     102  	/* { dg-note {variable 'i\.[0-9]+' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_loop_i$c_loop_i } */
     103  	/* { dg-note {variable 'i' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_i$c_loop_i }
     104  	   { dg-note {variable 'i' ought to be adjusted for OpenACC privatization level: 'vector'} {} { target *-*-* } l_loop_i$c_loop_i } */
     105  	/* { dg-optimized {assigned OpenACC gang vector loop parallelism} {} { target *-*-* } l_loop_i$c_loop_i } */
     106  	for (i = 0; i < 2; ++i)
     107  	  ;
     108        }
     109  
     110  #pragma acc kernels /* { dg-line l_compute[incr c_compute] } */
     111        /* { dg-note {beginning 'gang-single' part in OpenACC 'kernels' region} {} { target *-*-* } l_compute$c_compute } */
     112        ;
     113  
     114  #pragma acc kernels /* { dg-line l_compute[incr c_compute] } */
     115        /* { dg-note {variable 'i\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_compute$c_compute } */
     116        {
     117  #pragma acc loop /* { dg-line l_loop_i[incr c_loop_i] } */
     118  	/* { dg-note {forwarded loop nest in OpenACC 'kernels' region to 'parloops' for analysis} {} { target *-*-* } l_loop_i$c_loop_i } */
     119  	/* { dg-note {variable 'i\.[0-9]+' in 'private' clause isn't candidate for adjusting OpenACC privatization level: not addressable} {} { target *-*-* } l_loop_i$c_loop_i } */
     120  	/* { dg-note {variable 'i' in 'private' clause is candidate for adjusting OpenACC privatization level} {} { target *-*-* } l_loop_i$c_loop_i } */
     121  	/* { dg-optimized {assigned OpenACC seq loop parallelism} {} { target *-*-* } l_loop_i$c_loop_i } */
     122  	for (i = 0; i < 2; ++i)
     123  	  ;
     124        }
     125  
     126  #pragma acc data
     127        ;
     128  
     129  #pragma acc update host(i)
     130  
     131  #pragma acc enter data copyin(i)
     132  
     133  #pragma acc exit data delete(i)
     134      }
     135    }
     136  }