xref: /llvm-project/openmp/runtime/test/ompt/tasks/taskloop_dispatch.c (revision a707d0883b5ab9de6a0a864df614ef14909a4de1)
1e4ac11beSHansang Bae // RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
2e4ac11beSHansang Bae // REQUIRES: ompt
3e4ac11beSHansang Bae // UNSUPPORTED: gnu, intel-16.0
4e4ac11beSHansang Bae 
5e4ac11beSHansang Bae #include "callback.h"
6e4ac11beSHansang Bae #include <omp.h>
7e4ac11beSHansang Bae 
main()8e4ac11beSHansang Bae int main() {
9e4ac11beSHansang Bae   unsigned int i, x;
10e4ac11beSHansang Bae 
11e4ac11beSHansang Bae #pragma omp parallel num_threads(2)
12e4ac11beSHansang Bae   {
13e4ac11beSHansang Bae #pragma omp barrier
14e4ac11beSHansang Bae 
15e4ac11beSHansang Bae #pragma omp master
16e4ac11beSHansang Bae #pragma omp taskloop grainsize(4)
17e4ac11beSHansang Bae     for (i = 0; i < 16; i++) {
18e4ac11beSHansang Bae       // Make every iteration takes at least 1ms
19e4ac11beSHansang Bae       delay(1000);
20e4ac11beSHansang Bae     }
21e4ac11beSHansang Bae   }
22e4ac11beSHansang Bae   // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
23e4ac11beSHansang Bae 
24e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin:
25e4ac11beSHansang Bae   // CHECK-SAME: parent_task_id={{[0-9]+}}
26e4ac11beSHansang Bae   // CHECK-SAME: parallel_id=[[PARALLEL_ID:[0-9]+]]
27e4ac11beSHansang Bae   // CHECK-SAME: requested_team_size=2
28e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_begin:
29e4ac11beSHansang Bae   // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
30e4ac11beSHansang Bae   // CHECK-SAME: task_id=[[IMPLICIT_TASK_ID1:[0-9]+]]
31e4ac11beSHansang Bae   // CHECK-SAME: team_size=2, thread_num=0
32e4ac11beSHansang Bae 
33e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskloop_begin:
34e4ac11beSHansang Bae   // CHECK-SAME: parallel_id=[[PARALLEL_ID]]
35*a707d088SJoachim   // CHECK-SAME: task_id=[[IMPLICIT_TASK_ID1]]
36e4ac11beSHansang Bae   // CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS:0x[0-f]+]], count=16
37e4ac11beSHansang Bae 
38e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create:
39e4ac11beSHansang Bae   // CHECK-SAME: new_task_id=[[TASK_ID0:[0-9]+]]
40e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create:
41e4ac11beSHansang Bae   // CHECK-SAME: new_task_id=[[TASK_ID1:[0-9]+]]
42e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create:
43e4ac11beSHansang Bae   // CHECK-SAME: new_task_id=[[TASK_ID2:[0-9]+]]
44e4ac11beSHansang Bae   // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create:
45e4ac11beSHansang Bae   // CHECK-SAME: new_task_id=[[TASK_ID3:[0-9]+]]
46e4ac11beSHansang Bae 
47e4ac11beSHansang Bae   // CHECK-DAG: {{.*}}: ompt_event_taskloop_chunk_begin:{{.*}}task_id=[[TASK_ID0]]{{.*}}chunk_iterations=4
48e4ac11beSHansang Bae   // CHECK-DAG: {{.*}}: ompt_event_taskloop_chunk_begin:{{.*}}task_id=[[TASK_ID1]]{{.*}}chunk_iterations=4
49e4ac11beSHansang Bae   // CHECK-DAG: {{.*}}: ompt_event_taskloop_chunk_begin:{{.*}}task_id=[[TASK_ID2]]{{.*}}chunk_iterations=4
50e4ac11beSHansang Bae   // CHECK-DAG: {{.*}}: ompt_event_taskloop_chunk_begin:{{.*}}task_id=[[TASK_ID3]]{{.*}}chunk_iterations=4
51e4ac11beSHansang Bae 
52e4ac11beSHansang Bae   return 0;
53e4ac11beSHansang Bae }
54