1
1
// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-unknown-linux-gnu %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-LINUX %s
2
- // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-AMDGCN %s
3
- // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple nvptx %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-NVPTX %s
4
- // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple spir64 %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
2
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple amdgcn-amd-amdhsa %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-AMDGCN %s
3
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple nvptx-nvidia-cuda %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-NVPTX %s
4
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple nvptx64-nvidia-cuda %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-NVPTX %s
5
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple spir-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
6
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple spir64-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
7
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple spirv32-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
8
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-unknown-linux-gnu -triple spirv64-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
5
9
// RUN: %clang_cc1 -fsycl-is-host -emit-llvm -triple x86_64-pc-windows-msvc %s -o - | FileCheck --check-prefixes=CHECK-HOST,CHECK-HOST-WINDOWS %s
6
- // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple amdgcn %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-AMDGCN %s
7
- // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple nvptx %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-NVPTX %s
8
- // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple spir64 %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
10
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple amdgcn-amd-amdhsa %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-AMDGCN %s
11
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple nvptx-nvidia-cuda %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-NVPTX %s
12
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple nvptx64-nvidia-cuda %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-NVPTX %s
13
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple spir-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
14
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple spir64-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
15
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple spirv32-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
16
+ // RUN: %clang_cc1 -fsycl-is-device -emit-llvm -aux-triple x86_64-pc-windows-msvc -triple spirv64-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK-DEVICE,CHECK-SPIR %s
9
17
10
18
// Test the generation of SYCL kernel caller functions. These functions are
11
19
// generated from functions declared with the sycl_kernel_entry_point attribute
12
20
// and emited during device compilation. They are not emitted during device
13
21
// compilation.
14
22
15
- template <typename name, typename Func>
16
- __attribute__ ((sycl_kernel_entry_point(name))) void kernel_single_task(const Func kernelFunc) {
23
+ template <typename KernelName, typename KernelType>
24
+ [[clang::sycl_kernel_entry_point(KernelName)]]
25
+ void kernel_single_task (KernelType kernelFunc) {
17
26
kernelFunc ();
18
27
}
19
28
@@ -22,7 +31,7 @@ struct single_purpose_kernel {
22
31
void operator ()() const {}
23
32
};
24
33
25
- __attribute__ (( sycl_kernel_entry_point(single_purpose_kernel_name)))
34
+ [[clang:: sycl_kernel_entry_point(single_purpose_kernel_name)]]
26
35
void single_purpose_kernel_task (single_purpose_kernel kernelFunc) {
27
36
kernelFunc ();
28
37
}
@@ -89,7 +98,7 @@ int main() {
89
98
// FIXME: main(). main() shouldn't be emitted in device code, but that pruning
90
99
// FIXME: isn't performed yet.
91
100
// CHECK-DEVICE: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
92
- // CHECK-DEVICE-NEXT: define dso_local noundef i32 @main() #0
101
+ // CHECK-DEVICE-NEXT: define {{[a-z_ ]*}} noundef i32 @main() #0
93
102
94
103
// IR for the SYCL kernel caller function generated for
95
104
// single_purpose_kernel_task with single_purpose_kernel_name as the SYCL kernel
@@ -119,7 +128,7 @@ int main() {
119
128
// CHECK-NVPTX: define linkonce_odr void @_ZNK21single_purpose_kernelclEv
120
129
//
121
130
// CHECK-SPIR: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
122
- // CHECK-SPIR-NEXT: define dso_local spir_kernel void @_ZTS26single_purpose_kernel_name
131
+ // CHECK-SPIR-NEXT: define {{[a-z_ ]*}} spir_kernel void @_ZTS26single_purpose_kernel_name
123
132
// CHECK-SPIR-SAME: (ptr noundef byval(%struct.single_purpose_kernel) align 1 %kernelFunc) #[[SPIR_ATTR0:[0-9]+]] {
124
133
// CHECK-SPIR-NEXT: entry:
125
134
// CHECK-SPIR-NEXT: %kernelFunc.ascast = addrspacecast ptr %kernelFunc to ptr addrspace(4)
@@ -157,7 +166,7 @@ int main() {
157
166
// CHECK-NVPTX: define internal void @_ZZ4mainENKUlvE_clEv
158
167
//
159
168
// CHECK-SPIR: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
160
- // CHECK-SPIR-NEXT: define dso_local spir_kernel void @_ZTSZ4mainE18lambda_kernel_name
169
+ // CHECK-SPIR-NEXT: define {{[a-z_ ]*}} spir_kernel void @_ZTSZ4mainE18lambda_kernel_name
161
170
// CHECK-SPIR-SAME: (ptr noundef byval(%class.anon) align 4 %kernelFunc) #[[SPIR_ATTR0]] {
162
171
// CHECK-SPIR-NEXT: entry:
163
172
// CHECK-SPIR-NEXT: %kernelFunc.ascast = addrspacecast ptr %kernelFunc to ptr addrspace(4)
0 commit comments