comparison libgomp/testsuite/libgomp.c/target-18.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 1830386684a0
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 extern void abort (void);
2
3 void
4 foo (int n)
5 {
6 int a[4] = { 0, 1, 2, 3 }, b[n];
7 int *p = a + 1, i, err;
8 for (i = 0; i < n; i++)
9 b[i] = 9 + i;
10 #pragma omp target data map(to:a)
11 #pragma omp target data use_device_ptr(p) map(from:err)
12 #pragma omp target is_device_ptr(p) private(i) map(from:err)
13 {
14 err = 0;
15 for (i = 0; i < 4; i++)
16 if (p[i - 1] != i)
17 err = 1;
18 }
19 if (err)
20 abort ();
21 for (i = 0; i < 4; i++)
22 a[i] = 23 + i;
23 #pragma omp target data map(to:a)
24 #pragma omp target data use_device_ptr(a) map(from:err)
25 #pragma omp target is_device_ptr(a) private(i) map(from:err)
26 {
27 err = 0;
28 for (i = 0; i < 4; i++)
29 if (a[i] != 23 + i)
30 err = 1;
31 }
32 if (err)
33 abort ();
34 #pragma omp target data map(to:b)
35 #pragma omp target data use_device_ptr(b) map(from:err)
36 #pragma omp target is_device_ptr(b) private(i) map(from:err)
37 {
38 err = 0;
39 for (i = 0; i < 4; i++)
40 if (b[i] != 9 + i)
41 err = 1;
42 }
43 if (err)
44 abort ();
45 }
46
47 int
48 main ()
49 {
50 foo (9);
51 return 0;
52 }