1! { dg-do run } 2! { dg-additional-options "-O2" } 3! { dg-additional-options "-ftree-parallelize-loops=2" } 4 5! Constant bound, vector addition. 6 7subroutine foo () 8 integer, parameter :: n = 1000 9 integer, dimension (0:n-1) :: a, b, c 10 common a, b, c 11 integer :: ii 12 13 do ii = 0, n - 1 14 c(ii) = a(ii) + b(ii) 15 end do 16end subroutine foo 17 18program main 19 integer, parameter :: n = 1000 20 integer, parameter :: distrib = 10 21 integer, dimension (0:n-1) :: a, b, c 22 common a, b, c 23 integer :: i, j, k 24 25 do j = 0, ((n / distrib) -1) 26 do i = 0, distrib - 1 27 k = i + (distrib * j) 28 a(k) = k 29 b(k) = MODULO ((k * 3), 7) 30 c(k) = k * 2; 31 end do 32 end do 33 34 call foo () 35 36 do i = 0, n - 1 37 if (c(i) .ne. (i + MODULO ((i * 3), 7))) STOP 1 38 end do 39 40end program 41