// clang-format off
// RUN: %clang++ %flags -foffload-via-llvm --offload-arch=native %s -o %t
// RUN: %t | %fcheck-generic
// RUN: %clang++ %flags -foffload-via-llvm --offload-arch=native %s -o %t -fopenmp 
// RUN: %t | %fcheck-generic
// clang-format on

// UNSUPPORTED: aarch64-unknown-linux-gnu
// UNSUPPORTED: x86_64-unknown-linux-gnu
// UNSUPPORTED: nvptx64-nvidia-cuda-LTO
// UNSUPPORTED: amdgcn-amd-amdhsa-LTO
// UNSUPPORTED: amdgpu-amd-amdhsa-LTO
// UNSUPPORTED: intelgpu

#include <stdio.h>

__global__ void square(int *A) { *A = 42; }

int main(int argc, char **argv) {
  int *Ptr;
  hipMalloc(&Ptr, 4);
  printf("Ptr %p\n", Ptr);
  // CHECK: Ptr [[Ptr:0x.*]]
  square<<<1, 1>>>(Ptr);
  int I = 0;
  hipDeviceSynchronize();
  hipMemcpy(&I, Ptr, sizeof(int), hipMemcpyDeviceToHost);
  printf("I: %i\n", I);
  // CHECK: I: 42
}
