Skip to content

Commit dceaeaa

Browse files
author
Alexander Batashev
authored
[SYCL][NFC] Cover more classes with ABI tests (#2577)
Check host layout of vec, item, nd_item, id and range
1 parent c25dcdf commit dceaeaa

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed

Diff for: sycl/test/abi/layout_array.cpp

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
2+
// REQUIRES: linux
3+
4+
// clang-format off
5+
6+
// TODO fix individual headers and include them instead of sycl.hpp
7+
#include <CL/sycl.hpp>
8+
9+
10+
void range(sycl::range<2>) {}
11+
12+
// CHECK: 0 | class cl::sycl::range<2>
13+
// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base)
14+
// CHECK-NEXT: 0 | size_t [2] common_array
15+
// CHECK-NEXT: | [sizeof=16, dsize=16, align=8,
16+
// CHECK-NEXT: | nvsize=16, nvalign=8]
17+
18+
//----------------------------
19+
20+
void id(sycl::id<2>) {}
21+
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]
27+
28+
//----------------------------
29+
30+
void item(sycl::item<2>) {}
31+
32+
// CHECK: 0 | class cl::sycl::item<2, true>
33+
// CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl
34+
// CHECK-NEXT: 0 | class cl::sycl::range<2> MExtent
35+
// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base)
36+
// CHECK-NEXT: 0 | size_t [2] common_array
37+
// CHECK-NEXT: 16 | class cl::sycl::id<2> MIndex
38+
// CHECK-NEXT: 16 | class cl::sycl::detail::array<2> (base)
39+
// CHECK-NEXT: 16 | size_t [2] common_array
40+
// CHECK-NEXT: 32 | class cl::sycl::id<2> MOffset
41+
// CHECK-NEXT: 32 | class cl::sycl::detail::array<2> (base)
42+
// CHECK-NEXT: 32 | size_t [2] common_array
43+
// CHECK-NEXT: | [sizeof=48, dsize=48, align=8,
44+
// CHECK-NEXT: | nvsize=48, nvalign=8]
45+
46+
//----------------------------
47+
48+
void nd_item(sycl::nd_item<2>) {}
49+
50+
// CHECK: 0 | class cl::sycl::nd_item<2>
51+
// CHECK-NEXT: 0 | class cl::sycl::item<2, true> globalItem
52+
// CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl
53+
// CHECK-NEXT: 0 | class cl::sycl::range<2> MExtent
54+
// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base)
55+
// CHECK-NEXT: 0 | size_t [2] common_array
56+
// CHECK-NEXT: 16 | class cl::sycl::id<2> MIndex
57+
// CHECK-NEXT: 16 | class cl::sycl::detail::array<2> (base)
58+
// CHECK-NEXT: 16 | size_t [2] common_array
59+
// CHECK-NEXT: 32 | class cl::sycl::id<2> MOffset
60+
// CHECK-NEXT: 32 | class cl::sycl::detail::array<2> (base)
61+
// CHECK-NEXT: 32 | size_t [2] common_array
62+
// CHECK-NEXT: 48 | class cl::sycl::item<2, false> localItem
63+
// CHECK-NEXT: 48 | struct cl::sycl::detail::ItemBase<2, false> MImpl
64+
// CHECK-NEXT: 48 | class cl::sycl::range<2> MExtent
65+
// CHECK-NEXT: 48 | class cl::sycl::detail::array<2> (base)
66+
// CHECK-NEXT: 48 | size_t [2] common_array
67+
// CHECK-NEXT: 64 | class cl::sycl::id<2> MIndex
68+
// CHECK-NEXT: 64 | class cl::sycl::detail::array<2> (base)
69+
// CHECK-NEXT: 64 | size_t [2] common_array
70+
// CHECK-NEXT: 80 | class cl::sycl::group<2> Group
71+
// CHECK-NEXT: 80 | class cl::sycl::range<2> globalRange
72+
// CHECK-NEXT: 80 | class cl::sycl::detail::array<2> (base)
73+
// CHECK-NEXT: 80 | size_t [2] common_array
74+
// CHECK-NEXT: 96 | class cl::sycl::range<2> localRange
75+
// CHECK-NEXT: 96 | class cl::sycl::detail::array<2> (base)
76+
// CHECK-NEXT: 96 | size_t [2] common_array
77+
// CHECK-NEXT: 112 | class cl::sycl::range<2> groupRange
78+
// CHECK-NEXT: 112 | class cl::sycl::detail::array<2> (base)
79+
// CHECK-NEXT: 112 | size_t [2] common_array
80+
// CHECK-NEXT: 128 | class cl::sycl::id<2> index
81+
// CHECK-NEXT: 128 | class cl::sycl::detail::array<2> (base)
82+
// CHECK-NEXT: 128 | size_t [2] common_array
83+
// CHECK-NEXT: | [sizeof=144, dsize=144, align=8,
84+
// CHECK-NEXT: | nvsize=144, nvalign=8]

Diff for: sycl/test/abi/layout_vec.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s
2+
// REQUIRES: linux
3+
4+
// clang-format off
5+
6+
#include <CL/sycl/types.hpp>
7+
8+
void foo(sycl::vec<int, 4>) {}
9+
10+
// CHECK: 0 | class cl::sycl::vec<int, 4>
11+
// CHECK-NEXT: 0 | cl::sycl::vec<int, 4>::DataType m_Data
12+
// CHECK-NEXT: | [sizeof=16, dsize=16, align=16,
13+
// CHECK-NEXT: | nvsize=16, nvalign=16]
14+
15+
//--------------------------------------
16+
17+
void foo(sycl::vec<bool, 16>) {}
18+
19+
// CHECK: 0 | class cl::sycl::vec<_Bool, 16>
20+
// CHECK-NEXT: 0 | cl::sycl::vec<_Bool, 16>::DataType m_Data
21+
// CHECK-NEXT: | [sizeof=16, dsize=16, align=16,
22+
// CHECK-NEXT: | nvsize=16, nvalign=16]

0 commit comments

Comments
 (0)