| // RUN: %libomptarget-compile-run-and-check-generic | |
| // XFAIL: !intelgpu | |
| #include <assert.h> | |
| #include <omp.h> | |
| #include <stdint.h> | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| typedef void *cudaStream_t; | |
| int main() { | |
| int device_id = omp_get_default_device(); | |
| #pragma omp parallel master | |
| { | |
| double D0, D2; | |
| omp_interop_t interop; | |
| #pragma omp interop init(targetsync : interop) device(device_id) nowait | |
| assert(interop != NULL); | |
| int err; | |
| for (int i = omp_ipr_first; i < 0; i++) { | |
| const char *n = | |
| omp_get_interop_name(interop, (omp_interop_property_t)(i)); | |
| long int li = | |
| omp_get_interop_int(interop, (omp_interop_property_t)(i), &err); | |
| const void *p = | |
| omp_get_interop_ptr(interop, (omp_interop_property_t)(i), &err); | |
| const char *s = | |
| omp_get_interop_str(interop, (omp_interop_property_t)(i), &err); | |
| const char *n1 = | |
| omp_get_interop_type_desc(interop, (omp_interop_property_t)(i)); | |
| } | |
| #pragma omp interop use(interop) depend(in : D0, D2) | |
| cudaStream_t stream = | |
| (omp_get_interop_ptr(interop, omp_ipr_targetsync, NULL)); | |
| assert(stream != NULL); | |
| #pragma omp interop destroy(interop) depend(in : D0, D2) device(device_id) | |
| } | |
| printf("PASS\n"); | |
| } | |
| // CHECK: PASS |