1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
! RUN: %python %S/test_errors.py %s %flang_fc1
subroutine s(n,m,a,l)
integer, intent(in) :: n
integer, intent(in) :: m(n)
real, intent(in) :: a(n)
logical, intent(in) :: l(n)
integer j, mr
real ar
logical lr
!$cuf kernel do <<<*,*>>> reduce (+:mr,ar)
do j=1,n; mr = mr + m(j); ar = ar + a(j); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (+:lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (*:mr,ar)
do j=1,n; mr = mr * m(j); ar = ar * a(j); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (*:lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (max:mr,ar)
do j=1,n; mr = max(mr,m(j)); ar = max(ar,a(j)); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (max:lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (min:mr,ar)
do j=1,n; mr = min(mr,m(j)); ar = min(ar,a(j)); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (min:lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (iand:mr)
do j=1,n; mr = iand(mr,m(j)); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (iand:ar,lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (ieor:mr)
do j=1,n; mr = ieor(mr,m(j)); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (ieor:ar,lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (ior:mr)
do j=1,n; mr = ior(mr,m(j)); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type LOGICAL(4)
!$cuf kernel do <<<*,*>>> reduce (ior:ar,lr)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (.and.:lr)
do j=1,n; lr = lr .and. l(j); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type INTEGER(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!$cuf kernel do <<<*,*>>> reduce (.and.:mr,ar)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (.eqv.:lr)
do j=1,n; lr = lr .eqv. l(j); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type INTEGER(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!$cuf kernel do <<<*,*>>> reduce (.eqv.:mr,ar)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (.neqv.:lr)
do j=1,n; lr = lr .neqv. l(j); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type INTEGER(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!$cuf kernel do <<<*,*>>> reduce (.neqv.:mr,ar)
do j=1,n; end do
!$cuf kernel do <<<*,*>>> reduce (.or.:lr)
do j=1,n; lr = lr .or. l(j); end do
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type INTEGER(4)
!ERROR: !$CUF KERNEL DO REDUCE operation is not acceptable for a variable with type REAL(4)
!$cuf kernel do <<<*,*>>> reduce (.or.:mr,ar)
do j=1,n; end do
end
|