Mercurial > hg > CbC > CbC_gcc
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 } |