Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/c-c++-common/goacc/loop-auto-2.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 | |
2 // Tile parititioning | |
3 | |
4 void Ok () | |
5 { | |
6 #pragma acc parallel num_gangs (10) num_workers(32) vector_length(32) | |
7 { | |
8 | |
9 #pragma acc loop tile(*) gang vector | |
10 for (int ix = 0; ix < 10; ix++) | |
11 { | |
12 } | |
13 | |
14 #pragma acc loop tile(*) | |
15 for (int ix = 0; ix < 10; ix++) | |
16 { | |
17 } | |
18 | |
19 #pragma acc loop tile(*) gang | |
20 for (int ix = 0; ix < 10; ix++) | |
21 { | |
22 #pragma acc loop vector | |
23 for (int jx = 0; jx < 10; jx++) | |
24 ; | |
25 } | |
26 | |
27 #pragma acc loop tile(*) | |
28 for (int ix = 0; ix < 10; ix++) | |
29 { | |
30 #pragma acc loop vector | |
31 for (int jx = 0; jx < 10; jx++) | |
32 ; | |
33 } | |
34 | |
35 #pragma acc loop gang | |
36 for (int jx = 0; jx < 10; jx++) | |
37 { | |
38 #pragma acc loop tile(*) vector | |
39 for (int ix = 0; ix < 10; ix++) | |
40 { | |
41 } | |
42 | |
43 #pragma acc loop tile(*) | |
44 for (int ix = 0; ix < 10; ix++) | |
45 { | |
46 } | |
47 } | |
48 | |
49 #pragma acc loop tile(*) worker | |
50 for (int ix = 0; ix < 10; ix++) | |
51 { | |
52 #pragma acc loop vector | |
53 for (int jx = 0; jx < 10; jx++) | |
54 ; | |
55 } | |
56 } | |
57 } | |
58 | |
59 void Bad () | |
60 { | |
61 #pragma acc parallel num_gangs (10) num_workers(32) vector_length(32) | |
62 { | |
63 | |
64 #pragma acc loop tile(*) gang vector /* { dg-message "containing loop" } */ | |
65 for (int ix = 0; ix < 10; ix++) | |
66 { | |
67 #pragma acc loop vector /* { dg-error "uses same" } */ | |
68 for (int jx = 0; jx < 10; jx++) | |
69 ; | |
70 } | |
71 | |
72 #pragma acc loop tile(*) gang vector | |
73 for (int ix = 0; ix < 10; ix++) | |
74 { | |
75 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ | |
76 for (int jx = 0; jx < 10; jx++) | |
77 ; | |
78 } | |
79 | |
80 #pragma acc loop tile(*) auto /* { dg-warning "insufficient partitioning" } */ | |
81 for (int ix = 0; ix < 10; ix++) | |
82 { | |
83 #pragma acc loop worker | |
84 for (int jx = 0; jx < 10; jx++) | |
85 ; | |
86 } | |
87 | |
88 #pragma acc loop worker /* { dg-message "containing loop" } */ | |
89 for (int jx = 0; jx < 10; jx++) | |
90 { | |
91 #pragma acc loop tile(*) gang vector /* { dg-error "incorrectly nested" } */ | |
92 for (int ix = 0; ix < 10; ix++) | |
93 { | |
94 } | |
95 | |
96 #pragma acc loop tile(*) vector /* { dg-warning "insufficient partitioning" } */ | |
97 for (int ix = 0; ix < 10; ix++) | |
98 { | |
99 } | |
100 | |
101 #pragma acc loop tile(*) /* { dg-warning "insufficient partitioning" } */ | |
102 for (int ix = 0; ix < 10; ix++) | |
103 { | |
104 } | |
105 } | |
106 } | |
107 } |