1! OpenACC 'routine' directives inside a Fortran module. 2 3! { dg-additional-options "-fopt-info-optimized-omp" } 4 5module routine_module_mod_1 6contains 7 subroutine s_1 8 implicit none 9 !$acc routine 10 11 integer :: i 12 13 !$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } 14 ! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } 15 do i = 1, 3 16 end do 17 end subroutine s_1 18 19 subroutine s_2 20 implicit none 21 !$acc routine (s_2) seq 22 23 integer :: i 24 25 !$acc loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } 26 ! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } 27 do i = 1, 3 28 end do 29 end subroutine s_2 30 31 subroutine v_1 32 implicit none 33 !$acc routine vector 34 35 integer :: i 36 37 !$acc loop ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } 38 do i = 1, 3 39 end do 40 end subroutine v_1 41 42 subroutine w_1 43 implicit none 44 !$acc routine (w_1) worker 45 46 integer :: i 47 48 !$acc loop ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } 49 do i = 1, 3 50 end do 51 end subroutine w_1 52 53 subroutine g_1 54 implicit none 55 !$acc routine gang 56 57 integer :: i 58 59 !$acc loop ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" } 60 do i = 1, 3 61 end do 62 end subroutine g_1 63 64 subroutine pl_1 65 implicit none 66 67 integer :: i 68 69 !$acc parallel loop ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } 70 ! { dg-warning "insufficient partitioning available to parallelize loop" "" { target *-*-* } .-1 } 71 do i = 1, 3 72 call s_1 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } 73 call s_2 ! { dg-message "optimized: assigned OpenACC seq loop parallelism" } 74 call v_1 ! { dg-message "optimized: assigned OpenACC vector loop parallelism" } 75 call w_1 ! { dg-message "optimized: assigned OpenACC worker vector loop parallelism" } 76 call g_1 ! { dg-message "optimized: assigned OpenACC gang worker vector loop parallelism" } 77 end do 78 end subroutine pl_1 79end module routine_module_mod_1 80