|
3 | 3 | // expected-no-diagnostics |
4 | 4 | #include <sycl/sycl.hpp> |
5 | 5 |
|
| 6 | +struct SGSizePrimaryKernelFunctor { |
| 7 | + SGSizePrimaryKernelFunctor() {} |
| 8 | + |
| 9 | + void operator()(sycl::nd_item<1>) const {} |
| 10 | + |
| 11 | + auto get(sycl::ext::oneapi::experimental::properties_tag) const { |
| 12 | + return sycl::ext::oneapi::experimental::properties{ |
| 13 | + sycl::ext::oneapi::experimental::sub_group_size_primary}; |
| 14 | + } |
| 15 | +}; |
| 16 | + |
| 17 | +struct SGSizeAutoKernelFunctor { |
| 18 | + SGSizeAutoKernelFunctor() {} |
| 19 | + |
| 20 | + void operator()(sycl::nd_item<1>) const {} |
| 21 | + |
| 22 | + auto get(sycl::ext::oneapi::experimental::properties_tag) const { |
| 23 | + return sycl::ext::oneapi::experimental::properties{ |
| 24 | + sycl::ext::oneapi::experimental::sub_group_size_automatic}; |
| 25 | + } |
| 26 | +}; |
| 27 | + |
6 | 28 | int main() { |
7 | | - sycl::queue q; |
8 | | - sycl::nd_range<1> ndr{6, 2}; |
| 29 | + sycl::queue Q; |
| 30 | + sycl::nd_range<1> NDRange{6, 2}; |
9 | 31 |
|
10 | | - // CHECK: spir_kernel void @{{.*}}Kernel1() |
| 32 | + // CHECK: spir_kernel void @{{.*}}SGSizePrimaryKernelFunctor() |
11 | 33 | // CHECK-SAME: !intel_reqd_sub_group_size ![[SGSizeAttr:[0-9]+]] |
12 | | - sycl::ext::oneapi::experimental::properties P1{ |
13 | | - sycl::ext::oneapi::experimental::sub_group_size_primary}; |
14 | | - q.parallel_for<class Kernel1>(ndr, P1, [=](auto id) {}); |
| 34 | + Q.parallel_for(NDRange, SGSizePrimaryKernelFunctor{}); |
15 | 35 |
|
16 | | - // CHECK: spir_kernel void @{{.*}}Kernel2() |
| 36 | + // CHECK: spir_kernel void @{{.*}}SGSizeAutoKernelFunctor() |
17 | 37 | // CHECK-NOT: intel_reqd_sub_group_size |
18 | 38 | // CHECK-SAME: { |
19 | | - sycl::ext::oneapi::experimental::properties P2{ |
20 | | - sycl::ext::oneapi::experimental::sub_group_size_automatic}; |
21 | | - q.parallel_for<class Kernel2>(ndr, P2, [=](auto id) {}); |
| 39 | + Q.parallel_for(NDRange, SGSizeAutoKernelFunctor{}); |
22 | 40 | } |
23 | 41 |
|
24 | 42 | // CHECK: ![[SGSizeAttr]] = !{i32 -1} |
0 commit comments