CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
59 lines
1.9 KiB
Plaintext
59 lines
1.9 KiB
Plaintext
// RUN: %run_test hipify "%s" "%t" %hipify_args 1 --hip-kernel-execution-syntax %clang_args
|
|
// Synthetic test to warn only on device functions umin and umax as unsupported, but not on user defined ones.
|
|
// ToDo: change lit testing in order to parse the output.
|
|
|
|
#define LEN 1024
|
|
#define SIZE LEN * sizeof(float)
|
|
// CHECK: #include <hip/hip_runtime.h>
|
|
#include <algorithm>
|
|
|
|
namespace my {
|
|
// user defined function
|
|
unsigned int umin(unsigned int arg1, unsigned int arg2) {
|
|
return (arg1 < arg2) ? arg1 : arg2;
|
|
}
|
|
// user defined function
|
|
unsigned int umax(unsigned int arg1, unsigned int arg2) {
|
|
return (arg1 > arg2) ? arg1 : arg2;
|
|
}
|
|
}
|
|
|
|
__global__ void uint_arithm(float* A, float* B, float* C, unsigned int u1, unsigned int u2)
|
|
{
|
|
// device function call (warn if unsupported)
|
|
unsigned int _umin = umin ( u1, u2 );
|
|
// device function call (warn if unsupported)
|
|
unsigned int _umax = umax ( u1, u2 );
|
|
// device function call (warn if unsupported)
|
|
unsigned int _umin_global = ::umin ( u1, u2 );
|
|
// device function call (warn if unsupported)
|
|
unsigned int _umax_global = ::umax(u1, u2);
|
|
if (_umin != _umin_global) return;
|
|
if (_umax != _umax_global) return;
|
|
int i = threadIdx.x;
|
|
A[i] = i + _umin;
|
|
B[i] = i + _umax;
|
|
C[i] = A[i] + B[i];
|
|
}
|
|
|
|
int main() {
|
|
unsigned int u1 = 33;
|
|
unsigned int u2 = 34;
|
|
// user defined function call
|
|
unsigned int _min = my::umin(u1, u2);
|
|
// user defined function call
|
|
unsigned int _max = my::umax(u1, u2);
|
|
float *A, *B, *C;
|
|
// CHECK: hipMalloc((void**)&A, SIZE);
|
|
cudaMalloc((void**)&A, SIZE);
|
|
// CHECK: hipMalloc((void**)&B, SIZE);
|
|
cudaMalloc((void**)&B, SIZE);
|
|
// CHECK: hipMalloc((void**)&C, SIZE);
|
|
cudaMalloc((void**)&C, SIZE);
|
|
dim3 dimGrid(LEN / 512, 1, 1);
|
|
dim3 dimBlock(512, 1, 1);
|
|
// CHECK: hipLaunchKernelGGL(uint_arithm, dim3(dimGrid), dim3(dimBlock), 0, 0, A, B, C, u1, u2);
|
|
uint_arithm<<<dimGrid, dimBlock>>>(A, B, C, u1, u2);
|
|
return _min < _max;
|
|
}
|