1539 Commits

Author SHA1 Message Date
Konstantinos Margaritis
dcf6b59e8d split vermicelli block implementations per arch 2021-11-08 19:45:21 +00:00
Konstantinos Margaritis
24fa54081b add len parameter and mask, fixes corner cases on AVX512 2021-11-05 14:30:22 +02:00
Konstantinos Margaritis
210295a702 remove vermicelli.h and replace it with vermicelli.hpp 2021-11-02 22:30:53 +02:00
Konstantinos Margaritis
869d2bd53b refactor vermicelliDoubleMaskedExec() 2021-11-02 22:30:21 +02:00
Konstantinos Margaritis
16f3cca98b add vermicelli.hpp to includes 2021-11-01 16:40:17 +00:00
Konstantinos Margaritis
59505f98ba remove vermicelli_sse.h 2021-11-01 16:40:01 +00:00
Konstantinos Margaritis
d55c74b6c4 fix arm matchers 2021-11-01 16:31:38 +00:00
Konstantinos Margaritis
f6fd845400 complete refactoring and unification of Vermicelli functions 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
d47641c2fc remove unneeded header 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
bc1a1127cf add new include file 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
5eabceddcf renamed matcher functions, added new ones for Vermicelli 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
16e5e2ae64 nits 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
713aaef799 move casemask helper functions to separate header 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
4a569affbc add to CMake 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
2fa947af9c added refactored vermicelli_simd.cpp implementation 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
9abfdcaa84 add Vermicelli/RVermicelli to microbenchmark utility 2021-11-01 16:53:21 +02:00
Konstantinos Margaritis
7b65b298c1 add arm vector types in union, avoid -flax-conversions, fix castings 2021-11-01 16:52:17 +02:00
Konstantinos Margaritis
44dc75a3ea complete refactoring and unification of Vermicelli functions 2021-11-01 16:51:18 +02:00
Konstantinos Margaritis
f4a490ac00 remove unneeded header 2021-11-01 16:50:38 +02:00
Konstantinos Margaritis
dd45bf0d35 add new include file 2021-10-27 12:32:54 +03:00
Konstantinos Margaritis
8ae6e613cb renamed matcher functions, added new ones for Vermicelli 2021-10-27 12:32:03 +03:00
Konstantinos Margaritis
70414574ee nits 2021-10-27 12:31:04 +03:00
Konstantinos Margaritis
6e5a8353c5 move casemask helper functions to separate header 2021-10-27 12:30:42 +03:00
Konstantinos Margaritis
70ddb11a72 add to CMake 2021-10-27 12:29:59 +03:00
Konstantinos Margaritis
8be8ed309f added refactored vermicelli_simd.cpp implementation 2021-10-27 12:29:39 +03:00
Konstantinos Margaritis
35a25fffd7 link benchmarks against static lib only as some symbols are not exposed in the shared lib v5.4.4+vectorscan 2021-10-12 10:33:40 +00:00
Konstantinos Margaritis
4e044d4142 Add missing copyright info from tampered files v5.4.3+vectorscan 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
b9801478b2 bump version 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
c3baf3d296 fix multiple/undefined symbols when using fat runtimes 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
2d9f52d03e add arm truffle block function 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
9d0c15c448 add simd_onebit_masks as static in arm simd_utils.h as well 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
aea10b8ab0 simplify truffle and provide arch-specific block functions 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
623c64142b simplify shufti and provide arch-specific block functions 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
577e03e0c7 rearrange method declarations 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
9c54412447 remove simd_utils.c 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
8b7ba89cb5 add x86 vsh* implementations 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
eebd6c97bc use movemask 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
6ceab8435d add header define to avoid double inclusion 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
db6354b787 do not include the Supervector impl.cpp files in fat runtime 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
a78f3789a9 atm, do not built benchmark tool for fat runtime, as the function names are modified, need to rethink this 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
96af3e8613 Improve benchmarks 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
fad39b6058 optimize and simplify Shufti and Truffle to work with a single block method instead 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
456b1c6182 no need to convert to size_t 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
9e6c1c30cf remove asserts, as they are not needed 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
fa3d509fad firstMatch/lastMatch are now arch-dependent, emulating movemask on non-Intel is very costly, the alternative is almost twice as fast on Arm 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
9ab18cf419 fix for new pshufb 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
67e0674df8 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). 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
e7161fdfec initial SSE/AVX2 implementation 2021-10-12 11:51:34 +03:00
Duncan Bellamy
e5e2057ca9 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
2021-10-12 11:51:34 +03:00
apostolos
bc57891aa0 Unify benchmarks, more accurate measurements 2021-10-12 11:51:34 +03:00