]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
fix for new pshufb
authorKonstantinos Margaritis <konstantinos@vectorcamp.gr>
Sun, 3 Oct 2021 10:46:47 +0000 (10:46 +0000)
committerKonstantinos Margaritis <konstantinos@vectorcamp.gr>
Tue, 12 Oct 2021 08:51:34 +0000 (11:51 +0300)
src/nfa/limex_shuffle.hpp

index fe303311ea276b50ac6387d02472552c235c94e4..4266d7dab653c1c7c4599c6a4088e515c8dc67ed 100644 (file)
@@ -51,7 +51,7 @@ u32 packedExtract(SuperVector<S> s, const SuperVector<S> permute, const SuperVec
 template <>
 really_really_inline
 u32 packedExtract<16>(SuperVector<16> s, const SuperVector<16> permute, const SuperVector<16> compare) {
-    SuperVector<16> shuffled = s.pshufb(permute);
+    SuperVector<16> shuffled = s.pshufb<true>(permute);
     SuperVector<16> compared = shuffled & compare;
     u16 rv = ~compared.eqmask(shuffled);
     return (u32)rv;
@@ -60,7 +60,7 @@ u32 packedExtract<16>(SuperVector<16> s, const SuperVector<16> permute, const Su
 template <>
 really_really_inline
 u32 packedExtract<32>(SuperVector<32> s, const SuperVector<32> permute, const SuperVector<32> compare) {
-    SuperVector<32> shuffled = s.pshufb(permute);
+    SuperVector<32> shuffled = s.pshufb<true>(permute);
     SuperVector<32> compared = shuffled & compare;
     u32 rv = ~compared.eqmask(shuffled); 
     return (u32)((rv >> 16) | (rv & 0xffffU));
@@ -69,7 +69,7 @@ u32 packedExtract<32>(SuperVector<32> s, const SuperVector<32> permute, const Su
 template <>
 really_really_inline
 u32 packedExtract<64>(SuperVector<64> s, const SuperVector<64> permute, const SuperVector<64> compare) {
-    SuperVector<64> shuffled = s.pshufb(permute);
+    SuperVector<64> shuffled = s.pshufb<true>(permute);
     SuperVector<64> compared = shuffled & compare;
     u64a rv = ~compared.eqmask(shuffled);
     rv = rv >> 32 | rv;
@@ -77,4 +77,4 @@ u32 packedExtract<64>(SuperVector<64> s, const SuperVector<64> permute, const Su
 }
 
 
-#endif // LIMEX_SHUFFLE_HPP
\ No newline at end of file
+#endif // LIMEX_SHUFFLE_HPP