Macro KFR_VEC_SHIFT_OPERATOR¶
macro KFR_VEC_SHIFT_OPERATOR simd¶
KFR_VEC_SHIFT_OPERATOR(op, asgnop, fn) \
template <typename T1, size_t N> \
constexpr KFR_INTRINSIC vec<T1, N>& operator asgnop(vec<T1, N>& x, unsigned y) \
{ \
x = intr::fn(x, y); \
return x; \
} \
template <typename T1, typename T2, size_t N> \
requires(vec_rank<T1> == vec_rank<T2>) \
constexpr KFR_INTRINSIC vec<T1, N>& operator asgnop(vec<T1, N>& x, const vec<T2, N>& y) \
{ \
x = intr::fn(x, promoteto<utype<T1>>(y)); \
return x; \
} \
template <typename T1, size_t N> \
constexpr KFR_INTRINSIC vec<T1, N> operator op(const vec<T1, N>& x, unsigned y) \
{ \
return intr::fn(x, y); \
} \
template <simd_compat T1, typename T2, size_t N> \
requires(vec_rank<T1> < 1 + vec_rank<T2>) \
constexpr KFR_INTRINSIC vec<T1, N> operator op(const T1& x, const vec<T2, N>& y) \
{ \
return intr::fn(broadcastto<T1>(x), promoteto<utype<T1>>(y)); \
} \
template <simd_compat T1, typename T2, size_t N> \
requires(vec_rank<T1> == vec_rank<T2>) \
constexpr KFR_INTRINSIC vec<T1, N> operator op(const vec<T1, N>& x, const vec<T2, N>& y) \
{ \
return intr::fn(x, promoteto<utype<T1>>(y)); \
} Fully qualified name: KFR_VEC_SHIFT_OPERATOR
Declared at simd/operators.hpp:79
This file was generated by cxxdox, a C++ documentation generator based on MkDocs Material and libclang.