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