! { dg-do run }

program main
  integer, parameter :: N = 32
  integer igot, iexp, itmp
  integer, dimension (0:N) :: iarr
  real fgot, fexp, ftmp
  real, dimension (0:N) :: farr
  logical lgot, lexp, ltmp

  igot = 0
  iexp = N * 2

  !$acc parallel copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      itmp = igot
      igot = i + i
  !$acc end atomic
    end do
  !$acc end parallel

  if (igot /= iexp) STOP 1
  if (itmp /= iexp - 2) STOP 2

  fgot = 1234.0
  fexp = 1266.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = fgot + 1.0
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1234.0 <= farr(i) .and. farr(i) < fexp &
          .and. aint (farr(i)) == farr(i))) STOP 3
  end do
  if (fgot /= fexp) STOP 4

  fgot = 1.0
  fexp = 2.0**32

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = fgot * 2.0
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1.0 <= farr(i) .and. farr(i) < fexp &
          .and. aint (farr(i)) == farr(i))) STOP 5
  end do
  if (fgot /= fexp) STOP 6

  fgot = 32.0
  fexp = fgot - N

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = fgot - 1.0
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (fexp < farr(i) .and. farr(i) <= 32.0 &
          .and. aint (farr(i)) == farr(i))) STOP 7
  end do
  if (fgot /= fexp) STOP 8

  fgot = 2**32.0
  fexp = 1.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = fgot / 2.0
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (fexp < farr(i) .and. farr(i) <= 2**32.0 &
          .and. aint (farr(i)) == farr(i))) STOP 9
  end do
  if (fgot /= fexp) STOP 10

  lgot = .TRUE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = lgot .and. .FALSE.
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. .not. lexp) STOP 11
  if (lgot .neqv. lexp) STOP 12

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = lgot .or. .FALSE.
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 13
  if (lgot .neqv. lexp) STOP 14

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = lgot .eqv. .TRUE.
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 15
  if (lgot .neqv. lexp) STOP 16

  lgot = .FALSE.
  lexp = .TRUE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = lgot .neqv. .TRUE.
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. .not. lexp) STOP 17
  if (lgot .neqv. lexp) STOP 18

  fgot = 1234.0
  fexp = 1266.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = 1.0 + fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1234.0 <= farr(i) .and. farr(i) < fexp &
          .and. aint (farr(i)) == farr(i))) STOP 19
  end do
  if (fgot /= fexp) STOP 20

  fgot = 1.0
  fexp = 2.0**32

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = 2.0 * fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1.0 <= farr(i) .and. farr(i) < fexp &
          .and. aint (farr(i)) == farr(i))) STOP 21
  end do
  if (fgot /= fexp) STOP 22

  fgot = 32.0
  fexp = 32.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = 2.0 - fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (farr(i) == fexp .or. farr(i) == -30.0)) STOP 23
  end do
  if (fgot /= fexp) STOP 24

  fgot = 2.0**16
  fexp = 2.0**16

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      farr(i) = fgot
      fgot = 2.0 / fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (farr(i) == fexp .or. farr(i) == 1.0 / 2.0**15)) STOP 25
  end do
  if (fgot /= fexp) STOP 26

  lgot = .TRUE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = .FALSE. .and. lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. .not. lexp) STOP 27
  if (lgot .neqv. lexp) STOP 28

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = .FALSE. .or. lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 29
  if (lgot .neqv. lexp) STOP 30

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = .TRUE. .eqv. lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 31
  if (lgot .neqv. lexp) STOP 32

  lgot = .FALSE.
  lexp = .TRUE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    ltmp = lgot
    lgot = .TRUE. .neqv. lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. .not. lexp) STOP 33
  if (lgot .neqv. lexp) STOP 34

  igot = 0
  iexp = N
  iarr = -42

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      iarr(i) = igot
      igot = max (igot, i)
  !$acc end atomic
    end do
  !$acc end parallel loop

  if (igot /= N) stop 107
  itmp = 0
  do i = 1, N
     if (iarr(i) == 0) then
       itmp = i
       exit
     end if
  end do
  ! 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
  end do
  if (igot /= iexp) STOP 36

  igot = N + 1
  iexp = 1
  iarr = -42

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      iarr(i) = igot
      igot = min (igot, i)
  !$acc end atomic
    end do
  !$acc end parallel loop

  if (igot /= 1) stop 108
  itmp = N + 1
  ! At most one iarr element can be N+1.
  do i = 1, N
     if (iarr(i) == N + 1) then
       itmp = i
       exit
     end if
  end do
  do i = 1, N
     if ((iarr(i) == N + 1 .and. i /= itmp) &
         .or. iarr(i) <= 0 .or. iarr(i) > N + 1) STOP 37
  end do
  if (igot /= iexp) STOP 38

  igot = -1
  iexp = 0

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = ibclr (-1, i)
  !$acc atomic capture
      iarr(i) = igot
      igot = iand (igot, iexpr)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 39
  end do
  if (igot /= iexp) STOP 40

  igot = 0
  iexp = -1 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      iarr(i) = igot
      igot = ior (igot, iexpr)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 41
  end do
  if (igot /= iexp) STOP 42

  igot = -1
  iexp = 0 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      iarr(i) = igot
      igot = ieor (igot, iexpr)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 43
  end do
  if (igot /= iexp) STOP 44

  igot = 1
  iexp = N

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      iarr(i) = igot
      igot = max (i, igot)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (1 <= iarr(i) .and. iarr(i) <= iexp)) STOP 45
  end do
  if (igot /= iexp) STOP 46

  igot = N
  iexp = 1

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      iarr(i) = igot
      igot = min (i, igot)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (iarr(i) >= 1 .or. iarr(i) <= N)) STOP 47
  end do
  if (igot /= iexp) STOP 48

  igot = -1
  iexp = 0

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = ibclr (-1, i)
  !$acc atomic capture
      iarr(i) = igot
      igot = iand (iexpr, igot)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 49
  end do
  if (igot /= iexp) STOP 50

  igot = 0
  iexp = -1 
	!!
  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      iarr(i) = igot
      igot = ior (iexpr, igot)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 51
  end do
  if (igot /= iexp) STOP 52

  igot = -1
  iexp = 0 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      iarr(i) = igot
      igot = ieor (iexpr, igot)
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 53
  end do
  if (igot /= iexp) STOP 54

  fgot = 1234.0
  fexp = 1266.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = fgot + 1.0
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1234.0 < farr(i) .and. farr(i) <= fexp &
          .and. aint (farr(i)) == farr(i))) STOP 55
  end do
  if (fgot /= fexp) STOP 56

  fgot = 1.0
  fexp = 2.0**32

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = fgot * 2.0
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1.0 < farr(i) .and. farr(i) <= fexp &
          .and. aint (farr(i)) == farr(i))) STOP 57
  end do
  if (fgot /= fexp) STOP 58

  fgot = 32.0
  fexp = fgot - N

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = fgot - 1.0
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (fexp <= farr(i) .and. farr(i) < 32.0 &
          .and. aint (farr(i)) == farr(i))) STOP 59
  end do
  if (fgot /= fexp) STOP 60

  fgot = 2**32.0
  fexp = 1.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = fgot / 2.0
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (fexp <= farr(i) .and. farr(i) < 2**32.0 &
          .and. aint (farr(i)) == farr(i))) STOP 61
  end do
  if (fgot /= fexp) STOP 62

  lgot = .TRUE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = lgot .and. .FALSE.
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 63
  if (lgot .neqv. lexp) STOP 64

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = lgot .or. .FALSE.
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 65
  if (lgot .neqv. lexp) STOP 66

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = lgot .eqv. .TRUE.
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 67
  if (lgot .neqv. lexp) STOP 68

  lgot = .FALSE.
  lexp = .TRUE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = lgot .neqv. .TRUE.
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 69
  if (lgot .neqv. lexp) STOP 70

  fgot = 1234.0
  fexp = 1266.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = 1.0 + fgot
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1234.0 < farr(i) .and. farr(i) <= fexp &
          .and. aint (farr(i)) == farr(i))) STOP 71
  end do
  if (fgot /= fexp) STOP 72

  fgot = 1.0
  fexp = 2.0**32

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = 2.0 * fgot
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. &
          (1.0 < farr(i) .and. farr(i) <= 2**32.0 &
          .and. aint (farr(i)) == farr(i))) STOP 73
  end do
  if (fgot /= fexp) STOP 74

  fgot = 32.0
  fexp = 32.0

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = 2.0 - fgot
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (farr(i) == fexp .or. farr(i) == 2.0 - fexp)) STOP 75
  end do
  if (fgot /= fexp) STOP 76

  fgot = 2.0**16
  fexp = 2.0**16

  !$acc parallel loop copy (fgot, ftmp)
    do i = 1, N
  !$acc atomic capture
      fgot = 2.0 / fgot
      farr(i) = fgot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (farr(i) == fexp .or. farr(i) == 2.0 / fexp)) STOP 77
  end do
  if (fgot /= fexp) STOP 78

  lgot = .TRUE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = .FALSE. .and. lgot
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 79
  if (lgot .neqv. lexp) STOP 80

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = .FALSE. .or. lgot
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 81
  if (lgot .neqv. lexp) STOP 82

  lgot = .FALSE.
  lexp = .FALSE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = .TRUE. .eqv. lgot
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 83
  if (lgot .neqv. lexp) STOP 84

  lgot = .FALSE.
  lexp = .TRUE.

  !$acc parallel copy (lgot, ltmp)
  !$acc atomic capture
    lgot = .TRUE. .neqv. lgot
    ltmp = lgot
  !$acc end atomic
  !$acc end parallel

  if (ltmp .neqv. lexp) STOP 85
  if (lgot .neqv. lexp) STOP 86

  igot = 1
  iexp = N

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      igot = max (igot, i)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (1 <= iarr(i) .and. iarr(i) <= N)) STOP 87
  end do
  if (igot /= iexp) STOP 88

  igot = N
  iexp = 1

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      igot = min (igot, i)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (iarr(i) <= i)) STOP 89
  end do
  if (igot /= iexp) STOP 90

  igot = -1
  iexp = 0

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = ibclr (-2, i)
  !$acc atomic capture
      igot = iand (igot, iexpr)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 91
  end do
  if (igot /= iexp) STOP 92

  igot = 0
  iexp = -1 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      igot = ior (igot, iexpr)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 93
  end do
  if (igot /= iexp) STOP 94

  igot = -1
  iexp = 0 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      igot = ieor (igot, iexpr)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 95
  end do
  if (igot /= iexp) STOP 96

  igot = 1
  iexp = N

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      igot = max (i, igot)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (1 <= iarr(i) .and. iarr(i) <= iexp)) STOP 97
  end do
  if (igot /= iexp) STOP 98

  igot = N
  iexp = 1

  !$acc parallel loop copy (igot, itmp)
    do i = 1, N
  !$acc atomic capture
      igot = min (i, igot)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (iarr(i) <= i)) STOP 99
  end do
  if (igot /= iexp) STOP 100

  igot = -1
  iexp = 0

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = ibclr (-2, i)
  !$acc atomic capture
      igot = iand (iexpr, igot)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 101
  end do
  if (igot /= iexp) STOP 102

  igot = 0
  iexp = -1 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      igot = ior (iexpr, igot)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) > 0)) STOP 103
  end do
  if (igot /= iexp) STOP 104

  igot = -1
  iexp = 0 

  !$acc parallel loop copy (igot, itmp)
    do i = 0, N - 1
      iexpr = lshift (1, i)
  !$acc atomic capture
      igot = ieor (iexpr, igot)
      iarr(i) = igot
  !$acc end atomic
    end do
  !$acc end parallel loop

  do i = 1, N
     if (.not. (popcnt(iarr(i - 1)) < 32)) STOP 105
  end do
  if (igot /= iexp) STOP 106

end program
