mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-10-09 15:52:27 +03:00
Truffle simd vectorized
This commit is contained in:
committed by
Konstantinos Margaritis
parent
b190e9d364
commit
885a4da0c8
@@ -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
|
||||
{
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user