From 445976f4dfc3f4f22117d6a0f9b40d3b84202bbc Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 1 Oct 2020 10:36:26 +0300 Subject: [PATCH] [SYCL][NFC] Cover more classes with ABI tests Check host layout of vec, item, nd_item, id and range --- sycl/test/abi/layout_array.cpp | 84 ++++++++++++++++++++++++++++++++++ sycl/test/abi/layout_vec.cpp | 22 +++++++++ 2 files changed, 106 insertions(+) create mode 100644 sycl/test/abi/layout_array.cpp create mode 100644 sycl/test/abi/layout_vec.cpp diff --git a/sycl/test/abi/layout_array.cpp b/sycl/test/abi/layout_array.cpp new file mode 100644 index 0000000000000..5e3c44d329a3f --- /dev/null +++ b/sycl/test/abi/layout_array.cpp @@ -0,0 +1,84 @@ +// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// REQUIRES: linux + +// clang-format off + +// TODO fix individual headers and include them instead of sycl.hpp +#include + + +void range(sycl::range<2>) {} + +// CHECK: 0 | class cl::sycl::range<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 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] + +//---------------------------- + +void item(sycl::item<2>) {} + +// CHECK: 0 | class cl::sycl::item<2, true> +// CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl +// CHECK-NEXT: 0 | class cl::sycl::range<2> MExtent +// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 0 | size_t [2] common_array +// CHECK-NEXT: 16 | class cl::sycl::id<2> MIndex +// 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> MOffset +// 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] + +//---------------------------- + +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 +// CHECK-NEXT: 0 | struct cl::sycl::detail::ItemBase<2, true> MImpl +// CHECK-NEXT: 0 | class cl::sycl::range<2> MExtent +// CHECK-NEXT: 0 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 0 | size_t [2] common_array +// CHECK-NEXT: 16 | class cl::sycl::id<2> MIndex +// 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> MOffset +// CHECK-NEXT: 32 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 32 | size_t [2] common_array +// CHECK-NEXT: 48 | class cl::sycl::item<2, false> localItem +// CHECK-NEXT: 48 | struct cl::sycl::detail::ItemBase<2, false> MImpl +// CHECK-NEXT: 48 | class cl::sycl::range<2> MExtent +// CHECK-NEXT: 48 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 48 | size_t [2] common_array +// CHECK-NEXT: 64 | class cl::sycl::id<2> MIndex +// CHECK-NEXT: 64 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 64 | size_t [2] common_array +// CHECK-NEXT: 80 | class cl::sycl::group<2> Group +// CHECK-NEXT: 80 | class cl::sycl::range<2> globalRange +// CHECK-NEXT: 80 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 80 | size_t [2] common_array +// CHECK-NEXT: 96 | class cl::sycl::range<2> localRange +// CHECK-NEXT: 96 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 96 | size_t [2] common_array +// CHECK-NEXT: 112 | class cl::sycl::range<2> groupRange +// CHECK-NEXT: 112 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 112 | size_t [2] common_array +// CHECK-NEXT: 128 | class cl::sycl::id<2> index +// CHECK-NEXT: 128 | class cl::sycl::detail::array<2> (base) +// CHECK-NEXT: 128 | size_t [2] common_array +// CHECK-NEXT: | [sizeof=144, dsize=144, align=8, +// CHECK-NEXT: | nvsize=144, nvalign=8] diff --git a/sycl/test/abi/layout_vec.cpp b/sycl/test/abi/layout_vec.cpp new file mode 100644 index 0000000000000..957f17054c971 --- /dev/null +++ b/sycl/test/abi/layout_vec.cpp @@ -0,0 +1,22 @@ +// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s | FileCheck %s +// REQUIRES: linux + +// clang-format off + +#include + +void foo(sycl::vec) {} + +// CHECK: 0 | class cl::sycl::vec +// CHECK-NEXT: 0 | cl::sycl::vec::DataType m_Data +// CHECK-NEXT: | [sizeof=16, dsize=16, align=16, +// CHECK-NEXT: | nvsize=16, nvalign=16] + +//-------------------------------------- + +void foo(sycl::vec) {} + +// CHECK: 0 | class cl::sycl::vec<_Bool, 16> +// CHECK-NEXT: 0 | cl::sycl::vec<_Bool, 16>::DataType m_Data +// CHECK-NEXT: | [sizeof=16, dsize=16, align=16, +// CHECK-NEXT: | nvsize=16, nvalign=16]