kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

commit afbd5f46f1e906026b1d11c4cd1dc5ea61485028
parent 23281a48b3ddbf2f6971d0c1830375dea15e733e
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Mon,  2 Dec 2019 19:36:04 +0000

bitwise for bit<T>

Diffstat:
Minclude/kfr/simd/impl/basicoperators_generic.hpp | 21+++++++++++++++++++++
1 file changed, 21 insertions(+), 0 deletions(-)

diff --git a/include/kfr/simd/impl/basicoperators_generic.hpp b/include/kfr/simd/impl/basicoperators_generic.hpp @@ -1665,6 +1665,27 @@ KFR_INTRINSIC vec<T, N> neg(const vec<T, N>& x) return bxor(special_constants<T>::highbitmask(), x); } +template <typename T, size_t N> +KFR_INTRINSIC vec<bit<T>, N> bxor(const vec<bit<T>, N>& x, const vec<bit<T>, N>& y) +{ + return bxor(vec<T, N>(x.v), vec<T, N>(y.v)).v; +} +template <typename T, size_t N> +KFR_INTRINSIC vec<bit<T>, N> bor(const vec<bit<T>, N>& x, const vec<bit<T>, N>& y) +{ + return bor(vec<T, N>(x.v), vec<T, N>(y.v)).v; +} +template <typename T, size_t N> +KFR_INTRINSIC vec<bit<T>, N> band(const vec<bit<T>, N>& x, const vec<bit<T>, N>& y) +{ + return band(vec<T, N>(x.v), vec<T, N>(y.v)).v; +} +template <typename T, size_t N> +KFR_INTRINSIC vec<bit<T>, N> bnot(const vec<bit<T>, N>& x) +{ + return bnot(vec<T, N>(x.v)).v; +} + } // namespace intrinsics } // namespace CMT_ARCH_NAME } // namespace kfr