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:
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