Skip to content

Commit 2934aac

Browse files
author
Alexander Batashev
authored
[SYCL][NFC] Extend ABI tests to cover device code (#2725)
* [SYCL][NFC] Extend ABI tests to cover device code
1 parent 7521fd4 commit 2934aac

File tree

4 files changed

+99
-11
lines changed

4 files changed

+99
-11
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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]

sycl/test/abi/layout_array.cpp

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
2+
// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
23
// REQUIRES: linux
34

45
// clang-format off
@@ -7,7 +8,7 @@
78
#include <CL/sycl.hpp>
89

910

10-
void range(sycl::range<2>) {}
11+
SYCL_EXTERNAL void range(sycl::range<2>) {}
1112

1213
// CHECK: 0 | class cl::sycl::range<2>
1314
// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base)
@@ -17,17 +18,17 @@ void range(sycl::range<2>) {}
1718

1819
//----------------------------
1920

20-
void id(sycl::id<2>) {}
21+
SYCL_EXTERNAL void id(sycl::id<2>) {}
2122

22-
// CHECK: 0 | class cl::sycl::id<3>
23-
// CHECK-NEXT: 0 | class cl::sycl::detail::array<3> (base)
24-
// CHECK-NEXT: 0 | size_t [3] common_array
25-
// CHECK-NEXT: | [sizeof=24, dsize=24, align=8,
26-
// CHECK-NEXT: | nvsize=24, nvalign=8]
23+
// CHECK: 0 | class cl::sycl::id<2>
24+
// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base)
25+
// CHECK-NEXT: 0 | size_t [2] common_array
26+
// CHECK-NEXT: | [sizeof=16, dsize=16, align=8,
27+
// CHECK-NEXT: | nvsize=16, nvalign=8]
2728

2829
//----------------------------
2930

30-
void item(sycl::item<2>) {}
31+
SYCL_EXTERNAL void item(sycl::item<2>) {}
3132

3233
// CHECK: 0 | class cl::sycl::item<2, true>
3334
// CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl
@@ -45,7 +46,7 @@ void item(sycl::item<2>) {}
4546

4647
//----------------------------
4748

48-
void nd_item(sycl::nd_item<2>) {}
49+
SYCL_EXTERNAL void nd_item(sycl::nd_item<2>) {}
4950

5051
// CHECK: 0 | class cl::sycl::nd_item<2>
5152
// CHECK-NEXT: 0 | class cl::sycl::item<2, true> globalItem
@@ -82,3 +83,19 @@ void nd_item(sycl::nd_item<2>) {}
8283
// CHECK-NEXT: 128 | size_t [2] common_array
8384
// CHECK-NEXT: | [sizeof=144, dsize=144, align=8,
8485
// CHECK-NEXT: | nvsize=144, nvalign=8]
86+
87+
//----------------------------
88+
89+
SYCL_EXTERNAL void nd_range(sycl::nd_range<2>) {}
90+
// CHECK: 0 | class cl::sycl::nd_range<2>
91+
// CHECK-NEXT: 0 | class cl::sycl::range<2> globalSize
92+
// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base)
93+
// CHECK-NEXT: 0 | size_t [2] common_array
94+
// CHECK-NEXT: 16 | class cl::sycl::range<2> localSize
95+
// CHECK-NEXT: 16 | class cl::sycl::detail::array<2> (base)
96+
// CHECK-NEXT: 16 | size_t [2] common_array
97+
// CHECK-NEXT: 32 | class cl::sycl::id<2> offset
98+
// CHECK-NEXT: 32 | class cl::sycl::detail::array<2> (base)
99+
// CHECK-NEXT: 32 | size_t [2] common_array
100+
// CHECK-NEXT: | [sizeof=48, dsize=48, align=8,
101+
// CHECK-NEXT: | nvsize=48, nvalign=8]

sycl/test/abi/layout_vec.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
2+
// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
23
// REQUIRES: linux
34

45
// clang-format off
56

67
#include <CL/sycl/types.hpp>
78

8-
void foo(sycl::vec<int, 4>) {}
9+
SYCL_EXTERNAL void foo(sycl::vec<int, 4>) {}
910

1011
// CHECK: 0 | class cl::sycl::vec<int, 4>
1112
// CHECK-NEXT: 0 | cl::sycl::vec<int, 4>::DataType m_Data
@@ -14,7 +15,7 @@ void foo(sycl::vec<int, 4>) {}
1415

1516
//--------------------------------------
1617

17-
void foo(sycl::vec<bool, 16>) {}
18+
SYCL_EXTERNAL void foo(sycl::vec<bool, 16>) {}
1819

1920
// CHECK: 0 | class cl::sycl::vec<_Bool, 16>
2021
// CHECK-NEXT: 0 | cl::sycl::vec<_Bool, 16>::DataType m_Data

0 commit comments

Comments
 (0)