@@ -254,6 +254,16 @@ __attribute__((sycl_device))
254254void ff_20(sycl::accessor<int , 1 , sycl::access::mode::read_write> acc) {
255255}
256256
257+ [[__sycl_detail__::add_ir_attributes_function(" work_group_size" , 16 )]]
258+ [[__sycl_detail__::add_ir_attributes_function(" sycl-nd-range-kernel" , 0 )]]
259+ void ff_21 (AliasType start, AliasType *ptr) {
260+ }
261+
262+ [[__sycl_detail__::add_ir_attributes_function(" sycl-nd-range-kernel" , 0 )]]
263+ [[__sycl_detail__::add_ir_attributes_function(" work_group_size" , 16 )]]
264+ void ff_22 (AliasType start, AliasType *ptr) {
265+ }
266+
257267// CHECK: const char* const kernel_names[] = {
258268// CHECK-NEXT: {{.*}}__sycl_kernel_ff_2Piii
259269// CHECK-NEXT: {{.*}}__sycl_kernel_ff_2Piiii
@@ -286,6 +296,8 @@ void ff_20(sycl::accessor<int, 1, sycl::access::mode::read_write> acc) {
286296// CHECK-NEXT: {{.*}}__sycl_kernel_free_functions5tests5ff_18ENS_3AggEPS1_
287297// CHECK-NEXT: {{.*}}__sycl_kernel_ff_19N14free_functions16KArgWithPtrArrayILi50EEE
288298// CHECK-NEXT: {{.*}}__sycl_kernel_ff_20N4sycl3_V18accessorIiLi1ELNS0_6access4modeE1026ELNS2_6targetE2014ELNS2_11placeholderE0ENS0_3ext6oneapi22accessor_property_listIJEEEEE
299+ // CHECK-NEXT: {{.*}}__sycl_kernel_ff_217DerivedPS_
300+ // CHECK-NEXT: {{.*}}__sycl_kernel_ff_227DerivedPS_
289301
290302// CHECK-NEXT: ""
291303// CHECK-NEXT: };
@@ -479,6 +491,7 @@ void ff_20(sycl::accessor<int, 1, sycl::access::mode::read_write> acc) {
479491// CHECK: Definition of _Z18__sycl_kernel_ff_3IdEvPT_S0_S0_ as a free function kernel
480492// CHECK: Forward declarations of kernel and its argument types:
481493// CHECK: template <typename T> void ff_3(T * ptr, T start, T end);
494+ // CHECK: template <> void ff_3<double>(double * ptr, double start, double end);
482495// CHECK-NEXT: static constexpr auto __sycl_shim5() {
483496// CHECK-NEXT: return (void (*)(double *, double, double))ff_3<double>;
484497// CHECK-NEXT: }
@@ -980,6 +993,37 @@ void ff_20(sycl::accessor<int, 1, sycl::access::mode::read_write> acc) {
980993// CHECK-NEXT: };
981994// CHECK-NEXT: }
982995
996+
997+ // CHECK: void ff_21(Derived start, Derived * ptr);
998+ // CHECK-NEXT: static constexpr auto __sycl_shim30() {
999+ // CHECK-NEXT: return (void (*)(struct Derived, struct Derived *))ff_21;
1000+ // CHECK-NEXT: }
1001+ // CHECK-NEXT: namespace sycl {
1002+ // CHECK-NEXT: template <>
1003+ // CHECK-NEXT: struct ext::oneapi::experimental::is_kernel<__sycl_shim30()> {
1004+ // CHECK-NEXT: static constexpr bool value = true;
1005+ // CHECK-NEXT: };
1006+ // CHECK-NEXT: template <>
1007+ // CHECK-NEXT: struct ext::oneapi::experimental::is_single_task_kernel<__sycl_shim30()> {
1008+ // CHECK-NEXT: static constexpr bool value = true;
1009+ // CHECK-NEXT: };
1010+ // CHECK-NEXT: }
1011+
1012+ // CHECK: void ff_22(Derived start, Derived * ptr);
1013+ // CHECK-NEXT: static constexpr auto __sycl_shim31() {
1014+ // CHECK-NEXT: return (void (*)(struct Derived, struct Derived *))ff_22;
1015+ // CHECK-NEXT: }
1016+ // CHECK-NEXT: namespace sycl {
1017+ // CHECK-NEXT: template <>
1018+ // CHECK-NEXT: struct ext::oneapi::experimental::is_kernel<__sycl_shim31()> {
1019+ // CHECK-NEXT: static constexpr bool value = true;
1020+ // CHECK-NEXT: };
1021+ // CHECK-NEXT: template <>
1022+ // CHECK-NEXT: struct ext::oneapi::experimental::is_single_task_kernel<__sycl_shim31()> {
1023+ // CHECK-NEXT: static constexpr bool value = true;
1024+ // CHECK-NEXT: };
1025+ // CHECK-NEXT: }
1026+
9831027// CHECK: #include <sycl/kernel_bundle.hpp>
9841028
9851029// CHECK: Definition of kernel_id of _Z18__sycl_kernel_ff_2Piii
@@ -1196,3 +1240,17 @@ void ff_20(sycl::accessor<int, 1, sycl::access::mode::read_write> acc) {
11961240// CHECK-NEXT: return sycl::detail::get_kernel_id_impl(std::string_view{"_Z19__sycl_kernel_ff_20N4sycl3_V18accessorIiLi1ELNS0_6access4modeE1026ELNS2_6targetE2014ELNS2_11placeholderE0ENS0_3ext6oneapi22accessor_property_listIJEEEEE"});
11971241// CHECK-NEXT: }
11981242// CHECK-NEXT: }
1243+
1244+ // CHECK: namespace sycl {
1245+ // CHECK-NEXT: template <>
1246+ // CHECK-NEXT: kernel_id ext::oneapi::experimental::get_kernel_id<__sycl_shim30()>() {
1247+ // CHECK-NEXT: return sycl::detail::get_kernel_id_impl(std::string_view{"_Z19__sycl_kernel_ff_217DerivedPS_"});
1248+ // CHECK-NEXT: }
1249+ // CHECK-NEXT: }
1250+
1251+ // CHECK: namespace sycl {
1252+ // CHECK-NEXT: template <>
1253+ // CHECK-NEXT: kernel_id ext::oneapi::experimental::get_kernel_id<__sycl_shim31()>() {
1254+ // CHECK-NEXT: return sycl::detail::get_kernel_id_impl(std::string_view{"_Z19__sycl_kernel_ff_227DerivedPS_"});
1255+ // CHECK-NEXT: }
1256+ // CHECK-NEXT: }
0 commit comments