1! Predetermined 'private' clauses related to 'do' loops inside an OpenACC 2! 'kernels' construct. 3 4! { dg-additional-options "-fdump-tree-original -fdump-tree-gimple" } 5 6! (The 'independent' clauses are used as end of directive markers in tree dump 7! scanning.) 8 9program test 10 implicit none 11 integer :: i0_1 12 integer :: i0_2, j0_2 13 integer :: i1_s 14 integer :: i1_c 15 integer :: i2_1_s, j2_1_s 16 integer :: i2_1_c, j2_1_c 17 integer :: i2_2_s, j2_2_s 18 integer :: i2_3_s, j2_3_s 19 integer :: i2_3_c, j2_3_c 20 integer :: i3_1_s, j3_1_s, k3_1_s 21 integer :: i3_1_c, j3_1_c, k3_1_c 22 integer :: i3_2_s, j3_2_s, k3_2_s 23 integer :: i3_2_c, j3_2_c, k3_2_c 24 integer :: i3_3_s, j3_3_s, k3_3_s 25 integer :: i3_3_c, j3_3_c, k3_3_c 26 integer :: i3_4_s, j3_4_s, k3_4_s 27 integer :: i3_4_c, j3_4_c, k3_4_c 28 integer :: i3_5_s, j3_5_s, k3_5_s 29 30 !$acc kernels 31 ! { dg-final { scan-tree-dump-times "private\\(i0_1\\)" 1 "original" { xfail *-*-* } } } ! PR90067 32 ! { dg-final { scan-tree-dump-times "private\\(i0_1\\)" 1 "gimple" { xfail *-*-* } } } ! PR90067 33 ! { dg-final { scan-tree-dump-times "#pragma omp target oacc_kernels map\\(force_tofrom:i0_1 \\\[len: \[0-9\]+\\\]\\)" 0 "gimple" { xfail *-*-* } } } ! PR90067 34 do i0_1 = 1, 100 35 end do 36 !$acc end kernels 37 38 !$acc kernels 39 ! { dg-final { scan-tree-dump-times "private\\(i0_2\\)" 1 "original" { xfail *-*-* } } } ! PR90067 40 ! { dg-final { scan-tree-dump-times "private\\(j0_2\\)" 1 "original" { xfail *-*-* } } } ! PR90067 41 ! { dg-final { scan-tree-dump-times "private\\(i0_2\\)" 1 "gimple" { xfail *-*-* } } } ! PR90067 42 ! { dg-final { scan-tree-dump-times "private\\(j0_2\\)" 1 "gimple" { xfail *-*-* } } } ! PR90067 43 ! { dg-final { scan-tree-dump-times "#pragma omp target oacc_kernels map\\(force_tofrom:j0_2 \\\[len: \[0-9\]+\\\]\\) map\\(force_tofrom:i0_2 \\\[len: \[0-9\]+\\\]\\)" 0 "gimple" { xfail *-*-* } } } ! PR90067 44 do i0_2 = 1, 100 45 do j0_2 = 1, 100 46 end do 47 end do 48 !$acc end kernels 49 50 !$acc kernels 51 !$acc loop independent 52 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i1_s\\) independent" 1 "original" } } 53 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i1_s\\) independent" 1 "gimple" } } 54 do i1_s = 1, 100 55 end do 56 !$acc end kernels 57 58 !$acc kernels loop independent 59 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i1_c\\) independent" 1 "original" } } 60 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i1_c\\) independent" 1 "gimple" } } 61 do i1_c = 1, 100 62 end do 63 64 !$acc kernels 65 !$acc loop independent 66 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_1_s\\) private\\(j2_1_s\\) independent" 1 "original" } } 67 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_1_s\\) private\\(j2_1_s\\) independent" 1 "gimple" } } 68 do i2_1_s = 1, 100 69 do j2_1_s = 1, 100 70 end do 71 end do 72 !$acc end kernels 73 74 !$acc kernels loop independent 75 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_1_c\\) private\\(j2_1_c\\) independent" 1 "original" } } 76 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_1_c\\) private\\(j2_1_c\\) independent" 1 "gimple" } } 77 do i2_1_c = 1, 100 78 do j2_1_c = 1, 100 79 end do 80 end do 81 82 !$acc kernels 83 ! { dg-final { scan-tree-dump-times "private\\(i2_2_s\\)" 1 "original" { xfail *-*-* } } } ! PR90067 84 ! { dg-final { scan-tree-dump-times "private\\(i2_2_s\\)" 1 "gimple" { xfail *-*-* } } } ! PR90067 85 ! { dg-final { scan-tree-dump-times "#pragma omp target oacc_kernels map\\(force_tofrom:i2_2_s \\\[len: \[0-9\]+\\\]\\)" 0 "gimple" { xfail *-*-* } } } ! PR90067 86 do i2_2_s = 1, 100 87 !$acc loop independent 88 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j2_2_s\\) independent" 1 "original" } } 89 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j2_2_s\\) independent" 1 "gimple" } } 90 do j2_2_s = 1, 100 91 end do 92 end do 93 !$acc end kernels 94 95 !$acc kernels 96 !$acc loop independent 97 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_3_s\\) independent" 1 "original" } } 98 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_3_s\\) independent" 1 "gimple" } } 99 do i2_3_s = 1, 100 100 !$acc loop independent 101 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j2_3_s\\) independent" 1 "original" } } 102 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j2_3_s\\) independent" 1 "gimple" } } 103 do j2_3_s = 1, 100 104 end do 105 end do 106 !$acc end kernels 107 108 !$acc kernels loop independent 109 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_3_c\\) independent" 1 "original" } } 110 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i2_3_c\\) independent" 1 "gimple" } } 111 do i2_3_c = 1, 100 112 !$acc loop independent 113 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j2_3_c\\) independent" 1 "original" } } 114 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j2_3_c\\) independent" 1 "gimple" } } 115 do j2_3_c = 1, 100 116 end do 117 end do 118 119 !$acc kernels 120 !$acc loop independent 121 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_1_s\\) private\\(j3_1_s\\) private\\(k3_1_s\\) independent" 1 "original" } } 122 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_1_s\\) private\\(j3_1_s\\) private\\(k3_1_s\\) independent" 1 "gimple" } } 123 do i3_1_s = 1, 100 124 do j3_1_s = 1, 100 125 do k3_1_s = 1, 100 126 end do 127 end do 128 end do 129 !$acc end kernels 130 131 !$acc kernels loop independent 132 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_1_c\\) private\\(j3_1_c\\) private\\(k3_1_c\\) independent" 1 "original" } } 133 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_1_c\\) private\\(j3_1_c\\) private\\(k3_1_c\\) independent" 1 "gimple" } } 134 do i3_1_c = 1, 100 135 do j3_1_c = 1, 100 136 do k3_1_c = 1, 100 137 end do 138 end do 139 end do 140 141 !$acc kernels 142 !$acc loop independent 143 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_2_s\\) independent" 1 "original" } } 144 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_2_s\\) independent" 1 "gimple" } } 145 do i3_2_s = 1, 100 146 !$acc loop independent 147 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_2_s\\) private\\(k3_2_s\\) independent" 1 "original" } } 148 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_2_s\\) private\\(k3_2_s\\) independent" 1 "gimple" } } 149 do j3_2_s = 1, 100 150 do k3_2_s = 1, 100 151 end do 152 end do 153 end do 154 !$acc end kernels 155 156 !$acc kernels loop independent 157 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_2_c\\) independent" 1 "original" } } 158 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_2_c\\) independent" 1 "gimple" } } 159 do i3_2_c = 1, 100 160 !$acc loop independent 161 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_2_c\\) private\\(k3_2_c\\) independent" 1 "original" } } 162 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_2_c\\) private\\(k3_2_c\\) independent" 1 "gimple" } } 163 do j3_2_c = 1, 100 164 do k3_2_c = 1, 100 165 end do 166 end do 167 end do 168 169 !$acc kernels 170 !$acc loop independent 171 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_3_s\\) private\\(j3_3_s\\) independent" 1 "original" } } 172 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_3_s\\) private\\(j3_3_s\\) independent" 1 "gimple" } } 173 do i3_3_s = 1, 100 174 do j3_3_s = 1, 100 175 !$acc loop independent 176 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_3_s\\) independent" 1 "original" } } 177 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_3_s\\) independent" 1 "gimple" } } 178 do k3_3_s = 1, 100 179 end do 180 end do 181 end do 182 !$acc end kernels 183 184 !$acc kernels loop independent 185 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_3_c\\) private\\(j3_3_c\\) independent" 1 "original" } } 186 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_3_c\\) private\\(j3_3_c\\) independent" 1 "gimple" } } 187 do i3_3_c = 1, 100 188 do j3_3_c = 1, 100 189 !$acc loop independent 190 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_3_c\\) independent" 1 "original" } } 191 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_3_c\\) independent" 1 "gimple" } } 192 do k3_3_c = 1, 100 193 end do 194 end do 195 end do 196 197 !$acc kernels 198 !$acc loop independent 199 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_4_s\\) independent" 1 "original" } } 200 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_4_s\\) independent" 1 "gimple" } } 201 do i3_4_s = 1, 100 202 !$acc loop independent 203 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_4_s\\) independent" 1 "original" } } 204 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_4_s\\) independent" 1 "gimple" } } 205 do j3_4_s = 1, 100 206 !$acc loop independent 207 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_4_s\\) independent" 1 "original" } } 208 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_4_s\\) independent" 1 "gimple" } } 209 do k3_4_s = 1, 100 210 end do 211 end do 212 end do 213 !$acc end kernels 214 215 !$acc kernels loop independent 216 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_4_c\\) independent" 1 "original" } } 217 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(i3_4_c\\) independent" 1 "gimple" } } 218 do i3_4_c = 1, 100 219 !$acc loop independent 220 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_4_c\\) independent" 1 "original" } } 221 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_4_c\\) independent" 1 "gimple" } } 222 do j3_4_c = 1, 100 223 !$acc loop independent 224 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_4_c\\) independent" 1 "original" } } 225 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_4_c\\) independent" 1 "gimple" } } 226 do k3_4_c = 1, 100 227 end do 228 end do 229 end do 230 231 !$acc kernels 232 ! { dg-final { scan-tree-dump-times "private\\(i3_5_s\\)" 1 "original" { xfail *-*-* } } } ! PR90067 233 ! { dg-final { scan-tree-dump-times "private\\(i3_5_s\\)" 1 "gimple" { xfail *-*-* } } } ! PR90067 234 ! { dg-final { scan-tree-dump-times "#pragma omp target oacc_kernels map\\(force_tofrom:i3_5_s \\\[len: \[0-9\]+\\\]\\)" 0 "gimple" { xfail *-*-* } } } ! PR90067 235 do i3_5_s = 1, 100 236 !$acc loop independent 237 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_5_s\\) independent" 1 "original" } } 238 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(j3_5_s\\) independent" 1 "gimple" } } 239 do j3_5_s = 1, 100 240 !$acc loop independent 241 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_5_s\\) independent" 1 "original" } } 242 ! { dg-final { scan-tree-dump-times "#pragma acc loop private\\(k3_5_s\\) independent" 1 "gimple" } } 243 do k3_5_s = 1, 100 244 end do 245 end do 246 end do 247 !$acc end kernels 248end program test 249