Skip to content

Commit 50a1d2e

Browse files
author
iclsrc
committed
Merge from 'sycl' to 'sycl-web' (#1)
2 parents a551db5 + 0539c10 commit 50a1d2e

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

sycl/test/abi/layout_accessors.cpp

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
2+
// REQUIRES: linux
3+
4+
#include <CL/sycl/accessor.hpp>
5+
6+
using namespace cl::sycl;
7+
8+
//----------------------------------------------------------------------------//
9+
// Host buffer accessor.
10+
//----------------------------------------------------------------------------//
11+
12+
void hostAcc(accessor<int, 1, access::mode::read, access::target::host_buffer> Acc) {
13+
(void)Acc.get_size();
14+
}
15+
16+
// CHECK: 0 | class cl::sycl::accessor<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::host_buffer, cl::sycl::access::placeholder::false_t>
17+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
18+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
19+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
20+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
21+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
22+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
23+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
24+
// CHECK-NEXT: 0 | class cl::sycl::detail::accessor_common<int, 1, cl::sycl::access::mode::read, cl::sycl::access::target::host_buffer, cl::sycl::access::placeholder::false_t> (base) (empty)
25+
// CHECK-NEXT: 16 | char [16] padding
26+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
27+
// CHECK-NEXT: nvsize=32, nvalign=8]
28+
29+
//----------------------------------------------------------------------------//
30+
// Global buffer accessor.
31+
//----------------------------------------------------------------------------//
32+
33+
void hostAcc(accessor<int, 1, access::mode::read, access::target::global_buffer> Acc) {
34+
(void)Acc.get_size();
35+
}
36+
37+
// 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>
38+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
39+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
40+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
41+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
42+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
43+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
44+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
45+
// 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> (base) (empty)
46+
// CHECK-NEXT: 16 | char [16] padding
47+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
48+
// CHECK-NEXT: nvsize=32, nvalign=8]
49+
50+
//----------------------------------------------------------------------------//
51+
// Local accessor.
52+
//----------------------------------------------------------------------------//
53+
54+
void hostAcc(accessor<int, 1, access::mode::read_write, access::target::local> Acc) {
55+
(void)Acc.get_size();
56+
}
57+
58+
// 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>
59+
// CHECK-NEXT: 0 | class cl::sycl::detail::LocalAccessorBaseHost (base)
60+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::LocalAccessorImplHost> impl
61+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::LocalAccessorImplHost, __gnu_cxx::_S_atomic> (base)
62+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::LocalAccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
63+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::LocalAccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
64+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
65+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
66+
// 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> (base) (empty)
67+
// CHECK-NEXT: 16 | char [16] padding
68+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
69+
// CHECK-NEXT: nvsize=32, nvalign=8]
70+
71+
//----------------------------------------------------------------------------//
72+
// Host image accessor.
73+
//----------------------------------------------------------------------------//
74+
75+
void hostAcc(accessor<int4, 1, access::mode::read_write, access::target::host_image> Acc) {
76+
(void)Acc.get_count();
77+
}
78+
// CHECK: 0 | class cl::sycl::accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::host_image, cl::sycl::access::placeholder::false_t>
79+
// CHECK-NEXT: 0 | class cl::sycl::detail::image_accessor<class cl::sycl::vec<int, 4>, 1, cl::sycl::access::mode::read_write, cl::sycl::access::target::host_image, cl::sycl::access::placeholder::false_t> (base)
80+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
81+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
82+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
83+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
84+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
85+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
86+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
87+
// CHECK-NEXT: 16 | size_t MImageCount
88+
// CHECK-NEXT: 24 | enum cl::sycl::image_channel_order MImgChannelOrder
89+
// CHECK-NEXT: 28 | enum cl::sycl::image_channel_type MImgChannelType
90+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
91+
// CHECK-NEXT: nvsize=32, nvalign=8]
92+
93+
//----------------------------------------------------------------------------//
94+
// Image accessor.
95+
//----------------------------------------------------------------------------//
96+
97+
void hostAcc(accessor<int4, 1, access::mode::read, access::target::image> Acc) {
98+
(void)Acc.get_count();
99+
}
100+
// 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>
101+
// 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)
102+
// CHECK-NEXT: 0 | class cl::sycl::detail::AccessorBaseHost (base)
103+
// CHECK-NEXT: 0 | class std::shared_ptr<class cl::sycl::detail::AccessorImplHost> impl
104+
// CHECK-NEXT: 0 | class std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic> (base)
105+
// CHECK-NEXT: 0 | class std::__shared_ptr_access<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic, false, false> (base) (empty)
106+
// CHECK-NEXT: 0 | std::__shared_ptr<class cl::sycl::detail::AccessorImplHost, __gnu_cxx::_S_atomic>::element_type * _M_ptr
107+
// CHECK-NEXT: 8 | class std::__shared_count<__gnu_cxx::_S_atomic> _M_refcount
108+
// CHECK-NEXT: 8 | _Sp_counted_base<(enum __gnu_cxx::_Lock_policy)2U> * _M_pi
109+
// CHECK-NEXT: 16 | size_t MImageCount
110+
// CHECK-NEXT: 24 | enum cl::sycl::image_channel_order MImgChannelOrder
111+
// CHECK-NEXT: 28 | enum cl::sycl::image_channel_type MImgChannelType
112+
// CHECK-NEXT: [sizeof=32, dsize=32, align=8,
113+
// CHECK-NEXT: nvsize=32, nvalign=8]

0 commit comments

Comments
 (0)