10
10
11
11
#include < sycl/detail/cl.h>
12
12
#include < sycl/detail/common.hpp>
13
+ #include < sycl/detail/defines_elementary.hpp>
13
14
14
15
#include < cstddef>
15
16
#include < cstdint>
@@ -62,6 +63,22 @@ class half;
62
63
__SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES(N) \
63
64
__SYCL_MAKE_VECTOR_ALIASES_FOR_SIGNED_AND_UNSIGNED_TYPES(N)
64
65
66
+ // FIXME: OpenCL vector aliases are not defined by SYCL 2020 spec and should be
67
+ // removed from here. See intel/llvm#7888
68
+ #define __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (N ) \
69
+ __SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES (N) \
70
+ __SYCL_MAKE_VECTOR_ALIAS(char , std::int8_t , N) \
71
+ __SYCL_MAKE_VECTOR_ALIAS(uchar, std::uint8_t , N) \
72
+ __SYCL_MAKE_VECTOR_ALIAS(short , std::int16_t , N) \
73
+ __SYCL_MAKE_VECTOR_ALIAS(ushort, std::uint16_t , N) \
74
+ __SYCL_MAKE_VECTOR_ALIAS(int , std::int32_t , N) \
75
+ __SYCL_MAKE_VECTOR_ALIAS(uint, std::uint32_t , N) \
76
+ __SYCL_MAKE_VECTOR_ALIAS(long , std::int64_t , N) \
77
+ __SYCL_MAKE_VECTOR_ALIAS(ulong, std::uint64_t , N) \
78
+ __SYCL_MAKE_VECTOR_ALIAS(float , float , N) \
79
+ __SYCL_MAKE_VECTOR_ALIAS(double , double , N) \
80
+ __SYCL_MAKE_VECTOR_ALIAS(half, half, N)
81
+
65
82
namespace sycl {
66
83
__SYCL_INLINE_VER_NAMESPACE (_V1) {
67
84
using byte __SYCL2020_DEPRECATED (" use std::byte instead" ) = std::uint8_t ;
@@ -73,6 +90,9 @@ using ulong = unsigned long;
73
90
using longlong = long long ;
74
91
using ulonglong = unsigned long long ;
75
92
using half = sycl::detail::half_impl::half;
93
+
94
+ // FIXME: SYCL 2020 spec says that cl_* aliases should reside in sycl::opencl
95
+ // namespace.
76
96
using cl_bool = bool ;
77
97
using cl_char = std::int8_t ;
78
98
using cl_uchar = std::uint8_t ;
@@ -86,11 +106,20 @@ using cl_half = half;
86
106
using cl_float = float ;
87
107
using cl_double = double ;
88
108
109
+ // Vector aliases are different between SYCL 1.2.1 and SYCL 2020
110
+ #if SYCL_LANGUAGE_VERSION >= 202001
111
+ __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (2 )
112
+ __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (3 )
113
+ __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (4 )
114
+ __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (8 )
115
+ __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (16 )
116
+ #else
89
117
__SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (2 )
90
118
__SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (3 )
91
119
__SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (4 )
92
120
__SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (8 )
93
121
__SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH (16 )
122
+ #endif
94
123
} // __SYCL_INLINE_VER_NAMESPACE(_V1)
95
124
} // namespace sycl
96
125
@@ -99,3 +128,4 @@ __SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH(16)
99
128
#undef __SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES
100
129
#undef __SYCL_MAKE_VECTOR_ALIASES_FOR_SIGNED_AND_UNSIGNED_TYPES
101
130
#undef __SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH
131
+ #undef __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH
0 commit comments