22// RUN: FileCheck -input-file=%t.h %s
33//
44// This test checks integration header contents for free functions with scalar,
5- // pointer, non-decomposed struct parameters and work group memory parameters.
5+ // pointer, non-decomposed struct parameters, work group memory parameters and
6+ // dynamic work group memory parameters.
67
78#include " mock_properties.hpp"
89#include " sycl.hpp"
@@ -101,6 +102,11 @@ __attribute__((sycl_device))
101102void ff_8(sycl::work_group_memory<int >) {
102103}
103104
105+ __attribute__ ((sycl_device))
106+ [[__sycl_detail__::add_ir_attributes_function(" sycl-nd-range-kernel" , 0 )]]
107+ void ff_9(sycl::dynamic_work_group_memory<int >) {
108+ }
109+
104110
105111// CHECK: const char* const kernel_names[] = {
106112// CHECK-NEXT: {{.*}}__sycl_kernel_ff_2Piii
@@ -112,6 +118,7 @@ void ff_8(sycl::work_group_memory<int>) {
112118// CHECK-NEXT: {{.*}}__sycl_kernel_ff_6I3Agg7DerivedEvT_T0_i
113119// CHECK-NEXT: {{.*}}__sycl_kernel_ff_7ILi3EEv16KArgWithPtrArrayIXT_EE
114120// CHECK-NEXT: {{.*}}__sycl_kernel_ff_8N4sycl3_V117work_group_memoryIiEE
121+ // CHECK-NEXT: {{.*}}__sycl_kernel_ff_9N4sycl3_V125dynamic_work_group_memoryIiEE
115122// CHECK-NEXT: ""
116123// CHECK-NEXT: };
117124
@@ -158,6 +165,9 @@ void ff_8(sycl::work_group_memory<int>) {
158165// CHECK: //--- _Z18__sycl_kernel_ff_8N4sycl3_V117work_group_memoryIiEE
159166// CHECK-NEXT: { kernel_param_kind_t::kind_work_group_memory, 8, 0 },
160167
168+ // CHECK: //--- _Z18__sycl_kernel_ff_9N4sycl3_V125dynamic_work_group_memoryIiEE
169+ // CHECK-NEXT: { kernel_param_kind_t::kind_dynamic_work_group_memory, 8, 0 },
170+
161171// CHECK: { kernel_param_kind_t::kind_invalid, -987654321, -987654321 },
162172// CHECK-NEXT: };
163173
@@ -324,6 +334,26 @@ void ff_8(sycl::work_group_memory<int>) {
324334// CHECK-NEXT: };
325335// CHECK-NEXT: }
326336
337+ // CHECK: // Definition of _Z18__sycl_kernel_ff_9N4sycl3_V125dynamic_work_group_memoryIiEE as a free function kernel
338+ //
339+ // CHECK: Forward declarations of kernel and its argument types:
340+ // CHECK: template <typename DataT> class dynamic_work_group_memory;
341+
342+ // CHECK: void ff_9(sycl::dynamic_work_group_memory<int>);
343+ // CHECK-NEXT: static constexpr auto __sycl_shim10() {
344+ // CHECK-NEXT: return (void (*)(class sycl::dynamic_work_group_memory<int>))ff_9;
345+ // CHECK-NEXT: }
346+ // CHECK-NEXT: namespace sycl {
347+ // CHECK-NEXT: template <>
348+ // CHECK-NEXT: struct ext::oneapi::experimental::is_kernel<__sycl_shim10()> {
349+ // CHECK-NEXT: static constexpr bool value = true;
350+ // CHECK-NEXT: };
351+ // CHECK-NEXT: template <>
352+ // CHECK-NEXT: struct ext::oneapi::experimental::is_single_task_kernel<__sycl_shim10()> {
353+ // CHECK-NEXT: static constexpr bool value = true;
354+ // CHECK-NEXT: };
355+ // CHECK-NEXT: }
356+
327357// CHECK: #include <sycl/kernel_bundle.hpp>
328358
329359// CHECK: Definition of kernel_id of _Z18__sycl_kernel_ff_2Piii
@@ -397,3 +427,11 @@ void ff_8(sycl::work_group_memory<int>) {
397427// CHECK-NEXT: return sycl::detail::get_kernel_id_impl(std::string_view{"_Z18__sycl_kernel_ff_8N4sycl3_V117work_group_memoryIiEE"});
398428// CHECK-NEXT: }
399429// CHECK-NEXT: }
430+ //
431+ // CHECK: // Definition of kernel_id of _Z18__sycl_kernel_ff_9N4sycl3_V125dynamic_work_group_memoryIiEE
432+ // CHECK-NEXT: namespace sycl {
433+ // CHECK-NEXT: template <>
434+ // CHECK-NEXT: kernel_id ext::oneapi::experimental::get_kernel_id<__sycl_shim10()>() {
435+ // CHECK-NEXT: return sycl::detail::get_kernel_id_impl(std::string_view{"_Z18__sycl_kernel_ff_9N4sycl3_V125dynamic_work_group_memoryIiEE"});
436+ // CHECK-NEXT: }
437+ // CHECK-NEXT: }
0 commit comments