aboutsummaryrefslogtreecommitdiff
path: root/final/runtime/test/ompt/synchronization/master.c
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-09-17 11:37:57 +0000
committerHans Wennborg <hans@hanshq.net>2018-09-17 11:37:57 +0000
commitb6d3a994aea4dc7ca139635624e8c80617436f9a (patch)
tree07778fe8f0038268045ce4b1050cd53bbedbc838 /final/runtime/test/ompt/synchronization/master.c
parent9ade647b2f773ffe2793fce58f480b41a4283e6f (diff)
Creating release candidate final from release_700 branchsvn-tags/RELEASE_700
git-svn-id: https://llvm.org/svn/llvm-project/openmp/tags/RELEASE_700@342381 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'final/runtime/test/ompt/synchronization/master.c')
-rw-r--r--final/runtime/test/ompt/synchronization/master.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/final/runtime/test/ompt/synchronization/master.c b/final/runtime/test/ompt/synchronization/master.c
new file mode 100644
index 0000000..8cc2d46
--- /dev/null
+++ b/final/runtime/test/ompt/synchronization/master.c
@@ -0,0 +1,38 @@
+// RUN: %libomp-compile-and-run | FileCheck %s
+// REQUIRES: ompt
+// GCC generates code that does not call the runtime for the master construct
+// XFAIL: gcc
+
+#include "callback.h"
+#include <omp.h>
+
+int main() {
+ int x = 0;
+#pragma omp parallel num_threads(2)
+ {
+#pragma omp master
+ {
+ print_fuzzy_address(1);
+ x++;
+ }
+ print_current_address(2);
+ }
+
+ printf("%" PRIu64 ": x=%d\n", ompt_get_thread_data()->value, x);
+
+ return 0;
+}
+
+// Check if libomp supports the callbacks for this test.
+// CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_master'
+
+// CHECK: 0: NULL_POINTER=[[NULL:.*$]]
+
+// CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_master_begin:
+// CHECK-SAME: parallel_id=[[PARALLEL_ID:[0-9]+]], task_id=[[TASK_ID:[0-9]+]],
+// CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS:0x[0-f]+]]{{[0-f][0-f]}}
+// CHECK: {{^}}[[MASTER_ID]]: fuzzy_address={{.*}}[[RETURN_ADDRESS]]
+// CHECK: {{^}}[[MASTER_ID]]: ompt_event_master_end:
+// CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]],
+// CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS_END:0x[0-f]+]]
+// CHECK: {{^}}[[MASTER_ID]]: current_address={{.*}}[[RETURN_ADDRESS_END]]