]>
git.ipfire.org Git - thirdparty/vectorscan.git/log
Konstantinos Margaritis [Mon, 8 Nov 2021 19:45:36 +0000 (19:45 +0000)]
add len parameter to arm matchers as well
Konstantinos Margaritis [Mon, 8 Nov 2021 19:45:21 +0000 (19:45 +0000)]
split vermicelli block implementations per arch
Konstantinos Margaritis [Fri, 5 Nov 2021 12:30:22 +0000 (14:30 +0200)]
add len parameter and mask, fixes corner cases on AVX512
Konstantinos Margaritis [Tue, 2 Nov 2021 20:30:53 +0000 (22:30 +0200)]
remove vermicelli.h and replace it with vermicelli.hpp
Konstantinos Margaritis [Tue, 2 Nov 2021 20:30:21 +0000 (22:30 +0200)]
refactor vermicelliDoubleMaskedExec()
Konstantinos Margaritis [Mon, 1 Nov 2021 16:40:17 +0000 (16:40 +0000)]
add vermicelli.hpp to includes
Konstantinos Margaritis [Mon, 1 Nov 2021 16:40:01 +0000 (16:40 +0000)]
remove vermicelli_sse.h
Konstantinos Margaritis [Mon, 1 Nov 2021 16:31:38 +0000 (16:31 +0000)]
fix arm matchers
Konstantinos Margaritis [Mon, 1 Nov 2021 14:51:18 +0000 (16:51 +0200)]
complete refactoring and unification of Vermicelli functions
Konstantinos Margaritis [Mon, 1 Nov 2021 14:50:38 +0000 (16:50 +0200)]
remove unneeded header
Konstantinos Margaritis [Wed, 27 Oct 2021 09:32:54 +0000 (12:32 +0300)]
add new include file
Konstantinos Margaritis [Wed, 27 Oct 2021 09:32:03 +0000 (12:32 +0300)]
renamed matcher functions, added new ones for Vermicelli
Konstantinos Margaritis [Wed, 27 Oct 2021 09:31:04 +0000 (12:31 +0300)]
nits
Konstantinos Margaritis [Wed, 27 Oct 2021 09:30:42 +0000 (12:30 +0300)]
move casemask helper functions to separate header
Konstantinos Margaritis [Wed, 27 Oct 2021 09:29:59 +0000 (12:29 +0300)]
add to CMake
Konstantinos Margaritis [Wed, 27 Oct 2021 09:29:39 +0000 (12:29 +0300)]
added refactored vermicelli_simd.cpp implementation
Konstantinos Margaritis [Mon, 1 Nov 2021 12:48:17 +0000 (14:48 +0200)]
add Vermicelli/RVermicelli to microbenchmark utility
Konstantinos Margaritis [Tue, 19 Oct 2021 18:23:13 +0000 (18:23 +0000)]
add arm vector types in union, avoid -flax-conversions, fix castings
Konstantinos Margaritis [Mon, 1 Nov 2021 14:51:18 +0000 (16:51 +0200)]
complete refactoring and unification of Vermicelli functions
Konstantinos Margaritis [Mon, 1 Nov 2021 14:50:38 +0000 (16:50 +0200)]
remove unneeded header
Konstantinos Margaritis [Wed, 27 Oct 2021 09:32:54 +0000 (12:32 +0300)]
add new include file
Konstantinos Margaritis [Wed, 27 Oct 2021 09:32:03 +0000 (12:32 +0300)]
renamed matcher functions, added new ones for Vermicelli
Konstantinos Margaritis [Wed, 27 Oct 2021 09:31:04 +0000 (12:31 +0300)]
nits
Konstantinos Margaritis [Wed, 27 Oct 2021 09:30:42 +0000 (12:30 +0300)]
move casemask helper functions to separate header
Konstantinos Margaritis [Wed, 27 Oct 2021 09:29:59 +0000 (12:29 +0300)]
add to CMake
Konstantinos Margaritis [Wed, 27 Oct 2021 09:29:39 +0000 (12:29 +0300)]
added refactored vermicelli_simd.cpp implementation
Konstantinos Margaritis [Tue, 12 Oct 2021 10:33:40 +0000 (10:33 +0000)]
link benchmarks against static lib only as some symbols are not exposed in the shared lib
Konstantinos Margaritis [Tue, 12 Oct 2021 07:55:33 +0000 (10:55 +0300)]
Add missing copyright info from tampered files
Konstantinos Margaritis [Tue, 12 Oct 2021 05:50:45 +0000 (08:50 +0300)]
bump version
Konstantinos Margaritis [Mon, 11 Oct 2021 11:28:42 +0000 (14:28 +0300)]
fix multiple/undefined symbols when using fat runtimes
Konstantinos Margaritis [Fri, 8 Oct 2021 22:12:43 +0000 (22:12 +0000)]
add arm truffle block function
Konstantinos Margaritis [Fri, 8 Oct 2021 22:12:24 +0000 (22:12 +0000)]
add simd_onebit_masks as static in arm simd_utils.h as well
Konstantinos Margaritis [Fri, 8 Oct 2021 21:36:21 +0000 (00:36 +0300)]
simplify truffle and provide arch-specific block functions
Konstantinos Margaritis [Fri, 8 Oct 2021 21:35:59 +0000 (00:35 +0300)]
simplify shufti and provide arch-specific block functions
Konstantinos Margaritis [Fri, 8 Oct 2021 21:35:04 +0000 (00:35 +0300)]
rearrange method declarations
Konstantinos Margaritis [Fri, 8 Oct 2021 21:34:35 +0000 (00:34 +0300)]
remove simd_utils.c
Konstantinos Margaritis [Fri, 8 Oct 2021 21:31:13 +0000 (00:31 +0300)]
add x86 vsh* implementations
Konstantinos Margaritis [Fri, 8 Oct 2021 21:29:33 +0000 (00:29 +0300)]
use movemask
Konstantinos Margaritis [Fri, 8 Oct 2021 21:29:08 +0000 (00:29 +0300)]
add header define to avoid double inclusion
Konstantinos Margaritis [Fri, 8 Oct 2021 21:28:22 +0000 (00:28 +0300)]
do not include the Supervector impl.cpp files in fat runtime
Konstantinos Margaritis [Fri, 8 Oct 2021 21:25:29 +0000 (00:25 +0300)]
atm, do not built benchmark tool for fat runtime, as the function names are modified, need to rethink this
Konstantinos Margaritis [Sun, 3 Oct 2021 10:51:31 +0000 (10:51 +0000)]
Improve benchmarks
Konstantinos Margaritis [Sun, 3 Oct 2021 10:51:03 +0000 (10:51 +0000)]
optimize and simplify Shufti and Truffle to work with a single block method instead
Konstantinos Margaritis [Sun, 3 Oct 2021 10:49:38 +0000 (10:49 +0000)]
no need to convert to size_t
Konstantinos Margaritis [Sun, 3 Oct 2021 10:49:09 +0000 (10:49 +0000)]
remove asserts, as they are not needed
Konstantinos Margaritis [Sun, 3 Oct 2021 10:47:53 +0000 (10:47 +0000)]
firstMatch/lastMatch are now arch-dependent, emulating movemask on non-Intel is very costly, the alternative is almost twice as fast on Arm
Konstantinos Margaritis [Sun, 3 Oct 2021 10:46:47 +0000 (10:46 +0000)]
fix for new pshufb
Konstantinos Margaritis [Sun, 3 Oct 2021 10:43:13 +0000 (10:43 +0000)]
Changes/Additions to SuperVector class * added ==,!=,>=,>,<=,< operators * reworked shift operators to be more uniform and orthogonal, like Arm ISA * Added Unroller class to allow handling of multiple cases but avoid code duplication * pshufb method can now emulate Intel or not (avoids one instruction).
Konstantinos Margaritis [Mon, 20 Sep 2021 20:52:31 +0000 (23:52 +0300)]
initial SSE/AVX2 implementation
Duncan Bellamy [Mon, 27 Sep 2021 08:37:00 +0000 (09:37 +0100)]
remove adding CMAKE_CXX_IMPLICIT_LINK_LIBRARIES to PRIVATE_LIBS
as on alpine linux this add gcc_s which is a shared library
on alpine:
Libs.private: -lstdc++ -lm -lssp_nonshared -lgcc_s -lgcc -lc -lgcc_s -lgcc
apostolos [Wed, 22 Sep 2021 09:05:28 +0000 (12:05 +0300)]
Unify benchmarks, more accurate measurements
Konstantinos Margaritis [Wed, 22 Sep 2021 08:21:37 +0000 (11:21 +0300)]
Unify benchmarks, more accurate measurements
(cherry picked from commit
f50d7656bc78c54ec25916b6c8e655c188d79a13 )
apostolos [Thu, 16 Sep 2021 14:23:10 +0000 (17:23 +0300)]
benchmarks functions replaced with lambdas
apostolos [Wed, 15 Sep 2021 10:03:25 +0000 (13:03 +0300)]
raw pointers replaced with smart pointers
apostolos [Tue, 14 Sep 2021 13:35:33 +0000 (16:35 +0300)]
nit
apostolos [Tue, 14 Sep 2021 13:01:32 +0000 (16:01 +0300)]
nit
apostolos [Tue, 14 Sep 2021 12:32:26 +0000 (15:32 +0300)]
fix benchmarks outputs
apostolos [Mon, 13 Sep 2021 17:25:46 +0000 (20:25 +0300)]
bandwidth output fixes
apostolos [Mon, 13 Sep 2021 07:09:13 +0000 (10:09 +0300)]
size outup for case with match fixed
apostolos [Thu, 9 Sep 2021 09:06:02 +0000 (12:06 +0300)]
nits
apostolos [Thu, 9 Sep 2021 09:02:33 +0000 (12:02 +0300)]
size output fixed
apostolos [Tue, 7 Sep 2021 08:41:19 +0000 (11:41 +0300)]
nits
apostolos [Tue, 7 Sep 2021 08:01:10 +0000 (11:01 +0300)]
benchmarks output fixes
Konstantinos Margaritis [Thu, 2 Sep 2021 12:35:23 +0000 (15:35 +0300)]
add missing header
Konstantinos Margaritis [Thu, 2 Sep 2021 12:34:55 +0000 (15:34 +0300)]
remove confusing OPTIMISE flag
apostolos [Wed, 25 Aug 2021 08:43:33 +0000 (11:43 +0300)]
nits
apostolos [Wed, 25 Aug 2021 08:09:45 +0000 (11:09 +0300)]
code size reduction by using function arrays and add bandwidth to output
apostolos [Tue, 24 Aug 2021 11:05:12 +0000 (14:05 +0300)]
micro-benchmarks for shufti, trufle and noodle added
Konstantinos Margaritis [Fri, 30 Jul 2021 09:49:38 +0000 (12:49 +0300)]
remove Windows/ICC support
Konstantinos Margaritis [Fri, 30 Jul 2021 09:37:41 +0000 (12:37 +0300)]
fix lshift128 test
apostolos [Wed, 28 Jul 2021 09:55:32 +0000 (12:55 +0300)]
alignr methods for avx2 and avx512 added
apostolos [Tue, 27 Jul 2021 08:44:35 +0000 (11:44 +0300)]
limex_shuffle added and it's unit tests
Konstantinos Margaritis [Mon, 26 Jul 2021 18:11:30 +0000 (21:11 +0300)]
remove duplicate functions from previous merge
Konstantinos Margaritis [Mon, 26 Jul 2021 18:09:12 +0000 (21:09 +0300)]
add missing compile flags
Konstantinos Margaritis [Mon, 26 Jul 2021 16:50:34 +0000 (19:50 +0300)]
add accidentally removed lines
Konstantinos Margaritis [Mon, 26 Jul 2021 16:13:33 +0000 (19:13 +0300)]
* add -fno-new-ttp-matching to fix build-failures on newer gcc compilers with C++17
* add explicit -mssse3, -mavx2 in compiler flags in respective build profiles
George Wort [Tue, 20 Jul 2021 17:13:02 +0000 (18:13 +0100)]
Move SVE functions into their own files.
Change-Id: I995ba4b7d2b558ee403693ee45d747d414d3b177
George Wort [Mon, 28 Jun 2021 15:29:43 +0000 (16:29 +0100)]
Implement new DoubleVermicelli16 acceleration functions using SVE2
Change-Id: Id4a8ffca840caab930a6e78cc0dfd0fe7d320b4e
George Wort [Fri, 2 Jul 2021 14:54:42 +0000 (15:54 +0100)]
Use SVE shufti for counting miracles.
Change-Id: Idd4aaf5bbc05fc90e9138c6fed385bc6ffa7b0b8
George Wort [Tue, 13 Jul 2021 19:39:53 +0000 (20:39 +0100)]
Use SVE for double shufti.
Change-Id: I09e0d57bb8a2f05b613f6225dea79ae823136268
George Wort [Tue, 13 Jul 2021 14:09:38 +0000 (15:09 +0100)]
Use SVE for single shufti.
Change-Id: Ic76940c5bb9b81a1c45d39e9ca396a158c50a7dc
George Wort [Fri, 2 Jul 2021 14:53:43 +0000 (15:53 +0100)]
Use SVE2 for counting miracles.
Change-Id: I048dc182e5f4e726b847b3285ffafef4f538e550
George Wort [Fri, 16 Jul 2021 12:21:14 +0000 (13:21 +0100)]
Replace USE_ARM_SVE with HAVE_SVE.
Change-Id: I469efaac197cba93201f2ca6eca78ca61be3054d
George Wort [Fri, 16 Jul 2021 10:56:48 +0000 (11:56 +0100)]
Add Licence to state_compress and bitutils.
Change-Id: I958daf82e5aef5bd306424dcfa7812382b266d65
George Wort [Mon, 28 Jun 2021 15:29:43 +0000 (16:29 +0100)]
Implement new Vermicelli16 acceleration functions using SVE2.
The scheme utilises the MATCH and NMATCH instructions to
scan for 16 characters at the same rate as vermicelli
scans for one.
Change-Id: Ie2cef904c56651e6108593c668e9b65bc001a886
George Wort [Wed, 23 Jun 2021 13:14:28 +0000 (14:14 +0100)]
Add SVE2 support for dvermicelli
Change-Id: I056ef15e162ab6fb1f78964321ce893f4096367e
Konstantinos Margaritis [Tue, 20 Jul 2021 11:33:03 +0000 (14:33 +0300)]
add arm rshift128/rshift128
Konstantinos Margaritis [Fri, 23 Jul 2021 15:55:56 +0000 (18:55 +0300)]
fix failing corner case, add pshufb_maskz()
Konstantinos Margaritis [Fri, 23 Jul 2021 08:54:53 +0000 (11:54 +0300)]
use STL make_unique, remove wrapper header, breaks C++17 compilation
Konstantinos Margaritis [Fri, 23 Jul 2021 08:47:45 +0000 (11:47 +0300)]
change C/C++ standard used to C17/C++17
Konstantinos Margaritis [Fri, 23 Jul 2021 08:45:58 +0000 (11:45 +0300)]
remove low4bits from the arguments, fix cases that mostly affect loading large (64) vectors and falling out of bounds
Konstantinos Margaritis [Fri, 23 Jul 2021 08:44:46 +0000 (11:44 +0300)]
fix loadu_maskz, add {l,r}shift128_var(), tab fixes
Konstantinos Margaritis [Fri, 23 Jul 2021 08:43:51 +0000 (11:43 +0300)]
convert to for loops
Konstantinos Margaritis [Fri, 23 Jul 2021 08:43:10 +0000 (11:43 +0300)]
minor fixes, add 2 constructors from half size vectors
Konstantinos Margaritis [Fri, 23 Jul 2021 08:42:13 +0000 (11:42 +0300)]
fix lastMatch<64>
Konstantinos Margaritis [Wed, 21 Jul 2021 10:20:40 +0000 (10:20 +0000)]
provide an {l,r}shift128_var() to fix immediate value build failure in loadu_maskz
Konstantinos Margaritis [Tue, 20 Jul 2021 11:38:19 +0000 (11:38 +0000)]
fix arm loadu_maskz()
Konstantinos Margaritis [Tue, 20 Jul 2021 11:33:03 +0000 (14:33 +0300)]
add arm rshift128/rshift128
Konstantinos Margaritis [Tue, 20 Jul 2021 11:33:03 +0000 (14:33 +0300)]
use rshift128() instead of vector-wide right shift
Konstantinos Margaritis [Tue, 20 Jul 2021 11:32:40 +0000 (14:32 +0300)]
add {l,r}shift128()+tests, rename printv_u64() to print64()