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 }