Skip to content

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.