| // RUN: %libomptarget-compile-run-and-check-generic |
| // REQUIRES: ompt |
| |
| /* |
| * Example OpenMP program that shows that if the initialize function |
| * returns the wrong status code, the callbacks won't be activated. |
| */ |
| |
| #include <omp.h> |
| #include <stdio.h> |
| |
| #include "callbacks.h" |
| #include "register_wrong_return.h" |
| |
| int main() { |
| int N = 100000; |
| |
| int a[N]; |
| int b[N]; |
| |
| int i; |
| |
| for (i = 0; i < N; i++) |
| a[i] = 0; |
| |
| for (i = 0; i < N; i++) |
| b[i] = i; |
| |
| #pragma omp target parallel for |
| { |
| for (int j = 0; j < N; j++) |
| a[j] = b[j]; |
| } |
| |
| #pragma omp target teams distribute parallel for |
| { |
| for (int j = 0; j < N; j++) |
| a[j] = b[j]; |
| } |
| |
| int rc = 0; |
| for (i = 0; i < N; i++) |
| if (a[i] != b[i]) { |
| rc++; |
| printf("Wrong value: a[%d]=%d\n", i, a[i]); |
| } |
| |
| if (!rc) |
| printf("Success\n"); |
| |
| return rc; |
| } |
| |
| /// CHECK-NOT: Callback Init: |
| /// CHECK-NOT: Callback Load: |
| /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
| /// CHECK-NOT: Callback Submit: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] req_num_teams=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
| /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=2 |
| |
| /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=2 |
| /// CHECK-NOT: Callback Submit: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] req_num_teams=0 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=3 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
| /// CHECK-NOT: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4 |
| /// CHECK-NOT: Callback Target: target_id=[[TARGET_ID:[0-9]+]] kind=1 endpoint=2 |
| /// CHECK-NOT: Callback Fini |