xref: /llvm-project/offload/test/ompt/omp_api.c (revision caaf8099efa87a7ebca8920971b7d7f719808591)
1*caaf8099SJan Patrick Lehr // RUN: %libomptarget-compile-run-and-check-generic
2*caaf8099SJan Patrick Lehr // REQUIRES: ompt
3*caaf8099SJan Patrick Lehr // REQUIRES: gpu
4*caaf8099SJan Patrick Lehr 
5*caaf8099SJan Patrick Lehr #include "omp.h"
6*caaf8099SJan Patrick Lehr #include <stdlib.h>
7*caaf8099SJan Patrick Lehr #include <string.h>
8*caaf8099SJan Patrick Lehr 
9*caaf8099SJan Patrick Lehr #include "callbacks.h"
10*caaf8099SJan Patrick Lehr #include "register_non_emi.h"
11*caaf8099SJan Patrick Lehr 
12*caaf8099SJan Patrick Lehr #define N 1024
13*caaf8099SJan Patrick Lehr 
14*caaf8099SJan Patrick Lehr int main(int argc, char **argv) {
15*caaf8099SJan Patrick Lehr   int *h_a;
16*caaf8099SJan Patrick Lehr   int *d_a;
17*caaf8099SJan Patrick Lehr 
18*caaf8099SJan Patrick Lehr   h_a = (int *)malloc(N * sizeof(int));
19*caaf8099SJan Patrick Lehr   memset(h_a, 0, N);
20*caaf8099SJan Patrick Lehr 
21*caaf8099SJan Patrick Lehr   d_a = (int *)omp_target_alloc(N * sizeof(int), omp_get_default_device());
22*caaf8099SJan Patrick Lehr 
23*caaf8099SJan Patrick Lehr   omp_target_associate_ptr(h_a, d_a, N * sizeof(int), 0,
24*caaf8099SJan Patrick Lehr                            omp_get_default_device());
25*caaf8099SJan Patrick Lehr   omp_target_disassociate_ptr(h_a, omp_get_default_device());
26*caaf8099SJan Patrick Lehr 
27*caaf8099SJan Patrick Lehr   omp_target_free(d_a, omp_get_default_device());
28*caaf8099SJan Patrick Lehr   free(h_a);
29*caaf8099SJan Patrick Lehr 
30*caaf8099SJan Patrick Lehr   return 0;
31*caaf8099SJan Patrick Lehr }
32*caaf8099SJan Patrick Lehr 
33*caaf8099SJan Patrick Lehr // clang-format off
34*caaf8099SJan Patrick Lehr /// CHECK: Callback Init:
35*caaf8099SJan Patrick Lehr /// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=1
36*caaf8099SJan Patrick Lehr /// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=5
37*caaf8099SJan Patrick Lehr /// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=6
38*caaf8099SJan Patrick Lehr /// CHECK: Callback DataOp: target_id=[[TARGET_ID:[0-9]+]] host_op_id=[[HOST_OP_ID:[0-9]+]] optype=4
39*caaf8099SJan Patrick Lehr /// CHECK: Callback Fini:
40