30 lines · c
1// RUN: %libomptarget-compile-run-and-check-generic2 3// UNSUPPORTED: nvidiagpu4// UNSUPPORTED: amdgpu5 6#include <assert.h>7#include <omp.h>8#include <stdio.h>9 10int main() {11#pragma omp target12 {13 int *ptr;14#pragma omp allocate(ptr) allocator(omp_default_mem_alloc)15 ptr = omp_alloc(sizeof(int), omp_default_mem_alloc);16 assert(ptr && "Ptr is (null)!");17 *ptr = 0;18#pragma omp parallel num_threads(32)19 {20#pragma omp atomic21 *ptr += 1;22 }23 assert(*ptr == 32 && "Ptr is not 32");24 omp_free(ptr, omp_default_mem_alloc);25 }26 27 // CHECK: PASS28 printf("PASS\n");29}30