| // 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> | |
| int main(int argc, char **argv) { | |
| int Count = 0; | |
| if (hipGetDeviceCount(&Count) != hipSuccess) | |
| return 1; | |
| printf("device count: %d\n", Count); | |
| // CHECK: device count: {{[1-9][0-9]*}} | |
| int Device = -1; | |
| if (hipGetDevice(&Device) != hipSuccess) | |
| return 1; | |
| printf("device: %d\n", Device); | |
| // CHECK: device: {{[0-9]+}} | |
| if (hipSetDevice(Device) != hipSuccess) | |
| return 1; | |
| int After = -1; | |
| if (hipGetDevice(&After) != hipSuccess) | |
| return 1; | |
| printf("device after set: %d\n", After); | |
| // CHECK: device after set: {{[0-9]+}} | |
| hipError_t Err = hipSetDevice(-1); | |
| printf("set invalid device: %u\n", Err); | |
| // CHECK: set invalid device: 2 | |
| } |