diff options
| author | Yaxun Liu <Yaxun.Liu@amd.com> | 2018-03-29 15:02:08 +0000 |
|---|---|---|
| committer | Yaxun Liu <Yaxun.Liu@amd.com> | 2018-03-29 15:02:08 +0000 |
| commit | b2f2bb26e443d21d57cc1b5ebcfdd86b33417e4d (patch) | |
| tree | 3ce92b4af5f431310dfa5dd6f08eb51567dbde05 /clang/test/CodeGenCUDA | |
| parent | 7d0be9aff93c3d7f0332cd77d53c803b1512ee61 (diff) | |
| download | bcm5719-llvm-b2f2bb26e443d21d57cc1b5ebcfdd86b33417e4d.tar.gz bcm5719-llvm-b2f2bb26e443d21d57cc1b5ebcfdd86b33417e4d.zip | |
Set calling convention for CUDA kernel
This patch sets target specific calling convention for CUDA kernels in IR.
Patch by Greg Rodgers.
Revised and lit test added by Yaxun Liu.
Differential Revision: https://reviews.llvm.org/D44747
llvm-svn: 328795
Diffstat (limited to 'clang/test/CodeGenCUDA')
| -rw-r--r-- | clang/test/CodeGenCUDA/kernel-amdgcn.cu | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/CodeGenCUDA/kernel-amdgcn.cu b/clang/test/CodeGenCUDA/kernel-amdgcn.cu new file mode 100644 index 00000000000..a7369f901b9 --- /dev/null +++ b/clang/test/CodeGenCUDA/kernel-amdgcn.cu @@ -0,0 +1,29 @@ +// RUN: %clang_cc1 -triple amdgcn -fcuda-is-device -emit-llvm %s -o - | FileCheck %s +#include "Inputs/cuda.h" + +// CHECK: define amdgpu_kernel void @_ZN1A6kernelEv +class A { +public: + static __global__ void kernel(){} +}; + +// CHECK: define void @_Z10non_kernelv +__device__ void non_kernel(){} + +// CHECK: define amdgpu_kernel void @_Z6kerneli +__global__ void kernel(int x) { + non_kernel(); +} + +// CHECK: define amdgpu_kernel void @_Z15template_kernelI1AEvT_ +template<class T> +__global__ void template_kernel(T x) {} + +void launch(void *f); + +int main() { + launch((void*)A::kernel); + launch((void*)kernel); + launch((void*)template_kernel<A>); + return 0; +} |

