// RUN: %libomptarget-compile-and-run-generic #include "stdio.h" #include #include int main() { int d = omp_get_default_device(); int id = omp_get_initial_device(); int q[128], i; void *p; void *result; if (d < 0 || d >= omp_get_num_devices()) d = id; p = omp_target_alloc(130 * sizeof(int), d); if (p == NULL) return 0; for (i = 0; i < 128; i++) q[i] = i; result = omp_target_memset(p, 0, 130 * sizeof(int), d); if (result != p) { abort(); } int q2[128]; for (i = 0; i < 128; ++i) q2[i] = i; if (omp_target_memcpy_async(q2, p, 128 * sizeof(int), 0, sizeof(int), id, d, 0, NULL)) abort(); #pragma omp taskwait for (i = 0; i < 128; ++i) if (q2[i] != 0) abort(); omp_target_free(p, d); return 0; }