1 Foo()2void Foo () 3 { 4 5 #pragma acc parallel num_gangs(10) num_workers(32) vector_length(32) 6 { 7 #pragma acc loop vector 8 for (int ix = 0; ix < 10; ix++) 9 { 10 #pragma acc loop seq 11 for (int jx = 0; jx < 10; jx++) {} 12 13 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 14 for (int jx = 0; jx < 10; jx++) {} 15 } 16 17 #pragma acc loop worker 18 for (int ix = 0; ix < 10; ix++) 19 { 20 #pragma acc loop auto 21 for (int jx = 0; jx < 10; jx++) {} 22 23 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 24 for (int jx = 0; jx < 10; jx++) 25 { 26 #pragma acc loop vector 27 for (int kx = 0; kx < 10; kx++) {} 28 } 29 } 30 31 #pragma acc loop gang 32 for (int ix = 0; ix < 10; ix++) 33 { 34 #pragma acc loop auto 35 for (int jx = 0; jx < 10; jx++) {} 36 37 #pragma acc loop auto 38 for (int jx = 0; jx < 10; jx++) 39 { 40 #pragma acc loop auto 41 for (int kx = 0; kx < 10; kx++) {} 42 } 43 44 #pragma acc loop worker 45 for (int jx = 0; jx < 10; jx++) 46 { 47 #pragma acc loop auto 48 for (int kx = 0; kx < 10; kx++) {} 49 } 50 51 #pragma acc loop vector 52 for (int jx = 0; jx < 10; jx++) 53 { 54 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 55 for (int kx = 0; kx < 10; kx++) {} 56 } 57 58 #pragma acc loop auto 59 for (int jx = 0; jx < 10; jx++) 60 { 61 #pragma acc loop vector 62 for (int kx = 0; kx < 10; kx++) {} 63 } 64 65 } 66 67 #pragma acc loop auto 68 for (int ix = 0; ix < 10; ix++) 69 { 70 #pragma acc loop auto 71 for (int jx = 0; jx < 10; jx++) 72 { 73 #pragma acc loop auto 74 for (int kx = 0; kx < 10; kx++) {} 75 } 76 } 77 78 #pragma acc loop auto 79 for (int ix = 0; ix < 10; ix++) 80 { 81 #pragma acc loop auto 82 for (int jx = 0; jx < 10; jx++) 83 { 84 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 85 for (int kx = 0; kx < 10; kx++) 86 { 87 #pragma acc loop auto 88 for (int lx = 0; lx < 10; lx++) {} 89 } 90 } 91 } 92 } 93 } 94 95 #pragma acc routine gang Gang(void)96void Gang (void) 97 { 98 #pragma acc loop vector 99 for (int ix = 0; ix < 10; ix++) 100 { 101 #pragma acc loop seq 102 for (int jx = 0; jx < 10; jx++) {} 103 104 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 105 for (int jx = 0; jx < 10; jx++) {} 106 } 107 108 #pragma acc loop worker 109 for (int ix = 0; ix < 10; ix++) 110 { 111 #pragma acc loop auto 112 for (int jx = 0; jx < 10; jx++) {} 113 114 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 115 for (int jx = 0; jx < 10; jx++) 116 { 117 #pragma acc loop vector 118 for (int kx = 0; kx < 10; kx++) {} 119 } 120 } 121 122 #pragma acc loop gang 123 for (int ix = 0; ix < 10; ix++) 124 { 125 #pragma acc loop auto 126 for (int jx = 0; jx < 10; jx++) {} 127 128 #pragma acc loop auto 129 for (int jx = 0; jx < 10; jx++) 130 { 131 #pragma acc loop auto 132 for (int kx = 0; kx < 10; kx++) {} 133 } 134 135 #pragma acc loop worker 136 for (int jx = 0; jx < 10; jx++) 137 { 138 #pragma acc loop auto 139 for (int kx = 0; kx < 10; kx++) {} 140 } 141 142 #pragma acc loop vector 143 for (int jx = 0; jx < 10; jx++) 144 { 145 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 146 for (int kx = 0; kx < 10; kx++) {} 147 } 148 149 #pragma acc loop auto 150 for (int jx = 0; jx < 10; jx++) 151 { 152 #pragma acc loop vector 153 for (int kx = 0; kx < 10; kx++) {} 154 } 155 156 } 157 158 #pragma acc loop auto 159 for (int ix = 0; ix < 10; ix++) 160 { 161 #pragma acc loop auto 162 for (int jx = 0; jx < 10; jx++) 163 { 164 #pragma acc loop auto 165 for (int kx = 0; kx < 10; kx++) {} 166 } 167 } 168 } 169 170 #pragma acc routine worker Worker(void)171void Worker (void) 172 { 173 #pragma acc loop vector 174 for (int ix = 0; ix < 10; ix++) 175 { 176 #pragma acc loop seq 177 for (int jx = 0; jx < 10; jx++) {} 178 179 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 180 for (int jx = 0; jx < 10; jx++) {} 181 } 182 183 #pragma acc loop worker 184 for (int ix = 0; ix < 10; ix++) 185 { 186 #pragma acc loop auto 187 for (int jx = 0; jx < 10; jx++) {} 188 189 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 190 for (int jx = 0; jx < 10; jx++) 191 { 192 #pragma acc loop vector 193 for (int kx = 0; kx < 10; kx++) {} 194 } 195 } 196 197 #pragma acc loop auto 198 for (int ix = 0; ix < 10; ix++) 199 { 200 #pragma acc loop auto 201 for (int jx = 0; jx < 10; jx++) {} 202 } 203 204 #pragma acc loop auto 205 for (int ix = 0; ix < 10; ix++) 206 { 207 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 208 for (int jx = 0; jx < 10; jx++) 209 { 210 #pragma acc loop auto 211 for (int kx = 0; kx < 10; kx++) {} 212 } 213 } 214 } 215 216 #pragma acc routine vector Vector(void)217void Vector (void) 218 { 219 #pragma acc loop vector 220 for (int ix = 0; ix < 10; ix++) 221 { 222 #pragma acc loop seq 223 for (int jx = 0; jx < 10; jx++) {} 224 225 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 226 for (int jx = 0; jx < 10; jx++) {} 227 } 228 229 #pragma acc loop auto 230 for (int ix = 0; ix < 10; ix++) {} 231 232 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 233 for (int ix = 0; ix < 10; ix++) 234 { 235 #pragma acc loop auto 236 for (int jx = 0; jx < 10; jx++) {} 237 } 238 } 239 240 #pragma acc routine seq Seq(void)241void Seq (void) 242 { 243 #pragma acc loop auto /* { dg-warning "insufficient partitioning" } */ 244 for (int ix = 0; ix < 10; ix++) {} 245 } 246