brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · d9fa2ef Raw
50 lines · c
1// RUN: %libomptarget-compile-run-and-check-generic2 3// XFAIL: *4 5#include <assert.h>6#include <omp.h>7#include <stdint.h>8#include <stdio.h>9#include <stdlib.h>10 11typedef void *cudaStream_t;12 13int main() {14 15  int device_id = omp_get_default_device();16 17#pragma omp parallel master18  {19 20    double D0, D2;21    omp_interop_t interop;22 23#pragma omp interop init(targetsync : interop) device(device_id) nowait24    assert(interop != NULL);25 26    int err;27    for (int i = omp_ipr_first; i < 0; i++) {28      const char *n =29          omp_get_interop_name(interop, (omp_interop_property_t)(i));30      long int li =31          omp_get_interop_int(interop, (omp_interop_property_t)(i), &err);32      const void *p =33          omp_get_interop_ptr(interop, (omp_interop_property_t)(i), &err);34      const char *s =35          omp_get_interop_str(interop, (omp_interop_property_t)(i), &err);36      const char *n1 =37          omp_get_interop_type_desc(interop, (omp_interop_property_t)(i));38    }39#pragma omp interop use(interop) depend(in : D0, D2)40 41    cudaStream_t stream =42        (omp_get_interop_ptr(interop, omp_ipr_targetsync, NULL));43    assert(stream != NULL);44 45#pragma omp interop destroy(interop) depend(in : D0, D2) device(device_id)46  }47  printf("PASS\n");48}49// CHECK: PASS50