|  | ! { dg-do run } | 
|  | ! { dg-additional-options "-O2" } | 
|  | ! { dg-additional-options "-ftree-parallelize-loops=2" } | 
|  |  | 
|  | ! Constant bound, vector addition. | 
|  |  | 
|  | subroutine foo () | 
|  | integer, parameter :: n = 1000 | 
|  | integer, dimension (0:n-1) :: a, b, c | 
|  | common a, b, c | 
|  | integer :: ii | 
|  |  | 
|  | do ii = 0, n - 1 | 
|  | c(ii) = a(ii) + b(ii) | 
|  | end do | 
|  | end subroutine foo | 
|  |  | 
|  | program main | 
|  | integer, parameter :: n = 1000 | 
|  | integer, parameter :: distrib = 10 | 
|  | integer, dimension (0:n-1) :: a, b, c | 
|  | common a, b, c | 
|  | integer :: i, j, k | 
|  |  | 
|  | do j = 0, ((n / distrib) -1) | 
|  | do i = 0, distrib - 1 | 
|  | k = i + (distrib * j) | 
|  | a(k) = k | 
|  | b(k) = MODULO ((k * 3), 7) | 
|  | c(k) = k * 2; | 
|  | end do | 
|  | end do | 
|  |  | 
|  | call foo () | 
|  |  | 
|  | do i = 0, n - 1 | 
|  | if (c(i) .ne. (i + MODULO ((i * 3), 7))) stop 1 | 
|  | end do | 
|  |  | 
|  | end program |