blob: 8b92194ba435e69bee81f7394f7d6dcac53fbc2b [file]
// clang-format off
// RUN: %clang++ %flags -foffload-via-llvm --offload-arch=native %s -o %t.launch_tu.o -c
// RUN: %clang++ %flags -foffload-via-llvm --offload-arch=native -x cuda %S/kernel_tu.cu.inc -o %t.kernel_tu.o -c
// RUN: %clang++ %flags -foffload-via-llvm --offload-arch=native --offload-link %t.launch_tu.o %t.kernel_tu.o -o %t
// 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>
extern __global__ void square(int *A);
int main(int argc, char **argv) {
int DevNo = 0;
int *Ptr;
cudaMalloc(&Ptr, 4);
printf("Ptr %p\n", Ptr);
// CHECK: Ptr [[Ptr:0x.*]]
square<<<1, 1>>>(Ptr);
int I;
cudaMemcpy(&I, Ptr, sizeof(int), cudaMemcpyDeviceToHost);
printf("I: %i\n", I);
// CHECK: I: 42
}