! At most one iarr element can be 0.
do i = 1, N
if ((iarr(i) == 0 .and. i /= itmp) &
- .or. iarr(i) < 0 .or. iarr(i) >= N) STOP 35
+ .or. iarr(i) < 0 .or. iarr(i) > N) STOP 35
end do
if (igot /= iexp) STOP 36
!$acc parallel loop copy (igot, itmp)
do i = 0, N - 1
- iexpr = ibclr (-2, i)
+ iexpr = ibclr (-1, i)
!$acc atomic capture
iarr(i) = igot
igot = iand (igot, iexpr)
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) < 0)) STOP 39
+ if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 39
end do
if (igot /= iexp) STOP 40
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) >= 0)) STOP 41
+ if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 41
end do
if (igot /= iexp) STOP 42
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) < 0)) STOP 43
+ if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 43
end do
if (igot /= iexp) STOP 44
!$acc end parallel loop
do i = 1, N
- if (.not. (1 <= iarr(i) .and. iarr(i) < iexp)) STOP 45
+ if (.not. (1 <= iarr(i) .and. iarr(i) <= iexp)) STOP 45
end do
if (igot /= iexp) STOP 46
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i) == 1 .or. iarr(i) == N)) STOP 47
+ if (.not. (iarr(i) >= 1 .or. iarr(i) <= N)) STOP 47
end do
if (igot /= iexp) STOP 48
!$acc parallel loop copy (igot, itmp)
do i = 0, N - 1
- iexpr = ibclr (-2, i)
+ iexpr = ibclr (-1, i)
!$acc atomic capture
iarr(i) = igot
igot = iand (iexpr, igot)
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) < 0)) STOP 49
+ if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 49
end do
if (igot /= iexp) STOP 50
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) >= 0)) STOP 51
+ if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 51
end do
if (igot /= iexp) STOP 52
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) < 0)) STOP 53
+ if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 53
end do
if (igot /= iexp) STOP 54
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i) == iexp)) STOP 89
+ if (.not. (iarr(i) <= i)) STOP 89
end do
if (igot /= iexp) STOP 90
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) <= 0)) STOP 91
+ if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 91
end do
if (igot /= iexp) STOP 92
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) >= -1)) STOP 93
+ if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 93
end do
if (igot /= iexp) STOP 94
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) <= 0)) STOP 95
+ if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 95
end do
if (igot /= iexp) STOP 96
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i) == iexp )) STOP 99
+ if (.not. (iarr(i) <= i)) STOP 99
end do
if (igot /= iexp) STOP 100
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) <= 0)) STOP 101
+ if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 101
end do
if (igot /= iexp) STOP 102
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) >= iexp)) STOP 103
+ if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 103
end do
if (igot /= iexp) STOP 104
!$acc end parallel loop
do i = 1, N
- if (.not. (iarr(i - 1) <= iexp)) STOP 105
+ if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 105
end do
if (igot /= iexp) STOP 106