(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
present-2.c
       1  /* { dg-do run } */
       2  /* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
       3  
       4  #include <openacc.h>
       5  #include <stdlib.h>
       6  
       7  int
       8  main (int argc, char **argv)
       9  {
      10    int N = 8;
      11    float *a, *b;
      12    int i;
      13  
      14    a = (float *) malloc (N * sizeof (float));
      15    b = (float *) malloc (N * sizeof (float));
      16  
      17    for (i = 0; i < N; i++)
      18      {
      19        a[i] = 4.0;
      20        b[i] = 0.0;
      21      }
      22  
      23  #pragma acc data copyin(a[0:N]) copyout(b[0:N])
      24    {
      25  
      26  #pragma acc parallel present(a[0:N])
      27      {
      28        int ii;
      29  
      30        for (ii = 0; ii < N; ii++)
      31  	{
      32  	  b[ii] = a[ii];
      33  	}
      34      }
      35  
      36    }
      37  
      38    for (i = 0; i < N; i++)
      39      {
      40        if (a[i] != 4.0)
      41  	abort ();
      42  
      43        if (b[i] != 4.0)
      44  	abort ();
      45      }
      46  
      47    return 0;
      48  }