#include <CL/sycl/detail/generic_type_traits.hpp>
#include <CL/sycl/access/access.hpp>
#include <CL/sycl/aliases.hpp>
#include <CL/sycl/detail/common.hpp>
#include <CL/sycl/detail/helpers.hpp>
#include <CL/sycl/detail/type_traits.hpp>
#include <CL/sycl/half_type.hpp>
#include <CL/sycl/marray.hpp>
#include <CL/sycl/multi_ptr.hpp>
#include <array>
#include <cmath>
#include <cstring>
#include <cfenv>
#include "swizzles.def"
Go to the source code of this file.
Namespaces | |
cl | |
We provide new interfaces for matrix muliply in this patch: | |
cl::sycl | |
cl::sycl::detail | |
Typedefs | |
template<typename DataT > | |
using | cl::sycl::detail::rel_t = typename detail::conditional_t< sizeof(DataT)==sizeof(cl_char), cl_char, typename detail::conditional_t< sizeof(DataT)==sizeof(cl_short), cl_short, typename detail::conditional_t< sizeof(DataT)==sizeof(cl_int), cl_int, typename detail::conditional_t< sizeof(DataT)==sizeof(cl_long), cl_long, bool > >> > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_int_to_int = std::integral_constant< bool, std::is_integral< T >::value &&std::is_integral< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_sint_to_sint = std::integral_constant< bool, is_sigeninteger< T >::value &&is_sigeninteger< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_uint_to_uint = std::integral_constant< bool, is_sugeninteger< T >::value &&is_sugeninteger< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_sint_to_from_uint = std::integral_constant< bool,(is_sugeninteger< T >::value &&is_sigeninteger< R >::value)||(is_sigeninteger< T >::value &&is_sugeninteger< R >::value)> |
template<typename T , typename R > | |
using | cl::sycl::detail::is_sint_to_float = std::integral_constant< bool, std::is_integral< T >::value &&!(std::is_unsigned< T >::value) &&detail::is_floating_point< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_uint_to_float = std::integral_constant< bool, std::is_unsigned< T >::value &&detail::is_floating_point< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_int_to_float = std::integral_constant< bool, std::is_integral< T >::value &&detail::is_floating_point< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_float_to_int = std::integral_constant< bool, detail::is_floating_point< T >::value &&std::is_integral< R >::value > |
template<typename T , typename R > | |
using | cl::sycl::detail::is_float_to_float = std::integral_constant< bool, detail::is_floating_point< T >::value &&detail::is_floating_point< R >::value > |
template<typename T > | |
using | cl::sycl::detail::is_standard_type = std::integral_constant< bool, detail::is_sgentype< T >::value > |
template<typename T > | |
using | cl::sycl::vec_data = detail::vec_helper< T > |
template<typename T > | |
using | cl::sycl::vec_data_t = typename detail::vec_helper< T >::RetType |
using | __half_t = cl::sycl::detail::half_impl::StorageT |
using | __half2_vec_t = cl::sycl::detail::half_impl::Vec2StorageT |
using | __half3_vec_t = cl::sycl::detail::half_impl::Vec3StorageT |
using | __half4_vec_t = cl::sycl::detail::half_impl::Vec4StorageT |
using | __half8_vec_t = cl::sycl::detail::half_impl::Vec8StorageT |
using | __half16_vec_t = cl::sycl::detail::half_impl::Vec16StorageT |
template<typename T , typename T8 , typename T16 , typename T32 , typename T64 > | |
using | cl::sycl::detail::select_apply_cl_t = conditional_t< sizeof(T)==1, T8, conditional_t< sizeof(T)==2, T16, conditional_t< sizeof(T)==4, T32, T64 > >> |
Enumerations | |
enum | cl::sycl::rounding_mode { cl::sycl::rounding_mode::automatic = 0, cl::sycl::rounding_mode::rte = 1, cl::sycl::rounding_mode::rtz = 2, cl::sycl::rounding_mode::rtp = 3, cl::sycl::rounding_mode::rtn = 4 } |
Functions | |
template<typename T , typename R , rounding_mode roundingMode, typename OpenCLT , typename OpenCLR > | |
detail::enable_if_t< std::is_same< T, R >::value, R > | cl::sycl::detail::convertImpl (T Value) |
template<typename T , typename R , rounding_mode roundingMode, typename OpenCLT , typename OpenCLR > | |
detail::enable_if_t<!std::is_same< T, R >::value &&(is_int_to_int< T, R >::value||is_int_to_float< T, R >::value||is_float_to_float< T, R >::value), R > | cl::sycl::detail::convertImpl (T Value) |
template<typename T , typename R , rounding_mode roundingMode, typename OpenCLT , typename OpenCLR > | |
detail::enable_if_t< is_float_to_int< T, R >::value, R > | cl::sycl::detail::convertImpl (T Value) |
template<typename T > | |
struct | cl::sycl::detail::__SYCL2020_DEPRECATED ("This type isn't device copyable in SYCL 2020") IsDeprecatedDeviceCopyable< T |
#define __SYCL_ALIGNED_VAR | ( | type, | |
x, | |||
var | |||
) | alignas(x) type var |
#define __SYCL_ALLOW_VECTOR_SIZES | ( | num_elements | ) |
#define __SYCL_ALLOW_VECTOR_TYPES | ( | num_elements | ) |
#define __SYCL_BINOP | ( | BINOP, | |
OPASSIGN | |||
) |
#define __SYCL_DECLARE_BOOL_CONVERTER | ( | num | ) |
#define __SYCL_DECLARE_BOOL_VECTOR_CONVERTERS |
#define __SYCL_DECLARE_CONVERTER | ( | base, | |
num | |||
) |
#define __SYCL_DECLARE_FLOAT_CONVERTER | ( | base, | |
num | |||
) |
#define __SYCL_DECLARE_FLOAT_VECTOR_CONVERTERS | ( | base | ) |
#define __SYCL_DECLARE_HALF_CONVERTER | ( | base, | |
num | |||
) |
#define __SYCL_DECLARE_HALF_VECTOR_CONVERTERS | ( | base | ) |
#define __SYCL_DECLARE_LONGLONG_CONVERTER | ( | base, | |
num | |||
) |
#define __SYCL_DECLARE_SCALAR_BOOL_CONVERTER |
#define __SYCL_DECLARE_SCALAR_CONVERTER | ( | base | ) |
#define __SYCL_DECLARE_SCALAR_SCHAR_CONVERTER |
#define __SYCL_DECLARE_SCHAR_CONVERTER | ( | num | ) |
#define __SYCL_DECLARE_SCHAR_VECTOR_CONVERTERS |
#define __SYCL_DECLARE_SIGNED_INTEGRAL_CONVERTER | ( | base, | |
num | |||
) |
#define __SYCL_DECLARE_SIGNED_INTEGRAL_VECTOR_CONVERTERS | ( | base | ) |
#define __SYCL_DECLARE_UNSIGNED_INTEGRAL_CONVERTER | ( | base, | |
num | |||
) |
#define __SYCL_DECLARE_UNSIGNED_INTEGRAL_VECTOR_CONVERTERS | ( | base | ) |
#define __SYCL_DECLARE_VECTOR_CONVERTERS | ( | base | ) |
#define __SYCL_DECLARE_VECTOR_LONGLONG_CONVERTERS | ( | base | ) |
#define __SYCL_GET_CL_HALF_TYPE | ( | target, | |
num | |||
) | __##target##num##_vec_t |
#define __SYCL_GET_CL_TYPE | ( | target, | |
num | |||
) | ::cl_##target##num |
#define __SYCL_GET_SCALAR_CL_TYPE | ( | target | ) | ::cl_##target |
#define __SYCL_OPASSIGN | ( | OPASSIGN, | |
OP | |||
) |
#define __SYCL_RELLOGOP | ( | RELLOGOP | ) |
#define __SYCL_UOP | ( | UOP, | |
OPASSIGN | |||
) |
#define __SYCL_UOP | ( | UOP, | |
OPASSIGN | |||
) |
#define SYCL_DEVICE_COPYABLE 1 |