blob: 2830d9de9b9dc0e7fb1d2676faeed853e98a7a38 [file]
// 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;
}