|
| 1 | +// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s |
| 2 | +// REQUIRES: linux |
| 3 | + |
| 4 | +// clang-format off |
| 5 | + |
| 6 | +#include <CL/sycl/accessor.hpp> |
| 7 | + |
| 8 | +using namespace cl::sycl; |
| 9 | + |
| 10 | +//----------------------------------------------------------------------------// |
| 11 | +// Global buffer accessor. |
| 12 | +//----------------------------------------------------------------------------// |
| 13 | + |
| 14 | +SYCL_EXTERNAL void hostAcc(accessor<int, 1, access::mode::read, access::target::global_buffer> Acc) { |
| 15 | + (void)Acc.get_size(); |
| 16 | +} |
| 17 | +// CHECK: 0 | class cl::sycl::accessor<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > |
| 18 | +// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > (base) (empty) |
| 19 | +// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorImplDevice<1> impl |
| 20 | +// CHECK-NEXT: 0 | class cl::sycl::id<1> Offset |
| 21 | +// CHECK-NEXT: 0 | class cl::sycl::detail::array<1> (base) |
| 22 | +// CHECK-NEXT: 0 | size_t [1] common_array |
| 23 | +// CHECK-NEXT: 8 | class cl::sycl::range<1> AccessRange |
| 24 | +// CHECK-NEXT: 8 | class cl::sycl::detail::array<1> (base) |
| 25 | +// CHECK-NEXT: 8 | size_t [1] common_array |
| 26 | +// CHECK-NEXT: 16 | class cl::sycl::range<1> MemRange |
| 27 | +// CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) |
| 28 | +// CHECK-NEXT: 16 | size_t [1] common_array |
| 29 | +// CHECK-NEXT: 24 | union cl::sycl::accessor<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > |
| 30 | +// CHECK-NEXT: 24 | cl::sycl::accessor<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::global_buffer, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> >::ConcreteASPtrType MData |
| 31 | +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, |
| 32 | +// CHECK-NEXT: | nvsize=32, nvalign=8] |
| 33 | + |
| 34 | +//----------------------------------------------------------------------------// |
| 35 | +// Local accessor. |
| 36 | +//----------------------------------------------------------------------------// |
| 37 | + |
| 38 | +SYCL_EXTERNAL void hostAcc(accessor<int, 1, access::mode::read_write, access::target::local> Acc) { |
| 39 | + (void)Acc.get_size(); |
| 40 | +} |
| 41 | +// CHECK: 0 | class cl::sycl::accessor<int, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::local, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > |
| 42 | +// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common<int, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::local, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > (base) (empty) |
| 43 | +// CHECK-NEXT: 0 | class cl::sycl::detail::LocalAccessorBaseDevice<1> impl |
| 44 | +// CHECK-NEXT: 0 | class cl::sycl::range<1> AccessRange |
| 45 | +// CHECK-NEXT: 0 | class cl::sycl::detail::array<1> (base) |
| 46 | +// CHECK-NEXT: 0 | size_t [1] common_array |
| 47 | +// CHECK-NEXT: 8 | class cl::sycl::range<1> MemRange |
| 48 | +// CHECK-NEXT: 8 | class cl::sycl::detail::array<1> (base) |
| 49 | +// CHECK-NEXT: 8 | size_t [1] common_array |
| 50 | +// CHECK-NEXT: 16 | class cl::sycl::id<1> Offset |
| 51 | +// CHECK-NEXT: 16 | class cl::sycl::detail::array<1> (base) |
| 52 | +// CHECK-NEXT: 16 | size_t [1] common_array |
| 53 | +// CHECK-NEXT: 24 | cl::sycl::accessor<int, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::local, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> >::ConcreteASPtrType MData |
| 54 | +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, |
| 55 | +// CHECK-NEXT: | nvsize=32, nvalign=8] |
| 56 | + |
| 57 | +//----------------------------------------------------------------------------// |
| 58 | +// Image accessor. |
| 59 | +//----------------------------------------------------------------------------// |
| 60 | + |
| 61 | +SYCL_EXTERNAL void hostAcc(accessor<int4, 1, access::mode::read, access::target::image> Acc) { |
| 62 | + (void)Acc.get_count(); |
| 63 | +} |
| 64 | + |
| 65 | +// CHECK: 0 | class cl::sycl::accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t, class cl::sycl::ONEAPI::accessor_property_list<> > |
| 66 | +// CHECK-NEXT: 0 | class cl::sycl::detail::image_accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t> (base) |
| 67 | +// CHECK-NEXT: 0 | cl::sycl::detail::image_accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read, cl::sycl::access::target::image, cl::sycl::access::placeholder::false_t>::OCLImageTy MImageObj |
| 68 | +// CHECK-NEXT: 8 | char [24] MPadding |
| 69 | +// CHECK-NEXT: | [sizeof=32, dsize=32, align=8, |
| 70 | +// CHECK-NEXT: | nvsize=32, nvalign=8] |
0 commit comments