P(void)1void P(void) 2 { 3 int i, j; 4 5 #pragma acc parallel 6 { 7 #pragma acc loop auto 8 for (i = 0; i < 10; i++) 9 { } 10 #pragma acc loop gang 11 for (i = 0; i < 10; i++) 12 { } 13 #pragma acc loop gang(static:5) 14 for (i = 0; i < 10; i++) 15 { } 16 #pragma acc loop gang(static:*) 17 for (i = 0; i < 10; i++) 18 { } 19 #pragma acc loop gang // { dg-message "containing loop" } 20 for (i = 0; i < 10; i++) 21 { 22 #pragma acc loop vector 23 for (j = 1; j < 10; j++) 24 { } 25 #pragma acc loop worker 26 for (j = 1; j < 10; j++) 27 { } 28 #pragma acc loop gang // { dg-error "inner loop uses same" } 29 for (j = 1; j < 10; j++) 30 { } 31 } 32 #pragma acc loop seq gang // { dg-error "'seq' overrides" } 33 for (i = 0; i < 10; i++) 34 { } 35 36 #pragma acc loop worker 37 for (i = 0; i < 10; i++) 38 { } 39 #pragma acc loop worker // { dg-message "containing loop" 2 } 40 for (i = 0; i < 10; i++) 41 { 42 #pragma acc loop vector 43 for (j = 1; j < 10; j++) 44 { } 45 #pragma acc loop worker // { dg-error "inner loop uses same" } 46 for (j = 1; j < 10; j++) 47 { } 48 #pragma acc loop gang // { dg-error "incorrectly nested" } 49 for (j = 1; j < 10; j++) 50 { } 51 } 52 #pragma acc loop seq worker // { dg-error "'seq' overrides" } 53 for (i = 0; i < 10; i++) 54 { } 55 #pragma acc loop gang worker 56 for (i = 0; i < 10; i++) 57 { } 58 59 #pragma acc loop vector 60 for (i = 0; i < 10; i++) 61 { } 62 for (i = 0; i < 10; i++) 63 { } 64 #pragma acc loop vector // { dg-message "containing loop" 3 } 65 for (i = 0; i < 10; i++) 66 { 67 #pragma acc loop vector // { dg-error "inner loop uses same" } 68 for (j = 1; j < 10; j++) 69 { } 70 #pragma acc loop worker // { dg-error "incorrectly nested" } 71 for (j = 1; j < 10; j++) 72 { } 73 #pragma acc loop gang // { dg-error "incorrectly nested" } 74 for (j = 1; j < 10; j++) 75 { } 76 } 77 #pragma acc loop seq vector // { dg-error "'seq' overrides" } 78 for (i = 0; i < 10; i++) 79 { } 80 #pragma acc loop gang vector 81 for (i = 0; i < 10; i++) 82 { } 83 #pragma acc loop worker vector 84 for (i = 0; i < 10; i++) 85 { } 86 87 #pragma acc loop auto 88 for (i = 0; i < 10; i++) 89 { } 90 #pragma acc loop seq auto // { dg-error "'seq' overrides" } 91 for (i = 0; i < 10; i++) 92 { } 93 #pragma acc loop gang auto // { dg-error "'auto' conflicts" } 94 for (i = 0; i < 10; i++) 95 { } 96 #pragma acc loop worker auto // { dg-error "'auto' conflicts" } 97 for (i = 0; i < 10; i++) 98 { } 99 #pragma acc loop vector auto // { dg-error "'auto' conflicts" } 100 for (i = 0; i < 10; i++) 101 { } 102 103 } 104 105 #pragma acc parallel loop auto 106 for (i = 0; i < 10; i++) 107 { } 108 #pragma acc parallel loop gang 109 for (i = 0; i < 10; i++) 110 { } 111 #pragma acc parallel loop gang(static:5) 112 for (i = 0; i < 10; i++) 113 { } 114 #pragma acc parallel loop gang(static:*) 115 for (i = 0; i < 10; i++) 116 { } 117 118 #pragma acc parallel loop seq gang // { dg-error "'seq' overrides" "" { target c } } 119 for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } } 120 { } 121 122 #pragma acc parallel loop worker 123 for (i = 0; i < 10; i++) 124 { } 125 126 #pragma acc parallel loop seq worker // { dg-error "'seq' overrides" "" { target c } } 127 for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } } 128 { } 129 #pragma acc parallel loop gang worker 130 for (i = 0; i < 10; i++) 131 { } 132 133 #pragma acc parallel loop vector 134 for (i = 0; i < 10; i++) 135 { } 136 137 #pragma acc parallel loop seq vector // { dg-error "'seq' overrides" "" { target c } } 138 for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } } 139 { } 140 #pragma acc parallel loop gang vector 141 for (i = 0; i < 10; i++) 142 { } 143 #pragma acc parallel loop worker vector 144 for (i = 0; i < 10; i++) 145 { } 146 147 #pragma acc parallel loop auto 148 for (i = 0; i < 10; i++) 149 { } 150 #pragma acc parallel loop seq auto // { dg-error "'seq' overrides" "" { target c } } 151 for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } } 152 { } 153 #pragma acc parallel loop gang auto // { dg-error "'auto' conflicts" "" { target c } } 154 for (i = 0; i < 10; i++) // { dg-error "'auto' conflicts" "" { target c++ } } 155 { } 156 #pragma acc parallel loop worker auto // { dg-error "'auto' conflicts" "" { target c } } 157 for (i = 0; i < 10; i++) // { dg-error "'auto' conflicts" "" { target c++ } } 158 { } 159 #pragma acc parallel loop vector auto // { dg-error "'auto' conflicts" "" { target c } } 160 for (i = 0; i < 10; i++) // { dg-error "'auto' conflicts" "" { target c++ } } 161 { } 162 } 163