Truffle simd vectorized

This commit is contained in:
apostolos
2021-07-02 17:12:47 +03:00
committed by Konstantinos Margaritis
parent b190e9d364
commit 885a4da0c8
7 changed files with 413 additions and 609 deletions

View File

@@ -164,18 +164,31 @@ really_inline SuperVector<16> SuperVector<16>::operator|(SuperVector<16> const b
return {_mm_or_si128(u.v128[0], b.u.v128[0])};
}
template <>
really_inline SuperVector<16> SuperVector<16>::operator^(SuperVector<16> const b) const
{
return {_mm_xor_si128(u.v128[0], b.u.v128[0])};
}
template <>
really_inline SuperVector<16> SuperVector<16>::opand(SuperVector<16> const b) const
{
return *this & b;
}
template <>
really_inline SuperVector<16> SuperVector<16>::opxor(SuperVector<16> const b) const
{
return *this ^ b;
}
template <>
really_inline SuperVector<16> SuperVector<16>::opandnot(SuperVector<16> const b) const
{
return {_mm_andnot_si128(u.v128[0], b.u.v128[0])};
}
template <>
really_inline SuperVector<16> SuperVector<16>::eq(SuperVector<16> const b) const
{

View File

@@ -175,10 +175,14 @@ public:
SuperVector operator&(SuperVector const b) const;
SuperVector operator|(SuperVector const b) const;
SuperVector operator^(SuperVector const b) const;
SuperVector opand(SuperVector const b) const;
SuperVector opor(SuperVector const b) const;
SuperVector opandnot(SuperVector const b) const;
SuperVector opxor(SuperVector const b) const;
SuperVector eq(SuperVector const b) const;
SuperVector operator<<(uint8_t const N) const;