Commit Graph

1538 Commits

Author SHA1 Message Date
Konstantinos Margaritis
6317e24a82 add len parameter and mask, fixes corner cases on AVX512 2021-11-05 14:30:22 +02:00
Konstantinos Margaritis
694e2faf7f remove vermicelli.h and replace it with vermicelli.hpp 2021-11-02 22:30:53 +02:00
Konstantinos Margaritis
80286f38cb refactor vermicelliDoubleMaskedExec() 2021-11-02 22:30:21 +02:00
Konstantinos Margaritis
144f68ae03 add vermicelli.hpp to includes 2021-11-01 16:40:17 +00:00
Konstantinos Margaritis
c5e70b11b7 remove vermicelli_sse.h 2021-11-01 16:40:01 +00:00
Konstantinos Margaritis
570a3c7203 fix arm matchers 2021-11-01 16:31:38 +00:00
Konstantinos Margaritis
4db360c7b6 complete refactoring and unification of Vermicelli functions 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
94b467dc12 remove unneeded header 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
0d886f7800 add new include file 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
54245bc5ac renamed matcher functions, added new ones for Vermicelli 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
1c1a06aaae nits 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
9e69273807 move casemask helper functions to separate header 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
814a4ef0c0 add to CMake 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
d6fe28afc8 added refactored vermicelli_simd.cpp implementation 2021-11-01 16:05:43 +00:00
Konstantinos Margaritis
b4d53349cd add Vermicelli/RVermicelli to microbenchmark utility 2021-11-01 16:53:21 +02:00
Konstantinos Margaritis
5e59b36634 add arm vector types in union, avoid -flax-conversions, fix castings 2021-11-01 16:52:17 +02:00
Konstantinos Margaritis
466650ceac complete refactoring and unification of Vermicelli functions 2021-11-01 16:51:18 +02:00
Konstantinos Margaritis
5dd0cd001e remove unneeded header 2021-11-01 16:50:38 +02:00
Konstantinos Margaritis
31f1e0fdc0 add new include file 2021-10-27 12:32:54 +03:00
Konstantinos Margaritis
78c2d0a50e renamed matcher functions, added new ones for Vermicelli 2021-10-27 12:32:03 +03:00
Konstantinos Margaritis
8b355cff55 nits 2021-10-27 12:31:04 +03:00
Konstantinos Margaritis
71e043cfa7 move casemask helper functions to separate header 2021-10-27 12:30:42 +03:00
Konstantinos Margaritis
2605db7979 add to CMake 2021-10-27 12:29:59 +03:00
Konstantinos Margaritis
d52428694b added refactored vermicelli_simd.cpp implementation 2021-10-27 12:29:39 +03:00
Konstantinos Margaritis
9f7b2fa8a8 link benchmarks against static lib only as some symbols are not exposed in the shared lib 2021-10-12 10:33:40 +00:00
Konstantinos Margaritis
2b3d0a355b Add missing copyright info from tampered files 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
9e07d7971d bump version 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
4a4a851c6d fix multiple/undefined symbols when using fat runtimes 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
ae81088193 add arm truffle block function 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
45f395245b add simd_onebit_masks as static in arm simd_utils.h as well 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
a654204122 simplify truffle and provide arch-specific block functions 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
92e0b9a351 simplify shufti and provide arch-specific block functions 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
a1acc456cc rearrange method declarations 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
f2e45ccc06 remove simd_utils.c 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
2f55e5b54f add x86 vsh* implementations 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
3248393d1a use movemask 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
a85b1c75d1 add header define to avoid double inclusion 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
6ec68bbedd do not include the Supervector impl.cpp files in fat runtime 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
ba9d11c1b9 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
b8bf6063b6 Improve benchmarks 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
f6f7d7a039 optimize and simplify Shufti and Truffle to work with a single block method instead 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
ef7da97aa1 no need to convert to size_t 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
1503d9a946 remove asserts, as they are not needed 2021-10-12 11:51:35 +03:00
Konstantinos Margaritis
5563f0c3b6 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
690e3c24e6 fix for new pshufb 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
1af82e395f 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
a3f083a9ff initial SSE/AVX2 implementation 2021-10-12 11:51:34 +03:00
Duncan Bellamy
314116cbb5 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
70092c48b6 Unify benchmarks, more accurate measurements 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
6a72d7b5ca Unify benchmarks, more accurate measurements
(cherry picked from commit f50d7656bc78c54ec25916b6c8e655c188d79a13)
2021-10-12 11:51:34 +03:00