llvm/flang/test/Lower/array-copy-semantics.f90

! RUN: bbc %s -o - | FileCheck %s

! CHECK-LABEL: _QPsub

! F77 code for the array computation c = ((a + b) * c) + (b / 2.0).
! (Eventually, test that the temporary arrays are eliminated.)
subroutine sub(a,b,c,i,j,k)
  real a(i,j,k), b(i,j,k), c(i,j,k)
  real t1(i,j,k), t2(i,j,k)
  integer i, j, k
  integer r, s, t

  do t = 1, k
     do s = 1, j
        do r = 1, i
           t1(r,s,t) = a(r,s,t) + b(r,s,t)
        end do
     end do
  end do
  do t = 1, k
     do s = 1, j
        do r = 1, i
           t2(r,s,t) = t1(r,s,t) * c(r,s,t)
        end do
     end do
  end do
  do t = 1, k
     do s = 1, j
        do r = 1, i
           c(r,s,t) = t2(r,s,t) + b(r,s,t) / 2.0
        end do
     end do
  end do
end subroutine sub