1! Program to test the scalarizer
2program testarray
3   implicit none
4   integer, dimension (:, :), allocatable :: a, b
5   integer n
6
7   allocate(a(6, 5), b(6, 5))
8   a = 0
9   do n = 1, 5
10      a(4, n) = n
11   end do
12
13   b(:, 5:1:-1) = a
14   a(1:5, 2) = a(4, :) + 1
15
16   ! The following expression should cause loop reordering
17   a(:, 2:4) = a(:, 1:3)
18
19   do n = 1, 5
20      if (a(n, 3) .ne. (n + 1)) call abort
21      if (b(4, n) .ne. (6 - n)) call abort
22   end do
23end program
24
25