(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
nvptx-merged-loop.c
       1  /* { dg-do run { target openacc_nvidia_accel_selected } } */
       2  /* { dg-options "-foffload=-fdump-rtl-mach" } */
       3  /* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */
       4  
       5  #define N (32*32*32+17)
       6  void __attribute__ ((noinline)) Foo (int *ary)
       7  {
       8    int ix;
       9  
      10  #pragma acc parallel num_workers(32) vector_length(32) copyout(ary[0:N])
      11    {
      12      /* Loop partitioning should be merged.  */
      13  #pragma acc loop worker vector
      14      for (unsigned ix = 0; ix < N; ix++)
      15        {
      16  	ary[ix] = ix;
      17        }
      18    }
      19  }
      20  
      21  int main ()
      22  {
      23    int ary[N];
      24  
      25    Foo (ary);
      26  
      27    return 0;
      28  }   
      29  
      30  /* { dg-final { scan-offload-rtl-dump "Merging loop .* into " "mach" } } */