| // 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> | |
| static void print_error(const char *Label, hipError_t Error) { | |
| printf("%s value: %u\n", Label, static_cast<unsigned>(Error)); | |
| printf("%s name: %s\n", Label, hipGetErrorName(Error)); | |
| printf("%s string: %s\n", Label, hipGetErrorString(Error)); | |
| } | |
| int main() { | |
| print_error("success", hipSuccess); | |
| // CHECK: success value: 0 | |
| // CHECK: success name: hipSuccess | |
| // CHECK: success string: No error | |
| print_error("invalid value", hipErrorInvalidValue); | |
| // CHECK: invalid value value: 1 | |
| // CHECK: invalid value name: hipErrorInvalidValue | |
| // CHECK: invalid value string: Invalid argument value | |
| print_error("invalid device", hipErrorInvalidDevice); | |
| // CHECK: invalid device value: 2 | |
| // CHECK: invalid device name: hipErrorInvalidDevice | |
| // CHECK: invalid device string: Invalid device number | |
| print_error("unknown", hipErrorUnknown); | |
| // CHECK: unknown value: 3 | |
| // CHECK: unknown name: Unrecognized error | |
| // CHECK: unknown string: Unknown error | |
| print_error("invalid resource handle", hipErrorInvalidResourceHandle); | |
| // CHECK: invalid resource handle value: 4 | |
| // CHECK: invalid resource handle name: hipErrorInvalidResourceHandle | |
| // CHECK: invalid resource handle string: Invalid resource handle | |
| print_error("invalid configuration", hipErrorInvalidConfiguration); | |
| // CHECK: invalid configuration value: 5 | |
| // CHECK: invalid configuration name: hipErrorInvalidConfiguration | |
| // CHECK: invalid configuration string: Invalid configuration argument | |
| hipError_t Unrecognized = static_cast<hipError_t>(999); | |
| print_error("unrecognized", Unrecognized); | |
| // CHECK: unrecognized value: 999 | |
| // CHECK: unrecognized name: Unrecognized error | |
| // CHECK: unrecognized string: Unrecognized error | |
| print_error("set invalid device", hipSetDevice(-1)); | |
| // CHECK: set invalid device value: 2 | |
| // CHECK: set invalid device name: hipErrorInvalidDevice | |
| // CHECK: set invalid device string: Invalid device number | |
| print_error("get last error", hipGetLastError()); | |
| // CHECK: get last error value: 2 | |
| // CHECK: get last error name: hipErrorInvalidDevice | |
| // CHECK: get last error string: Invalid device number | |
| print_error("cleared last error", hipGetLastError()); | |
| // CHECK: cleared last error value: 0 | |
| // CHECK: cleared last error name: hipSuccess | |
| // CHECK: cleared last error string: No error | |
| print_error("null stream destroy", hipStreamDestroy(nullptr)); | |
| // CHECK: null stream destroy value: 1 | |
| // CHECK: null stream destroy name: hipErrorInvalidValue | |
| // CHECK: null stream destroy string: Invalid argument value | |
| return 0; | |
| } |