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