1// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
2// REQUIRES: ompt
3#include "callback.h"
4#include <omp.h>
5
6int main() {
7 int x = 0;
8#pragma omp parallel num_threads(4)
9 {
10#pragma omp atomic
11 x++;
12 }
13
14 // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
15
16 // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_thread_begin:
17 // CHECK-SAME: thread_type=ompt_thread_initial=1, thread_id=[[MASTER_ID]]
18 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_thread_end:
19 // CHECK-SAME: thread_id=[[MASTER_ID]]
20 // CHECK: {{^}}[[WORKER_ID1:[0-9]+]]: ompt_event_thread_begin:
21 // CHECK-SAME: thread_type=ompt_thread_worker=2, thread_id=[[WORKER_ID1]]
22 // CHECK: {{^}}[[WORKER_ID1]]: ompt_event_thread_end:
23 // CHECK-SAME: thread_id=[[WORKER_ID1]]
24 // CHECK: {{^}}[[WORKER_ID2:[0-9]+]]: ompt_event_thread_begin:
25 // CHECK-SAME: thread_type=ompt_thread_worker=2, thread_id=[[WORKER_ID2]]
26 // CHECK: {{^}}[[WORKER_ID2]]: ompt_event_thread_end:
27 // CHECK-SAME: thread_id=[[WORKER_ID2]]
28 // CHECK: {{^}}[[WORKER_ID3:[0-9]+]]: ompt_event_thread_begin:
29 // CHECK-SAME: thread_type=ompt_thread_worker=2, thread_id=[[WORKER_ID3]]
30 // CHECK: {{^}}[[WORKER_ID3]]: ompt_event_thread_end:
31 // CHECK-SAME: thread_id=[[WORKER_ID3]]
32
33 return 0;
34}
35

source code of openmp/runtime/test/ompt/misc/threads.c