1! { dg-do run } 2! { dg-options "-std=legacy" } 3 4program collapse2 5 integer :: i, j, k, a(1:3, 4:6, 5:7) 6 logical :: l 7 l = .false. 8 a(:, :, :) = 0 9 !$acc parallel 10 !$acc loop collapse(4 - 1) 11 do 164 i = 1, 3 12 do 164 j = 4, 6 13 do 164 k = 5, 7 14 a(i, j, k) = i + j + k 15164 end do 16 !$acc end parallel 17 18 !$acc parallel 19 !$acc loop collapse(2) reduction(.or.:l) 20firstdo: do i = 1, 3 21 do j = 4, 6 22 do k = 5, 7 23 if (a(i, j, k) .ne. (i + j + k)) l = .true. 24 end do 25 end do 26 end do firstdo 27 !$acc end parallel 28 if (l) STOP 1 29end program collapse2 30