DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::ext::oneapi::experimental::detail Namespace Reference

Classes

struct  has_uniform_signature
 
struct  is_instance_of_tmpl_int
 
struct  is_instance_of_tmpl_int< T< N >, Tmpl >
 
struct  is_instance_of_tmpl_int_bool
 
struct  is_instance_of_tmpl_int_bool< T< N, X >, Tmpl >
 
struct  is_simd_or_mask_type
 
struct  is_simd_or_mask_type< simd< T, N > >
 
struct  is_simd_or_mask_type< simd_mask< T, N > >
 
struct  is_uniform_type
 
struct  is_uniform_type< uniform< T > >
 
struct  sg_size
 
struct  simd2spmd
 
struct  simd2spmd< simd< T, N > >
 
struct  simd2spmd< std::tuple< T... > >
 
struct  simd2spmd< T, std::enable_if_t< std::is_arithmetic_v< T > > >
 
struct  simd2spmd< uniform< T > >
 
struct  spmd2simd
 
struct  spmd2simd< std::tuple< T... >, N >
 
struct  spmd2simd< T, N, std::enable_if_t< std::is_arithmetic_v< T > > >
 
struct  spmd2simd< uniform< T >, N >
 
struct  unwrap_uniform
 
struct  unwrap_uniform< uniform< T > >
 

Typedefs

template<int N, class SimdCallable , class... SpmdArgs>
using SimdRetType = std::invoke_result_t< SimdCallable, typename spmd2simd< SpmdArgs, N >::type... >
 
template<int N, class SimdCallable , class... SpmdArgs>
using SpmdRetType = typename simd2spmd< SimdRetType< N, SimdCallable, SpmdArgs... > >::type
 

Functions

template<class SimdCallable , class... SpmdArgs>
static constexpr int get_sg_size ()
 
template<int N, class Callable , class... T>
__regcall detail::SimdRetType< N, Callable, T... > simd_call_helper (const void *obj_ptr, typename detail::spmd2simd< T, N >::type... simd_args)
 

Variables

template<class Callable >
static constexpr bool is_function_ptr_or_ref_v
 
template<class T , template< int > class Tmpl>
static constexpr bool is_instance_of_tmpl_int_v
 
template<class T , template< int, bool > class Tmpl>
static constexpr bool is_instance_of_tmpl_int_bool_v
 

Typedef Documentation

◆ SimdRetType

template<int N, class SimdCallable , class... SpmdArgs>
using sycl::ext::oneapi::experimental::detail::SimdRetType = typedef std::invoke_result_t<SimdCallable, typename spmd2simd<SpmdArgs, N>::type...>

Definition at line 203 of file invoke_simd.hpp.

◆ SpmdRetType

template<int N, class SimdCallable , class... SpmdArgs>
using sycl::ext::oneapi::experimental::detail::SpmdRetType = typedef typename simd2spmd<SimdRetType<N, SimdCallable, SpmdArgs...> >::type

Definition at line 208 of file invoke_simd.hpp.

Function Documentation

◆ get_sg_size()

template<class SimdCallable , class... SpmdArgs>
static constexpr int sycl::ext::oneapi::experimental::detail::get_sg_size ( )
staticconstexpr

Definition at line 211 of file invoke_simd.hpp.

Referenced by sycl::ext::oneapi::experimental::__attribute__().

◆ simd_call_helper()

template<int N, class Callable , class... T>
__regcall detail::SimdRetType<N, Callable, T...> sycl::ext::oneapi::experimental::detail::simd_call_helper ( const void *  obj_ptr,
typename detail::spmd2simd< T, N >::type...  simd_args 
)

Definition at line 224 of file invoke_simd.hpp.

Variable Documentation

◆ is_function_ptr_or_ref_v

template<class Callable >
constexpr bool sycl::ext::oneapi::experimental::detail::is_function_ptr_or_ref_v
staticconstexpr
Initial value:
=
std::is_function_v<std::remove_pointer_t<std::remove_reference_t<Callable>>>

Definition at line 265 of file invoke_simd.hpp.

◆ is_instance_of_tmpl_int_bool_v

template<class T , template< int, bool > class Tmpl>
constexpr bool sycl::ext::oneapi::experimental::detail::is_instance_of_tmpl_int_bool_v
inlinestaticconstexpr
Initial value:
=
is_instance_of_tmpl_int_bool<T, Tmpl>::value

Definition at line 65 of file uniform.hpp.

◆ is_instance_of_tmpl_int_v

template<class T , template< int > class Tmpl>
constexpr bool sycl::ext::oneapi::experimental::detail::is_instance_of_tmpl_int_v
inlinestaticconstexpr
Initial value:
=
is_instance_of_tmpl_int<T, Tmpl>::value

Definition at line 54 of file uniform.hpp.