|
template<bool IsFunc, class SpmdRet , class HelperFunc , class... UserSimdFuncAndSpmdArgs, class = std::enable_if_t<!IsFunc>> |
__DPCPP_SYCL_EXTERNAL __regcall SpmdRet | __builtin_invoke_simd (HelperFunc helper, const void *obj, UserSimdFuncAndSpmdArgs... args) |
| Middle End - to - Back End interface to invoke explicit SIMD functions from SPMD SYCL context. More...
|
|
template<bool IsFunc, class SpmdRet , class HelperFunc , class... UserSimdFuncAndSpmdArgs, class = std::enable_if_t<IsFunc>> |
__DPCPP_SYCL_EXTERNAL __regcall SpmdRet | __builtin_invoke_simd (HelperFunc helper, UserSimdFuncAndSpmdArgs... args) |
|
template<auto SgSize, typename SimdRet > |
constexpr void | sycl::_V1::ext::oneapi::experimental::detail::verify_return_type_matches_sg_size () |
|
template<class SimdCallable , class... SpmdArgs> |
static constexpr int | sycl::_V1::ext::oneapi::experimental::detail::get_sg_size () |
|
template<int N, class Callable , class... T> |
__DPCPP_SYCL_EXTERNAL __regcall detail::SimdRetType< N, Callable, T... > | sycl::_V1::ext::oneapi::experimental::detail::simd_obj_call_helper (const void *obj_ptr, typename detail::spmd2simd< T, N >::type... simd_args) |
|
template<int N, class Callable , class... T> |
__DPCPP_SYCL_EXTERNAL __regcall detail::SimdRetType< N, Callable, T... > | sycl::_V1::ext::oneapi::experimental::detail::simd_func_call_helper (Callable f, typename detail::spmd2simd< T, N >::type... simd_args) |
|
template<typename Ret , typename... Args> |
constexpr bool | sycl::_V1::ext::oneapi::experimental::detail::has_ref_arg (Ret(*)(Args...)) |
|
template<typename Ret , typename... Args> |
constexpr bool | sycl::_V1::ext::oneapi::experimental::detail::has_ref_ret (Ret(*)(Args...)) |
|
template<typename Ret , typename... Args> |
constexpr bool | sycl::_V1::ext::oneapi::experimental::detail::has_non_uniform_struct_ret (Ret(*)(Args...)) |
|
template<typename Ret , typename... Args> |
constexpr bool | sycl::_V1::ext::oneapi::experimental::detail::has_non_trivially_copyable_uniform_ret (Ret(*)(Args...)) |
|
template<class Callable > |
constexpr void | sycl::_V1::ext::oneapi::experimental::detail::verify_callable () |
|
template<class... Ts> |
constexpr void | sycl::_V1::ext::oneapi::experimental::detail::verify_no_uniform_non_trivially_copyable_args () |
|
template<class... Ts> |
constexpr void | sycl::_V1::ext::oneapi::experimental::detail::verify_no_non_uniform_struct_args () |
|
template<class Callable , class... Ts> |
constexpr void | sycl::_V1::ext::oneapi::experimental::detail::verify_valid_args_and_ret () |
|
template<class Callable , class... T> |
| sycl::_V1::ext::oneapi::experimental::__attribute__ ((always_inline)) auto invoke_simd(sycl |
| The invoke_simd free function invokes a SIMD function using all work-items in a sub_group. More...
|
|
template<bool IsFunc, class SpmdRet , class HelperFunc , class... UserSimdFuncAndSpmdArgs, class = std::enable_if_t<!IsFunc>>
__DPCPP_SYCL_EXTERNAL __regcall SpmdRet __builtin_invoke_simd |
( |
HelperFunc |
helper, |
|
|
const void * |
obj, |
|
|
UserSimdFuncAndSpmdArgs... |
args |
|
) |
| |
Middle End - to - Back End interface to invoke explicit SIMD functions from SPMD SYCL context.
Must not be used by user code. BEs are expected to recognize this intrinsic and transform the intrinsic call with a direct call to the SIMD target, as well as process SPMD arguments in the way described in the specification for invoke_simd
.
- Template Parameters
-
SpmdRet | the return type. Can be uniform<T> . |
HelperFunc | the type of SIMD callee helper function. It is needed to convert the arguments of user's callee function and pass them to call of user's function. |
UserSimdFuncAndSpmdArgs | is the pack that contains the user's SIMD target function and the original SPMD arguments passed to invoke_simd. |
Definition at line 40 of file invoke_simd.hpp.
Referenced by sycl::_V1::ext::oneapi::experimental::__attribute__().