| ! { dg-do run } |
| ! { dg-options "-std=legacy" } |
| |
| program collapse2 |
| integer :: i, j, k, a(1:3, 4:6, 5:7) |
| logical :: l |
| l = .false. |
| a(:, :, :) = 0 |
| !$acc parallel |
| !$acc loop collapse(4 - 1) |
| do 164 i = 1, 3 |
| do 164 j = 4, 6 |
| do 164 k = 5, 7 |
| a(i, j, k) = i + j + k |
| 164 end do |
| !$acc end parallel |
| |
| !$acc parallel |
| !$acc loop collapse(2) reduction(.or.:l) |
| firstdo: do i = 1, 3 |
| do j = 4, 6 |
| do k = 5, 7 |
| if (a(i, j, k) .ne. (i + j + k)) l = .true. |
| end do |
| end do |
| end do firstdo |
| !$acc end parallel |
| if (l) STOP 1 |
| end program collapse2 |