1 ! { dg-do compile { target skip-all-targets } }
2 ! Only used by taskloop-5-a.f90
7 implicit none (external, type)
10 subroutine grainsize (a
, b
, c
, d
)
11 integer, value
:: a
, b
, c
, d
15 !$omp taskloop firstprivate (j, k) grainsize(strict:d)
31 subroutine num_tasks (a
, b
, c
, d
)
32 integer, value
:: a
, b
, c
, d
36 !$omp taskloop firstprivate (j, k) num_tasks(strict:d)
55 implicit none (external, type)
59 integer :: min_iters
, max_iters
, ntasks
, sep
61 ! If grainsize is present and has strict modifier, # of task loop iters is == grainsize,
62 ! except that it can be smaller on the last task.
63 if (test (0, 79, 1, 17, grainsize
, ntasks
, min_iters
, max_iters
, sep
) /= 79) &
65 if (ntasks
/= 5 .or
. min_iters
/= 11 .or
. max_iters
/= 17 .or
. sep
/= 4) &
67 if (test (-49, 2541, 7, 28, grainsize
, ntasks
, min_iters
, max_iters
, sep
) /= 370) &
69 if (ntasks
/= 14 .or
. min_iters
/= 6 .or
. max_iters
/= 28 .or
. sep
/= 13) &
71 if (test (7, 21, 2, 15, grainsize
, ntasks
, min_iters
, max_iters
, sep
) /= 7) &
73 if (ntasks
/= 1 .or
. min_iters
/= 7 .or
. max_iters
/= 7 .or
. sep
/= 1) &
75 ! If num_tasks is present, # of tasks is min (# of loop iters, num_tasks)
76 ! and each task has at least one iteration. If strict modifier is present,
77 ! first set of tasks has ceil (# of loop iters / num_tasks) iterations,
78 ! followed by possibly empty set of tasks with floor (# of loop iters / num_tasks)
80 if (test (-51, 2500, 48, 9, num_tasks
, ntasks
, min_iters
, max_iters
, sep
) /= 54) &
82 if (ntasks
/= 9 .or
. min_iters
/= 6 .or
. max_iters
/= 6 .or
. sep
/= 9) &
84 if (test (0, 57, 1, 9, num_tasks
, ntasks
, min_iters
, max_iters
, sep
) /= 57) &
86 if (ntasks
/= 9 .or
. min_iters
/= 6 .or
. max_iters
/= 7 .or
. sep
/= 3) &
88 if (test (0, 25, 2, 17, num_tasks
, ntasks
, min_iters
, max_iters
, sep
) /= 13) &
90 if (ntasks
/= 13 .or
. min_iters
/= 1 .or
. max_iters
/= 1 .or
. sep
/= 13) &