DPC++ Runtime
Runtime libraries for oneAPI DPC++
builtins.hpp File Reference
Include dependency graph for builtins.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 __host_std
 

Macros

#define __NOEXC   /*noexcept*/
 
#define __FUNC_PREFIX_OCL   sycl_host_
 
#define __FUNC_PREFIX_CORE   sycl_host_
 
#define __SYCL_EXTERN_IT1(R, prefix, call, arg)
 
#define __SYCL_EXTERN_IT2_SAME(R, prefix, call, arg)
 
#define __SYCL_EXTERN_IT2(R, prefix, call, arg1, arg2)
 
#define __SYCL_EXTERN_IT3(R, prefix, call, arg1, arg2, arg3)
 
#define __SYCL_PPCAT_NX(A, B)   A##B
 
#define __SYCL_PPCAT(A, B)   __SYCL_PPCAT_NX(A, B)
 
#define __SYCL_MAKE_CALL_ARG1(call, prefix)
 
#define __SYCL_MAKE_CALL_ARG2(call, prefix)
 
#define __SYCL_MAKE_CALL_ARG2_SAME(call, prefix)
 
#define __SYCL_MAKE_CALL_ARG2_SAME_RESULT(call, prefix)
 
#define __SYCL_MAKE_CALL_ARG3(call, prefix)
 

Functions

 __host_std::__SYCL_MAKE_CALL_ARG2_SAME (Dot, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG2_SAME_RESULT(FMul
 
__FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG2_SAME (FOrdEqual, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG2_SAME(FUnordNotEqual
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG2_SAME (FOrdGreaterThan, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG2_SAME(FOrdGreaterThanEqual
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG2_SAME (FOrdLessThan, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG2_SAME(FOrdLessThanEqual
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG2_SAME (FOrdNotEqual, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG2_SAME(LessOrGreater
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG1 (IsFinite, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG1(IsInf
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG1 (IsNan, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG1(IsNormal
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG2_SAME (Ordered, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG2_SAME(Unordered
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG1 (SignBitSet, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG1(Any
 
__FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __FUNC_PREFIX_CORE __host_std::__SYCL_MAKE_CALL_ARG1 (All, __FUNC_PREFIX_CORE) __SYCL_MAKE_CALL_ARG3(select
 

Macro Definition Documentation

◆ __FUNC_PREFIX_CORE

#define __FUNC_PREFIX_CORE   sycl_host_

Definition at line 27 of file builtins.hpp.

◆ __FUNC_PREFIX_OCL

#define __FUNC_PREFIX_OCL   sycl_host_

Definition at line 26 of file builtins.hpp.

◆ __NOEXC

#define __NOEXC   /*noexcept*/

Definition at line 16 of file builtins.hpp.

◆ __SYCL_EXTERN_IT1

#define __SYCL_EXTERN_IT1 (   R,
  prefix,
  call,
  arg 
)
Value:
using Arg = decltype(arg); \
using Ret = sycl::detail::ConvertToOpenCLType_t<R>; \
extern Ret __SYCL_PPCAT(prefix, call)(Arg)
#define __SYCL_PPCAT(A, B)
Definition: builtins.hpp:50
__DPCPP_SYCL_EXTERNAL _SYCL_EXT_CPLX_INLINE_VISIBILITY std::enable_if_t< is_genfloat< _Tp >::value, _Tp > arg(const complex< _Tp > &__c)

Definition at line 28 of file builtins.hpp.

◆ __SYCL_EXTERN_IT2

#define __SYCL_EXTERN_IT2 (   R,
  prefix,
  call,
  arg1,
  arg2 
)
Value:
using Arg1 = decltype(arg1); \
using Arg2 = decltype(arg2); \
using Ret = sycl::detail::ConvertToOpenCLType_t<R>; \
extern Ret __SYCL_PPCAT(prefix, call)(Arg1, Arg2)

Definition at line 36 of file builtins.hpp.

◆ __SYCL_EXTERN_IT2_SAME

#define __SYCL_EXTERN_IT2_SAME (   R,
  prefix,
  call,
  arg 
)
Value:
using Arg = decltype(arg); \
using Ret = sycl::detail::ConvertToOpenCLType_t<R>; \
extern Ret __SYCL_PPCAT(prefix, call)(Arg, Arg)

Definition at line 32 of file builtins.hpp.

◆ __SYCL_EXTERN_IT3

#define __SYCL_EXTERN_IT3 (   R,
  prefix,
  call,
  arg1,
  arg2,
  arg3 
)
Value:
using Arg1 = decltype(arg1); \
using Arg2 = decltype(arg2); \
using Arg3 = decltype(arg3); \
using Ret = sycl::detail::ConvertToOpenCLType_t<R>; \
extern Ret __SYCL_PPCAT(prefix, call)(Arg1, Arg2, Arg3)

Definition at line 41 of file builtins.hpp.

◆ __SYCL_MAKE_CALL_ARG1

#define __SYCL_MAKE_CALL_ARG1 (   call,
  prefix 
)
Value:
template <typename R, typename T1> \
inline __SYCL_ALWAYS_INLINE R __invoke_##call(T1 t1) __NOEXC { \
auto arg1 = sycl::detail::convertToOpenCLType(std::move(t1)); \
__SYCL_EXTERN_IT1(R, prefix, call, arg1); \
return sycl::detail::convertFromOpenCLTypeFor<R>( \
__SYCL_PPCAT(prefix, call)(std::move(arg1))); \
}
#define __NOEXC
Definition: builtins.hpp:16
#define __SYCL_ALWAYS_INLINE

Definition at line 52 of file builtins.hpp.

◆ __SYCL_MAKE_CALL_ARG2

#define __SYCL_MAKE_CALL_ARG2 (   call,
  prefix 
)
Value:
template <typename R, typename T1, typename T2> \
inline __SYCL_ALWAYS_INLINE R __invoke_##call(T1 t1, T2 t2) __NOEXC { \
auto arg1 = sycl::detail::convertToOpenCLType(std::move(t1)); \
auto arg2 = sycl::detail::convertToOpenCLType(std::move(t2)); \
__SYCL_EXTERN_IT2(R, prefix, call, arg1, arg2); \
return sycl::detail::convertFromOpenCLTypeFor<R>( \
__SYCL_PPCAT(prefix, call)(std::move(arg1), std::move(arg2))); \
}

Definition at line 61 of file builtins.hpp.

◆ __SYCL_MAKE_CALL_ARG2_SAME

#define __SYCL_MAKE_CALL_ARG2_SAME (   call,
  prefix 
)
Value:
template <typename R, typename T> \
inline __SYCL_ALWAYS_INLINE R __invoke_##call(T t1, T t2) __NOEXC { \
auto arg1 = sycl::detail::convertToOpenCLType(std::move(t1)); \
auto arg2 = sycl::detail::convertToOpenCLType(std::move(t2)); \
__SYCL_EXTERN_IT2_SAME(R, prefix, call, arg1); \
return sycl::detail::convertFromOpenCLTypeFor<R>( \
__SYCL_PPCAT(prefix, call)(std::move(arg1), std::move(arg2))); \
}

Definition at line 71 of file builtins.hpp.

◆ __SYCL_MAKE_CALL_ARG2_SAME_RESULT

#define __SYCL_MAKE_CALL_ARG2_SAME_RESULT (   call,
  prefix 
)
Value:
template <typename T> \
inline __SYCL_ALWAYS_INLINE T __invoke_##call(T v1, T v2) __NOEXC { \
auto arg1 = sycl::detail::convertToOpenCLType(std::move(v1)); \
auto arg2 = sycl::detail::convertToOpenCLType(std::move(v2)); \
__SYCL_EXTERN_IT2_SAME(T, prefix, call, arg1); \
return sycl::detail::convertFromOpenCLTypeFor<T>( \
__SYCL_PPCAT(prefix, call)(std::move(arg1), std::move(arg2))); \
}

Definition at line 81 of file builtins.hpp.

◆ __SYCL_MAKE_CALL_ARG3

#define __SYCL_MAKE_CALL_ARG3 (   call,
  prefix 
)
Value:
template <typename R, typename T1, typename T2, typename T3> \
inline __SYCL_ALWAYS_INLINE R __invoke_##call(T1 t1, T2 t2, T3 t3) __NOEXC { \
auto arg1 = sycl::detail::convertToOpenCLType(std::move(t1)); \
auto arg2 = sycl::detail::convertToOpenCLType(std::move(t2)); \
auto arg3 = sycl::detail::convertToOpenCLType(std::move(t3)); \
__SYCL_EXTERN_IT3(R, prefix, call, arg1, arg2, arg3); \
return sycl::detail::convertFromOpenCLTypeFor<R>(__SYCL_PPCAT( \
prefix, call)(std::move(arg1), std::move(arg2), std::move(arg3))); \
}

Definition at line 91 of file builtins.hpp.

◆ __SYCL_PPCAT

#define __SYCL_PPCAT (   A,
 
)    __SYCL_PPCAT_NX(A, B)

Definition at line 50 of file builtins.hpp.

◆ __SYCL_PPCAT_NX

#define __SYCL_PPCAT_NX (   A,
 
)    A##B

Definition at line 49 of file builtins.hpp.