1 | // RUN: %libomptarget-compile-run-and-check-generic |
2 | // REQUIRES: ompt |
3 | |
4 | /* |
5 | * Example OpenMP program that shows that if the initialize function |
6 | * returns the wrong status code, the callbacks won't be activated. |
7 | */ |
8 | |
9 | #include <omp.h> |
10 | #include <stdio.h> |
11 | |
12 | #include "callbacks.h" |
13 | #include "register_wrong_return.h" |
14 | |
15 | int main() { |
16 | int N = 100000; |
17 | |
18 | int a[N]; |
19 | int b[N]; |
20 | |
21 | int i; |
22 | |
23 | for (i = 0; i < N; i++) |
24 | a[i] = 0; |
25 | |
26 | for (i = 0; i < N; i++) |
27 | b[i] = i; |
28 | |
29 | #pragma omp target parallel for |
30 | { |
31 | for (int j = 0; j < N; j++) |
32 | a[j] = b[j]; |
33 | } |
34 | |
35 | #pragma omp target teams distribute parallel for |
36 | { |
37 | for (int j = 0; j < N; j++) |
38 | a[j] = b[j]; |
39 | } |
40 | |
41 | int rc = 0; |
42 | for (i = 0; i < N; i++) |
43 | if (a[i] != b[i]) { |
44 | rc++; |
45 | printf(format: "Wrong value: a[%d]=%d\n" , i, a[i]); |
46 | } |
47 | |
48 | if (!rc) |
49 | printf(format: "Success\n" ); |
50 | |
51 | return rc; |
52 | } |
53 | |
54 | /// CHECK-NOT: Callback Init: |
55 | /// CHECK-NOT: Callback Load: |
56 | /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=1 |
57 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
58 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
59 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
60 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
61 | /// CHECK-NOT: Callback Submit: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] req_num_teams=1 |
62 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
63 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
64 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
65 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
66 | /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=2 |
67 | |
68 | /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=1 |
69 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
70 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
71 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
72 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
73 | /// CHECK-NOT: Callback Submit: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] req_num_teams=0 |
74 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
75 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
76 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
77 | /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
78 | /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=2 |
79 | /// CHECK-NOT: Callback Fini |
80 | |