]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
compilation fixes for debug mode
authorKonstantinos Margaritis <markos@freevec.org>
Sun, 4 Jul 2021 11:46:50 +0000 (14:46 +0300)
committerKonstantinos Margaritis <konstantinos@vectorcamp.gr>
Tue, 12 Oct 2021 08:51:34 +0000 (11:51 +0300)
CMakeLists.txt
src/util/supervector/arch/x86/impl.cpp

index bc2816bf7b8d32c01c3d71fdff2958631614936e..e6ba66b9b5ca549a68e9cb5c2ea6af6b0634293b 100644 (file)
@@ -761,11 +761,11 @@ if (NOT OPTIMISE)
 if (ARCH_IA32 OR ARCH_X86_64)
 set (hs_exec_SRCS
     ${hs_exec_SRCS}
-    src/util/simd/arch/x86/impl.cpp)
+    src/util/supervector/arch/x86/impl.cpp)
 elseif (ARCH_ARM32 OR ARCH_AARCH64)
 set (hs_exec_SRCS
     ${hs_exec_SRCS}
-    src/util/simd/arch/arm/impl.cpp)
+    src/util/supervector/arch/arm/impl.cpp)
 endif ()
 endif()
 
index 508d8deb87b0bc9b804fbe93c1c4fa4f5fc8c745..2d0d2e8a4836a2816ba9d3dd2d35f6aa793154a5 100644 (file)
@@ -36,7 +36,7 @@
 #include "ue2common.h"
 #include "util/arch.h"
 #include "util/unaligned.h"
-#include "util/supervector/arch/x86/types.hpp"
+#include "util/supervector/supervector.hpp"
 
 // 128-bit SSE implementation
 
@@ -293,7 +293,7 @@ really_inline SuperVector<16> SuperVector<16>::alignr(SuperVector<16> &other, in
        case 13: return {_mm_alignr_epi8(u.v128[0], other.u.v128[0], 3)}; break;
        case 14: return {_mm_alignr_epi8(u.v128[0], other.u.v128[0], 2)}; break;
        case 15: return {_mm_alignr_epi8(u.v128[0], other.u.v128[0], 1)}; break;
-       case 16: return l; break;
+       case 16: return other; break;
        default: break;
        }
        return *this;
@@ -449,13 +449,13 @@ really_inline void SuperVector<32>::operator=(SuperVector<32> const &o)
 }
 
 template <>
-really_inline SuperVector<32> SuperVector<32>::operator&(SuperVector<32> const b) const
+really_inline SuperVector<32> SuperVector<32>::operator&(SuperVector<32> const &b) const
 {
     return {_mm256_and_si256(u.v256[0], b.u.v256[0])};
 }
 
 template <>
-really_inline SuperVector<32> SuperVector<32>::eq(SuperVector<32> const b) const
+really_inline SuperVector<32> SuperVector<32>::eq(SuperVector<32> const &b) const
 {
     return {_mm256_cmpeq_epi8(u.v256[0], b.u.v256[0])};
 }
@@ -518,41 +518,41 @@ really_inline SuperVector<32> SuperVector<32>::load(void const *ptr)
     ptr = assume_aligned(ptr, SuperVector::size);
     return {_mm256_load_si256((const m256 *)ptr)};
 }
-
+/*
 template <>
 really_inline SuperVector<32> SuperVector<32>::loadu_mask(void const *ptr, size_t const len)
 {
 
     return {_mm256_loadu_si256((const m256 *)ptr)};
-}
+}*/
 
 #ifndef DEBUG
 template<>
-really_inline SuperVector<32> SuperVector<32>::alignr(SuperVector<32> l, int8_t offset)
+really_inline SuperVector<32> SuperVector<32>::alignr(SuperVector<32> &other, int8_t offset)
 {
-    return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], offset)};
+    return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], offset)};
 }
 #else
 template<>
-really_inline SuperVector<32> SuperVector<32>::alignr(SuperVector<32> l, int8_t offset)
+really_inline SuperVector<32> SuperVector<32>::alignr(SuperVector<32> &other, int8_t offset)
 {
        switch(offset) {
-       case 0: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 0)};; break;
-       case 1: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 1)}; break;
-       case 2: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 2)}; break;
-       case 3: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 3)}; break;
-       case 4: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 4)}; break;
-       case 5: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 5)}; break;
-       case 6: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 6)}; break;
-       case 7: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 7)}; break;
-       case 8: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 8)}; break;
-       case 9: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 9)}; break;
-       case 10: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 10)}; break;
-       case 11: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 11)}; break;
-       case 12: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 12)}; break;
-       case 13: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 13)}; break;
-       case 14: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 14)}; break;
-       case 15: return {_mm256_alignr_epi8(u.v256[0], l.u.v256[0], 15)}; break;
+       case 0: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 0)};; break;
+       case 1: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 1)}; break;
+       case 2: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 2)}; break;
+       case 3: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 3)}; break;
+       case 4: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 4)}; break;
+       case 5: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 5)}; break;
+       case 6: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 6)}; break;
+       case 7: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 7)}; break;
+       case 8: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 8)}; break;
+       case 9: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 9)}; break;
+       case 10: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 10)}; break;
+       case 11: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 11)}; break;
+       case 12: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 12)}; break;
+       case 13: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 13)}; break;
+       case 14: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 14)}; break;
+       case 15: return {_mm256_alignr_epi8(u.v256[0], other.u.v256[0], 15)}; break;
        default: break;
        }
        return *this;