1 // RUN: %libomptarget-compile-run-and-check-generic
3 // FIXME: https://github.com/llvm/llvm-project/issues/77841
4 // UNSUPPORTED: amdgcn-amd-amdhsa
5 // UNSUPPORTED: nvptx64-nvidia-cuda
6 // UNSUPPORTED: nvptx64-nvidia-cuda-LTO
13 int test_omp_aligned_alloc_on_device() {
16 omp_memspace_handle_t memspace
= omp_default_mem_space
;
17 omp_alloctrait_t traits
[2] = {{omp_atk_alignment
, 64}, {omp_atk_access
, 64}};
18 omp_allocator_handle_t alloc
=
19 omp_init_allocator(omp_default_mem_space
, 1, traits
);
21 #pragma omp target map(tofrom : errors) uses_allocators(alloc(traits))
24 int not_correct_array_values
= 0;
26 x
= (int *)omp_aligned_alloc(64, N
* sizeof(int), alloc
);
30 #pragma omp parallel for simd simdlen(16) aligned(x : 64)
31 for (int i
= 0; i
< N
; i
++) {
35 #pragma omp parallel for simd simdlen(16) aligned(x : 64)
36 for (int i
= 0; i
< N
; i
++) {
38 #pragma omp atomic write
39 not_correct_array_values
= 1;
42 if (not_correct_array_values
) {
49 omp_destroy_allocator(alloc
);
56 if (test_omp_aligned_alloc_on_device())