|
17 | 17 | namespace sycl {
|
18 | 18 | __SYCL_INLINE_VER_NAMESPACE(_V1) {
|
19 | 19 |
|
20 |
| -template <std::size_t N, typename T> constexpr std::size_t vecAlignment() { |
21 |
| - static_assert(N > 0, "Invalid number of elements."); |
22 |
| - constexpr size_t SizeOfT = sizeof(T); |
23 |
| - static_assert(SizeOfT > 0, "Invalid size of T."); |
24 |
| - // First find the "previous" vector num elements. |
25 |
| - size_t res = N >= 16 ? 16 |
26 |
| - : N >= 8 ? 8 |
27 |
| - : N >= 4 ? 4 |
28 |
| - : N >= 3 ? 3 |
29 |
| - : N >= 2 ? 2 |
30 |
| - : 1; |
31 |
| - // Then calculate the alignment size in bytes, making sure it's power of 2. |
32 |
| - res *= SizeOfT; |
33 |
| - res--; |
34 |
| - res |= res >> 1; |
35 |
| - res |= res >> 2; |
36 |
| - res |= res >> 4; |
37 |
| - res |= res >> 8; |
38 |
| - res |= res >> 16; |
39 |
| - res++; |
40 |
| - return res; |
41 |
| -} |
42 |
| - |
43 |
| -#if defined(_WIN32) || defined(_WIN64) |
44 |
| -#define MARRAY_WINDOWS_ALIGN_ATTR \ |
45 |
| - __declspec(align(vecAlignment<NumElements, Type>())) |
46 |
| -#define MARRAY_LINUX_ALIGN_ATTR |
47 |
| -#else |
48 |
| -#define MARRAY_WINDOWS_ALIGN_ATTR |
49 |
| -#define MARRAY_LINUX_ALIGN_ATTR \ |
50 |
| - __attribute__((aligned(vecAlignment<NumElements, Type>()))) |
51 |
| -#endif |
52 |
| - |
53 |
| -/// Provides a cross-patform math array class template that works on |
| 20 | +/// Provides a cross-platform math array class template that works on |
54 | 21 | /// SYCL devices as well as in host C++ code.
|
55 | 22 | ///
|
56 | 23 | /// \ingroup sycl_api
|
57 |
| -template <typename Type, std::size_t NumElements> |
58 |
| -class MARRAY_WINDOWS_ALIGN_ATTR marray { |
| 24 | +template <typename Type, std::size_t NumElements> class marray { |
59 | 25 | using DataT = Type;
|
60 | 26 |
|
61 | 27 | public:
|
@@ -332,7 +298,7 @@ class MARRAY_WINDOWS_ALIGN_ATTR marray {
|
332 | 298 | }
|
333 | 299 | return Ret;
|
334 | 300 | }
|
335 |
| -} MARRAY_LINUX_ALIGN_ATTR; |
| 301 | +}; |
336 | 302 |
|
337 | 303 | #define __SYCL_MAKE_MARRAY_ALIAS(ALIAS, TYPE, N) \
|
338 | 304 | using ALIAS##N = sycl::marray<TYPE, N>;
|
@@ -370,8 +336,5 @@ __SYCL_MAKE_MARRAY_ALIASES_FOR_MARRAY_LENGTH(16)
|
370 | 336 | #undef __SYCL_MAKE_MARRAY_ALIASES_FOR_SIGNED_AND_UNSIGNED_TYPES
|
371 | 337 | #undef __SYCL_MAKE_MARRAY_ALIASES_FOR_MARRAY_LENGTH
|
372 | 338 |
|
373 |
| -#undef MARRAY_LINUX_ALIGN_ATTR |
374 |
| -#undef MARRAY_WINDOWS_ALIGN_ATTR |
375 |
| - |
376 | 339 | } // __SYCL_INLINE_VER_NAMESPACE(_V1)
|
377 | 340 | } // namespace sycl
|
0 commit comments