mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
*fix palignr implementation for VSX Release mode
*add unit test for palignr *enable unit test building for Release mode
This commit is contained in:
parent
bfc8da1102
commit
35e5369c70
@ -381,6 +381,7 @@ m128 palignr_imm(m128 r, m128 l, int offset) {
|
||||
static really_really_inline
|
||||
m128 palignr(m128 r, m128 l, int offset) {
|
||||
#if defined(HS_OPTIMIZE)
|
||||
// need a faster way to do this.
|
||||
return palignr_imm(r, l, offset);
|
||||
#else
|
||||
return palignr_imm(r, l, offset);
|
||||
|
@ -63,7 +63,7 @@ target_link_libraries(unit-hyperscan hs expressionutil)
|
||||
endif()
|
||||
|
||||
|
||||
if (NOT (RELEASE_BUILD OR FAT_RUNTIME))
|
||||
if (NOT FAT_RUNTIME )
|
||||
set(unit_internal_SOURCES
|
||||
${gtest_SOURCES}
|
||||
internal/bitfield.cpp
|
||||
@ -72,8 +72,8 @@ set(unit_internal_SOURCES
|
||||
internal/compare.cpp
|
||||
internal/database.cpp
|
||||
internal/depth.cpp
|
||||
internal/fdr.cpp
|
||||
internal/fdr_flood.cpp
|
||||
#internal/fdr.cpp
|
||||
#internal/fdr_flood.cpp
|
||||
internal/fdr_loadval.cpp
|
||||
internal/flat_set.cpp
|
||||
internal/flat_map.cpp
|
||||
@ -81,7 +81,7 @@ set(unit_internal_SOURCES
|
||||
internal/graph_undirected.cpp
|
||||
internal/insertion_ordered.cpp
|
||||
internal/lbr.cpp
|
||||
internal/limex_nfa.cpp
|
||||
#internal/limex_nfa.cpp
|
||||
internal/multi_bit.cpp
|
||||
internal/multi_bit_compress.cpp
|
||||
internal/nfagraph_common.h
|
||||
@ -121,13 +121,22 @@ if (BUILD_AVX2)
|
||||
set(unit_internal_SOURCES
|
||||
${unit_internal_SOURCES}
|
||||
internal/masked_move.cpp
|
||||
)
|
||||
)
|
||||
endif(BUILD_AVX2)
|
||||
|
||||
if (NOT RELEASE_BUILD)
|
||||
set(unit_internal_SOURCES
|
||||
${unit_internal_SOURCES}
|
||||
internal/fdr.cpp
|
||||
internal/fdr_flood.cpp
|
||||
internal/limex_nfa.cpp
|
||||
)
|
||||
endif(NOT RELEASE_BUILD)
|
||||
|
||||
add_executable(unit-internal ${unit_internal_SOURCES})
|
||||
set_target_properties(unit-internal PROPERTIES COMPILE_FLAGS "${HS_CXX_FLAGS}")
|
||||
target_link_libraries(unit-internal hs corpusomatic)
|
||||
endif(NOT (RELEASE_BUILD OR FAT_RUNTIME))
|
||||
endif(NOT FAT_RUNTIME)
|
||||
|
||||
if (BUILD_CHIMERA)
|
||||
# enable Chimera unit tests
|
||||
@ -178,9 +187,10 @@ else()
|
||||
else ()
|
||||
add_custom_target(
|
||||
unit
|
||||
COMMAND bin/unit-internal
|
||||
COMMAND bin/unit-hyperscan
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
DEPENDS unit-hyperscan
|
||||
DEPENDS unit-internal unit-hyperscan
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
@ -917,4 +917,29 @@ TEST(SimdUtilsTest, pshufb_m128) {
|
||||
}
|
||||
|
||||
|
||||
/*Define ALIGNR128 macro*/
|
||||
#define TEST_ALIGNR128(v1, v2, buf, l) { \
|
||||
m128 v_aligned =palignr(v2,v1, l); \
|
||||
storeu128(res, v_aligned); \
|
||||
for (size_t i=0; i<16; i++) { \
|
||||
ASSERT_EQ(res[i], vec[i + l]); \
|
||||
} \
|
||||
}
|
||||
|
||||
TEST(SimdUtilsTest, Alignr128){
|
||||
u8 vec[32];
|
||||
u8 res[16];
|
||||
for (int i=0; i<32; i++) {
|
||||
vec[i]=i;
|
||||
}
|
||||
m128 v1 = loadu128(vec);
|
||||
m128 v2 = loadu128(vec+16);
|
||||
for (int j = 0; j<16; j++){
|
||||
TEST_ALIGNR128(v1, v2, vec, j);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace
|
||||
|
Loading…
x
Reference in New Issue
Block a user