1! { dg-do compile }
2! { dg-options "-O2 -funroll-all-loops -fdump-rtl-loop2_unroll-details -fdump-tree-cunrolli-details" }
3! Test that
4! #pragma GCC unroll n
5! works
6
7subroutine test1(a)
8  implicit NONE
9  integer :: a(8)
10  integer (kind=4) :: i
11!GCC$ unroll 0
12  DO i=1, 8, 1
13    call dummy(a(i))
14  ENDDO
15end subroutine test1
16
17subroutine test2(a, n)
18  implicit NONE
19  integer :: a(n)
20  integer (kind=1), intent(in) :: n
21  integer (kind=4) :: i
22!GCC$ unroll 0
23  DO i=1, n, 1
24    call dummy(a(i))
25  ENDDO
26end subroutine test2
27
28! { dg-final { scan-tree-dump "Not unrolling loop .: user didn't want it unrolled completely" "cunrolli" } } */
29! { dg-final { scan-rtl-dump-times "Not unrolling loop, user didn't want it unrolled" 2 "loop2_unroll" } } */
30