|
12 | 12 | #include <sycl/sycl.hpp>
|
13 | 13 | using namespace sycl;
|
14 | 14 |
|
| 15 | +#define CHECK_ALIAS_BY_SIZE(ALIAS_MTYPE, ELEM_TYPE, MARRAY_SIZE) \ |
| 16 | + static_assert(std::is_same_v<sycl::marray<ELEM_TYPE, MARRAY_SIZE>, \ |
| 17 | + sycl::ALIAS_MTYPE##MARRAY_SIZE>); |
| 18 | + |
| 19 | +#define CHECK_ALIAS(ALIAS_MTYPE, ELEM_TYPE) \ |
| 20 | + CHECK_ALIAS_BY_SIZE(ALIAS_MTYPE, ELEM_TYPE, 2) \ |
| 21 | + CHECK_ALIAS_BY_SIZE(ALIAS_MTYPE, ELEM_TYPE, 3) \ |
| 22 | + CHECK_ALIAS_BY_SIZE(ALIAS_MTYPE, ELEM_TYPE, 4) \ |
| 23 | + CHECK_ALIAS_BY_SIZE(ALIAS_MTYPE, ELEM_TYPE, 8) \ |
| 24 | + CHECK_ALIAS_BY_SIZE(ALIAS_MTYPE, ELEM_TYPE, 16) |
| 25 | + |
15 | 26 | struct NotDefaultConstructible {
|
16 | 27 | NotDefaultConstructible() = delete;
|
17 | 28 | constexpr NotDefaultConstructible(int){};
|
@@ -60,18 +71,22 @@ int main() {
|
60 | 71 | assert(static_cast<float>(b_marray[2]) == static_cast<float>(0.5));
|
61 | 72 | assert(static_cast<float>(b_marray[3]) == static_cast<float>(0.5));
|
62 | 73 |
|
63 |
| - // Check that [u]long[n] type aliases match marray<[unsigned] long, n> types. |
64 |
| - assert((std::is_same<sycl::marray<long, 2>, sycl::mlong2>::value)); |
65 |
| - assert((std::is_same<sycl::marray<long, 3>, sycl::mlong3>::value)); |
66 |
| - assert((std::is_same<sycl::marray<long, 4>, sycl::mlong4>::value)); |
67 |
| - assert((std::is_same<sycl::marray<long, 8>, sycl::mlong8>::value)); |
68 |
| - assert((std::is_same<sycl::marray<long, 16>, sycl::mlong16>::value)); |
69 |
| - assert((std::is_same<sycl::marray<unsigned long, 2>, sycl::mulong2>::value)); |
70 |
| - assert((std::is_same<sycl::marray<unsigned long, 3>, sycl::mulong3>::value)); |
71 |
| - assert((std::is_same<sycl::marray<unsigned long, 4>, sycl::mulong4>::value)); |
72 |
| - assert((std::is_same<sycl::marray<unsigned long, 8>, sycl::mulong8>::value)); |
73 |
| - assert( |
74 |
| - (std::is_same<sycl::marray<unsigned long, 16>, sycl::mulong16>::value)); |
| 74 | + // Check alias types. |
| 75 | + CHECK_ALIAS(mbool, bool) |
| 76 | + CHECK_ALIAS(mchar, std::int8_t) |
| 77 | + CHECK_ALIAS(mschar, std::int8_t) |
| 78 | + CHECK_ALIAS(muchar, std::uint8_t) |
| 79 | + CHECK_ALIAS(mshort, std::int16_t) |
| 80 | + CHECK_ALIAS(mushort, std::uint16_t) |
| 81 | + CHECK_ALIAS(mint, std::int32_t) |
| 82 | + CHECK_ALIAS(muint, std::uint32_t) |
| 83 | + CHECK_ALIAS(mlong, std::int64_t) |
| 84 | + CHECK_ALIAS(mulong, std::uint64_t) |
| 85 | + CHECK_ALIAS(mlonglong, std::int64_t) |
| 86 | + CHECK_ALIAS(mulonglong, std::uint64_t) |
| 87 | + CHECK_ALIAS(mhalf, sycl::half) |
| 88 | + CHECK_ALIAS(mfloat, float) |
| 89 | + CHECK_ALIAS(mdouble, double) |
75 | 90 |
|
76 | 91 | mint3 t000;
|
77 | 92 | mint3 t222{2};
|
|
0 commit comments