annotate clang/test/CodeGenCUDA/ptx-kernels.cu @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1f2b6ac9f198
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // Make sure that __global__ functions are emitted along with correct
anatofuz
parents:
diff changeset
2 // annotations and are added to @llvm.used to prevent their elimination.
anatofuz
parents:
diff changeset
3 // REQUIRES: nvptx-registered-target
anatofuz
parents:
diff changeset
4 //
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
5 // RUN: %clang_cc1 %s -triple nvptx-unknown-unknown -fcuda-is-device -emit-llvm -o - | FileCheck %s
150
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 #include "Inputs/cuda.h"
anatofuz
parents:
diff changeset
8
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
9 // CHECK-LABEL: define{{.*}} void @device_function
150
anatofuz
parents:
diff changeset
10 extern "C"
anatofuz
parents:
diff changeset
11 __device__ void device_function() {}
anatofuz
parents:
diff changeset
12
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
13 // CHECK-LABEL: define{{.*}} void @global_function
150
anatofuz
parents:
diff changeset
14 extern "C"
anatofuz
parents:
diff changeset
15 __global__ void global_function() {
anatofuz
parents:
diff changeset
16 // CHECK: call void @device_function
anatofuz
parents:
diff changeset
17 device_function();
anatofuz
parents:
diff changeset
18 }
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 // Make sure host-instantiated kernels are preserved on device side.
anatofuz
parents:
diff changeset
21 template <typename T> __global__ void templated_kernel(T param) {}
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
22 // CHECK-DAG: define{{.*}} void @_Z16templated_kernelIiEvT_(
150
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 namespace {
anatofuz
parents:
diff changeset
25 __global__ void anonymous_ns_kernel() {}
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
26 // CHECK-DAG: define{{.*}} void @_ZN12_GLOBAL__N_119anonymous_ns_kernelEv(
150
anatofuz
parents:
diff changeset
27 }
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 void host_function() {
anatofuz
parents:
diff changeset
30 templated_kernel<<<0, 0>>>(0);
anatofuz
parents:
diff changeset
31 anonymous_ns_kernel<<<0,0>>>();
anatofuz
parents:
diff changeset
32 }
anatofuz
parents:
diff changeset
33
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
34 // CHECK: !{{[0-9]+}} = !{ptr @global_function, !"kernel", i32 1}
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
35 // CHECK: !{{[0-9]+}} = !{ptr @_Z16templated_kernelIiEvT_, !"kernel", i32 1}