aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.oacc-c-c++-common/reduction-6.c
blob: 82a6ade40f9c50f0804af8fc9447616e2b5247c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* { dg-do run } */

/* Test reductions on explicitly private variables.  */

#include <assert.h>

int
main ()
{
  int i, j, red[10];
  int v;

  for (i = 0; i < 10; i++)
    red[i] = -1;

#pragma acc parallel copyout(red)
  {
#pragma acc loop gang private(v)
    for (j = 0; j < 10; j++)
      {
	v = j;

#pragma acc loop vector reduction (+:v)
	for (i = 0; i < 100; i++)
	  v++;

	red[j] = v;
      }
  }

  for (i = 0; i < 10; i++)
    assert (red[i] == i + 100);

  return 0;
}