! Program to test the scalarizer
program testarray
   implicit none
   integer, dimension (:, :), allocatable :: a, b
   integer n

   allocate(a(6, 5), b(6, 5))
   a = 0
   do n = 1, 5
      a(4, n) = n
   end do

   b(:, 5:1:-1) = a
   a(1:5, 2) = a(4, :) + 1

   ! The following expression should cause loop reordering
   a(:, 2:4) = a(:, 1:3)

   do n = 1, 5
      if (a(n, 3) .ne. (n + 1)) call abort
      if (b(4, n) .ne. (6 - n)) call abort
   end do
end program

