brintos

brintos / llvm-project-archived public Read only

0
0
Text · 826 B · ea0c6d7 Raw
46 lines · c
1// RUN: %libomptarget-compile-and-run-generic2 3#include "stdio.h"4#include <omp.h>5#include <stdlib.h>6 7int main() {8  int d = omp_get_default_device();9  int id = omp_get_initial_device();10  int q[128], i;11  void *p;12  void *result;13 14  if (d < 0 || d >= omp_get_num_devices())15    d = id;16 17  p = omp_target_alloc(130 * sizeof(int), d);18  if (p == NULL)19    return 0;20 21  for (i = 0; i < 128; i++)22    q[i] = i;23 24  result = omp_target_memset(p, 0, 130 * sizeof(int), d);25  if (result != p) {26    abort();27  }28 29  int q2[128];30  for (i = 0; i < 128; ++i)31    q2[i] = i;32  if (omp_target_memcpy_async(q2, p, 128 * sizeof(int), 0, sizeof(int), id, d,33                              0, NULL))34    abort();35 36#pragma omp taskwait37 38  for (i = 0; i < 128; ++i)39    if (q2[i] != 0)40      abort();41 42  omp_target_free(p, d);43 44  return 0;45}46