Commit Graph

1541 Commits

Author SHA1 Message Date
Konstantinos Margaritis
092e217e85 Merge pull request #78 from VectorCamp/feature/refactor-vermicelli
Feature/refactor vermicelli
2021-11-12 23:06:46 +02:00
Konstantinos Margaritis
a69fe428e3 add len parameter to arm matchers as well 2021-11-08 19:45:36 +00:00
Konstantinos Margaritis
3fd710706a split vermicelli block implementations per arch 2021-11-08 19:45:21 +00:00
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