1// RUN: %libomp-compile-and-run | FileCheck %s
2// REQUIRES: ompt
3// XFAIL: gcc-4
4
5#include "callback.h"
6#include <omp.h>
7
8int main()
9{
10 int y[] = {0,1,2,3};
11
12 int i;
13 #pragma omp for simd
14 for (i = 0; i < 4; i++)
15 {
16 y[i]++;
17 }
18
19
20 // Check if libomp supports the callbacks for this test.
21 // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_sync_region'
22 // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_sync_region_wait'
23
24 // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
25
26 // master thread implicit barrier at simd loop end
27 // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_barrier_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra={{0x[0-f]+}}
28 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_barrier_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra={{0x[0-f]+}}
29 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_barrier_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra={{0x[0-f]+}}
30 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_barrier_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra={{0x[0-f]+}}
31
32 return 0;
33}
34

source code of openmp/runtime/test/ompt/synchronization/barrier/for_simd.c