diff --git a/sycl/test/abi/layout_accessors_device.cpp b/sycl/test/abi/layout_accessors_device.cpp new file mode 100644 index 0000000000000..0f81d7e4c8f88 --- /dev/null +++ b/sycl/test/abi/layout_accessors_device.cpp @@ -0,0 +1,70 @@ +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// REQUIRES: linux + +// clang-format off + +#include + +using namespace cl::sycl; + +//----------------------------------------------------------------------------// +// Global buffer accessor. +//----------------------------------------------------------------------------// + +SYCL_EXTERNAL void hostAcc(accessor Acc) { + (void)Acc.get_size(); +} +// CHECK: 0 | class cl::sycl::accessor > +// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common > (base) (empty) +// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorImplDevice<1> impl +// CHECK-NEXT: 0 | class cl::sycl::id<1> Offset +// CHECK-NEXT: 0 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 0 | size_t [1] common_array +// CHECK-NEXT: 8 | class cl::sycl::range<1> AccessRange +// CHECK-NEXT: 8 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 8 | size_t [1] common_array +// CHECK-NEXT: 16 | class cl::sycl::range<1> MemRange +// CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 16 | size_t [1] common_array +// CHECK-NEXT: 24 | union cl::sycl::accessor > +// CHECK-NEXT: 24 | cl::sycl::accessor >::ConcreteASPtrType MData +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, +// CHECK-NEXT: | nvsize=32, nvalign=8] + +//----------------------------------------------------------------------------// +// Local accessor. +//----------------------------------------------------------------------------// + +SYCL_EXTERNAL void hostAcc(accessor Acc) { + (void)Acc.get_size(); +} +// CHECK: 0 | class cl::sycl::accessor > +// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common > (base) (empty) +// CHECK-NEXT: 0 | class cl::sycl::detail::LocalAccessorBaseDevice<1> impl +// CHECK-NEXT: 0 | class cl::sycl::range<1> AccessRange +// CHECK-NEXT: 0 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 0 | size_t [1] common_array +// CHECK-NEXT: 8 | class cl::sycl::range<1> MemRange +// CHECK-NEXT: 8 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 8 | size_t [1] common_array +// CHECK-NEXT: 16 | class cl::sycl::id<1> Offset +// CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) +// CHECK-NEXT: 16 | size_t [1] common_array +// CHECK-NEXT: 24 | cl::sycl::accessor >::ConcreteASPtrType MData +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, +// CHECK-NEXT: | nvsize=32, nvalign=8] + +//----------------------------------------------------------------------------// +// Image accessor. +//----------------------------------------------------------------------------// + +SYCL_EXTERNAL void hostAcc(accessor Acc) { + (void)Acc.get_count(); +} + +// CHECK: 0 | class cl::sycl::accessor, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > +// CHECK-NEXT: 0 | class cl::sycl::detail::image_accessor, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t> (base) +// CHECK-NEXT: 0 | cl::sycl::detail::image_accessor, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t>::OCLImageTy MImageObj +// CHECK-NEXT: 8 | char [24] MPadding +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, +// CHECK-NEXT: | nvsize=32, nvalign=8] diff --git a/sycl/test/abi/layout_accessors.cpp b/sycl/test/abi/layout_accessors_host.cpp similarity index 100% rename from sycl/test/abi/layout_accessors.cpp rename to sycl/test/abi/layout_accessors_host.cpp diff --git a/sycl/test/abi/layout_array.cpp b/sycl/test/abi/layout_array.cpp index 5e3c44d329a3f..9394b48e0a7e6 100644 --- a/sycl/test/abi/layout_array.cpp +++ b/sycl/test/abi/layout_array.cpp @@ -1,4 +1,5 @@ // RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s // REQUIRES: linux // clang-format off @@ -7,7 +8,7 @@ #include -void range(sycl::range<2>) {} +SYCL_EXTERNAL void range(sycl::range<2>) {} // CHECK: 0 | class cl::sycl::range<2> // CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) @@ -17,17 +18,17 @@ void range(sycl::range<2>) {} //---------------------------- -void id(sycl::id<2>) {} +SYCL_EXTERNAL void id(sycl::id<2>) {} -// CHECK: 0 | class cl::sycl::id<3> -// CHECK-NEXT: 0 | class cl::sycl::detail::array<3> (base) -// CHECK-NEXT: 0 | size_t [3] common_array -// CHECK-NEXT: | [sizeof=24, dsize=24, align=8, -// CHECK-NEXT: | nvsize=24, nvalign=8] +// CHECK: 0 | class cl::sycl::id<2> +// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 0 | size_t [2] common_array +// CHECK-NEXT: | [sizeof=16, dsize=16, align=8, +// CHECK-NEXT: | nvsize=16, nvalign=8] //---------------------------- -void item(sycl::item<2>) {} +SYCL_EXTERNAL void item(sycl::item<2>) {} // CHECK: 0 | class cl::sycl::item<2, true> // CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl @@ -45,7 +46,7 @@ void item(sycl::item<2>) {} //---------------------------- -void nd_item(sycl::nd_item<2>) {} +SYCL_EXTERNAL void nd_item(sycl::nd_item<2>) {} // CHECK: 0 | class cl::sycl::nd_item<2> // CHECK-NEXT: 0 | class cl::sycl::item<2, true> globalItem @@ -82,3 +83,19 @@ void nd_item(sycl::nd_item<2>) {} // CHECK-NEXT: 128 | size_t [2] common_array // CHECK-NEXT: | [sizeof=144, dsize=144, align=8, // CHECK-NEXT: | nvsize=144, nvalign=8] + +//---------------------------- + +SYCL_EXTERNAL void nd_range(sycl::nd_range<2>) {} +// CHECK: 0 | class cl::sycl::nd_range<2> +// CHECK-NEXT: 0 | class cl::sycl::range<2> globalSize +// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 0 | size_t [2] common_array +// CHECK-NEXT: 16 | class cl::sycl::range<2> localSize +// CHECK-NEXT: 16 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 16 | size_t [2] common_array +// CHECK-NEXT: 32 | class cl::sycl::id<2> offset +// CHECK-NEXT: 32 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 32 | size_t [2] common_array +// CHECK-NEXT: | [sizeof=48, dsize=48, align=8, +// CHECK-NEXT: | nvsize=48, nvalign=8] diff --git a/sycl/test/abi/layout_vec.cpp b/sycl/test/abi/layout_vec.cpp index 957f17054c971..f03eb4fe46e66 100644 --- a/sycl/test/abi/layout_vec.cpp +++ b/sycl/test/abi/layout_vec.cpp @@ -1,11 +1,12 @@ // RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s // REQUIRES: linux // clang-format off #include -void foo(sycl::vec) {} +SYCL_EXTERNAL void foo(sycl::vec) {} // CHECK: 0 | class cl::sycl::vec // CHECK-NEXT: 0 | cl::sycl::vec::DataType m_Data @@ -14,7 +15,7 @@ void foo(sycl::vec) {} //-------------------------------------- -void foo(sycl::vec) {} +SYCL_EXTERNAL void foo(sycl::vec) {} // CHECK: 0 | class cl::sycl::vec<_Bool, 16> // CHECK-NEXT: 0 | cl::sycl::vec<_Bool, 16>::DataType m_Data