Skip to content

Commit da5683c

Browse files
Andrew Savonichevbader
authored andcommitted
[SYCL][Test] Do not include sycl.hpp in clang LIT test (#900)
Signed-off-by: Andrew Savonichev <[email protected]>
1 parent 6a37813 commit da5683c

File tree

1 file changed

+24
-64
lines changed

1 file changed

+24
-64
lines changed
Lines changed: 24 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,28 @@
11
// RUN: %clang %s -S -emit-llvm -fsycl-device-only -o - | FileCheck %s
22

3-
#include "CL/sycl.hpp"
4-
5-
constexpr auto sycl_read_write = cl::sycl::access::mode::read_write;
6-
constexpr auto sycl_global_buffer = cl::sycl::access::target::global_buffer;
7-
8-
template <typename Acc1Ty, typename Acc2Ty>
9-
struct foostr {
10-
Acc1Ty A;
11-
Acc2Ty B;
12-
foostr(Acc1Ty A, Acc2Ty B): A(A), B(B) {}
13-
[[intel::kernel_args_restrict]]
14-
void operator()() {
15-
A[0] = B[0];
16-
}
17-
};
18-
19-
int foo(int X) {
20-
int A[] = { 42 };
21-
int B[] = { 0 };
22-
{
23-
cl::sycl::queue Q;
24-
cl::sycl::buffer<int, 1> BufA(A, 1);
25-
cl::sycl::buffer<int, 1> BufB(B, 1);
26-
27-
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_norestrict{{.*}}(i32 addrspace(1)* %{{.*}} i32 addrspace(1)* %{{.*}}
28-
29-
Q.submit([&](cl::sycl::handler& cgh) {
30-
auto AccA = BufA.get_access<sycl_read_write, sycl_global_buffer>(cgh);
31-
auto AccB = BufB.get_access<sycl_read_write, sycl_global_buffer>(cgh);
32-
cgh.single_task<class kernel_norestrict>(
33-
[=]() {
34-
AccB[0] = AccA[0];
35-
});
36-
});
37-
38-
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_restrict{{.*}}(i32 addrspace(1)* noalias %{{.*}} i32 addrspace(1)* noalias %{{.*}}
39-
Q.submit([&](cl::sycl::handler& cgh) {
40-
auto AccA = BufA.get_access<sycl_read_write, sycl_global_buffer>(cgh);
41-
auto AccB = BufB.get_access<sycl_read_write, sycl_global_buffer>(cgh);
42-
cgh.single_task<class kernel_restrict>(
43-
[=]() [[intel::kernel_args_restrict]] {
44-
AccB[0] = AccA[0];
45-
});
46-
});
47-
48-
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_restrict_struct{{.*}}(i32 addrspace(1)* noalias %{{.*}} i32 addrspace(1)* noalias %{{.*}}
49-
Q.submit([&](cl::sycl::handler& cgh) {
50-
auto AccA = BufA.get_access<sycl_read_write, sycl_global_buffer>(cgh);
51-
auto AccB = BufB.get_access<sycl_read_write, sycl_global_buffer>(cgh);
52-
foostr<decltype(AccA), decltype(AccB)> f(AccA, AccB);
53-
cgh.single_task<class kernel_restrict_struct>(f);
54-
});
3+
template <typename name, typename Func>
4+
__attribute__((sycl_kernel)) void kernel(Func kernelFunc) {
5+
kernelFunc();
6+
}
557

56-
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_restrict_other_params{{.*}}(i32 addrspace(1)* noalias %{{.*}} i32 addrspace(1)* noalias %{{.*}}, i32 %{{[^,]*}})
57-
int num = 42;
58-
Q.submit([&](cl::sycl::handler& cgh) {
59-
auto AccA = BufA.get_access<sycl_read_write, sycl_global_buffer>(cgh);
60-
auto AccB = BufB.get_access<sycl_read_write, sycl_global_buffer>(cgh);
61-
cgh.single_task<class kernel_restrict_other_params>(
62-
[=]() [[intel::kernel_args_restrict]] {
63-
AccB[0] = AccA[0] = num;
64-
});
65-
});
66-
}
67-
return B[0];
8+
int main() {
9+
int *a;
10+
int *b;
11+
int *c;
12+
kernel<class kernel_restrict>(
13+
[a,b,c]() [[intel::kernel_args_restrict]] { c[0] = a[0] + b[0];});
14+
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_restrict{{.*}}(i32 addrspace(1)* noalias %{{.*}} i32 addrspace(1)* noalias %{{.*}}, i32 addrspace(1)* noalias %{{.*}})
15+
16+
int *d;
17+
int *e;
18+
int *f;
19+
20+
kernel<class kernel_norestrict>(
21+
[d,e,f]() { f[0] = d[0] + e[0];});
22+
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_norestrict{{.*}}(i32 addrspace(1)* %{{.*}} i32 addrspace(1)* %{{.*}}, i32 addrspace(1)* %{{.*}})
23+
24+
int g = 42;
25+
kernel<class kernel_restrict_other_types>(
26+
[a,b,c,g]() [[intel::kernel_args_restrict]] { c[0] = a[0] + b[0] + g;});
27+
// CHECK: define {{.*}} spir_kernel {{.*}}kernel_restrict_other_types{{.*}}(i32 addrspace(1)* noalias %{{.*}} i32 addrspace(1)* noalias %{{.*}}, i32 addrspace(1)* noalias %{{.*}}, i32 %{{.*}})
6828
}

0 commit comments

Comments
 (0)