20 template <
typename T,
int N>
class vec;
21 namespace detail::half_impl {
27 #define __SYCL_MAKE_VECTOR_ALIAS(ALIAS, TYPE, N) \
28 using ALIAS##N = sycl::vec<TYPE, N>;
30 #define __SYCL_MAKE_VECTOR_ALIASES_FOR_ARITHMETIC_TYPES(N) \
31 __SYCL_MAKE_VECTOR_ALIAS(char, char, N) \
32 __SYCL_MAKE_VECTOR_ALIAS(short, short, N) \
33 __SYCL_MAKE_VECTOR_ALIAS(int, int, N) \
34 __SYCL_MAKE_VECTOR_ALIAS(long, long, N) \
35 __SYCL_MAKE_VECTOR_ALIAS(float, float, N) \
36 __SYCL_MAKE_VECTOR_ALIAS(double, double, N) \
37 __SYCL_MAKE_VECTOR_ALIAS(half, half, N)
39 #define __SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES(N) \
40 __SYCL_MAKE_VECTOR_ALIAS(cl_char, sycl::cl_char, N) \
41 __SYCL_MAKE_VECTOR_ALIAS(cl_uchar, sycl::cl_uchar, N) \
42 __SYCL_MAKE_VECTOR_ALIAS(cl_short, sycl::cl_short, N) \
43 __SYCL_MAKE_VECTOR_ALIAS(cl_ushort, sycl::cl_ushort, N) \
44 __SYCL_MAKE_VECTOR_ALIAS(cl_int, sycl::cl_int, N) \
45 __SYCL_MAKE_VECTOR_ALIAS(cl_uint, sycl::cl_uint, N) \
46 __SYCL_MAKE_VECTOR_ALIAS(cl_long, sycl::cl_long, N) \
47 __SYCL_MAKE_VECTOR_ALIAS(cl_ulong, sycl::cl_ulong, N) \
48 __SYCL_MAKE_VECTOR_ALIAS(cl_float, sycl::cl_float, N) \
49 __SYCL_MAKE_VECTOR_ALIAS(cl_double, sycl::cl_double, N) \
50 __SYCL_MAKE_VECTOR_ALIAS(cl_half, sycl::cl_half, N)
52 #define __SYCL_MAKE_VECTOR_ALIASES_FOR_SIGNED_AND_UNSIGNED_TYPES(N) \
53 __SYCL_MAKE_VECTOR_ALIAS(schar, signed char, N) \
54 __SYCL_MAKE_VECTOR_ALIAS(uchar, unsigned char, N) \
55 __SYCL_MAKE_VECTOR_ALIAS(ushort, unsigned short, N) \
56 __SYCL_MAKE_VECTOR_ALIAS(uint, unsigned int, N) \
57 __SYCL_MAKE_VECTOR_ALIAS(ulong, unsigned long, N) \
58 __SYCL_MAKE_VECTOR_ALIAS(longlong, long long, N) \
59 __SYCL_MAKE_VECTOR_ALIAS(ulonglong, unsigned long long, N)
61 #define __SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH(N) \
62 __SYCL_MAKE_VECTOR_ALIASES_FOR_ARITHMETIC_TYPES(N) \
63 __SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES(N) \
64 __SYCL_MAKE_VECTOR_ALIASES_FOR_SIGNED_AND_UNSIGNED_TYPES(N)
72 #define __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH(N) \
73 __SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES(N) \
74 __SYCL_MAKE_VECTOR_ALIAS(schar, std::int8_t, N) \
75 __SYCL_MAKE_VECTOR_ALIAS(longlong, std::int64_t, N) \
76 __SYCL_MAKE_VECTOR_ALIAS(ulonglong, std::uint64_t, N) \
77 __SYCL_MAKE_VECTOR_ALIAS(char, std::int8_t, N) \
78 __SYCL_MAKE_VECTOR_ALIAS(uchar, std::uint8_t, N) \
79 __SYCL_MAKE_VECTOR_ALIAS(short, std::int16_t, N) \
80 __SYCL_MAKE_VECTOR_ALIAS(ushort, std::uint16_t, N) \
81 __SYCL_MAKE_VECTOR_ALIAS(int, std::int32_t, N) \
82 __SYCL_MAKE_VECTOR_ALIAS(uint, std::uint32_t, N) \
83 __SYCL_MAKE_VECTOR_ALIAS(long, std::int64_t, N) \
84 __SYCL_MAKE_VECTOR_ALIAS(ulong, std::uint64_t, N) \
85 __SYCL_MAKE_VECTOR_ALIAS(float, float, N) \
86 __SYCL_MAKE_VECTOR_ALIAS(double, double, N) \
87 __SYCL_MAKE_VECTOR_ALIAS(half, half, N)
134 #if SYCL_LANGUAGE_VERSION >= 202001
150 #undef __SYCL_MAKE_VECTOR_ALIAS
151 #undef __SYCL_MAKE_VECTOR_ALIASES_FOR_ARITHMETIC_TYPES
152 #undef __SYCL_MAKE_VECTOR_ALIASES_FOR_OPENCL_TYPES
153 #undef __SYCL_MAKE_VECTOR_ALIASES_FOR_SIGNED_AND_UNSIGNED_TYPES
154 #undef __SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH
155 #undef __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH
#define __SYCL_2020_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH(N)
#define __SYCL_MAKE_VECTOR_ALIASES_FOR_VECTOR_LENGTH(N)
#define __SYCL_INLINE_VER_NAMESPACE(X)
#define __SYCL2020_DEPRECATED(message)
conditional< sizeof(long)==8, long, long long >::type int64_t
unsigned long long ulonglong
sycl::detail::half_impl::half half
---— Error handling, matching OpenCL plugin semantics.