1703 Commits

Author SHA1 Message Date
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
Konstantinos Margaritis
b40899966f Unify benchmarks, more accurate measurements
(cherry picked from commit f50d7656bc78c54ec25916b6c8e655c188d79a13)
2021-10-12 11:51:34 +03:00
apostolos
d7e9d2d915 benchmarks functions replaced with lambdas 2021-10-12 11:51:34 +03:00
apostolos
cf1d72745c raw pointers replaced with smart pointers 2021-10-12 11:51:34 +03:00
apostolos
c774a76f24 nit 2021-10-12 11:51:34 +03:00
apostolos
a86d6c290d nit 2021-10-12 11:51:34 +03:00
apostolos
ee8fa17351 fix benchmarks outputs 2021-10-12 11:51:34 +03:00
apostolos
53b9034546 bandwidth output fixes 2021-10-12 11:51:34 +03:00
apostolos
0e141ce700 size outup for case with match fixed 2021-10-12 11:51:34 +03:00
apostolos
5d4adf267d nits 2021-10-12 11:51:34 +03:00
apostolos
2e6c75c895 size output fixed 2021-10-12 11:51:34 +03:00
apostolos
9901477bcf nits 2021-10-12 11:51:34 +03:00
apostolos
2b9636ccc0 benchmarks output fixes 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
91f58fb1ca add missing header 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
be1551aa94 remove confusing OPTIMISE flag 2021-10-12 11:51:34 +03:00
apostolos
4027319d6c nits 2021-10-12 11:51:34 +03:00
apostolos
1009391d9f code size reduction by using function arrays and add bandwidth to output 2021-10-12 11:51:34 +03:00
apostolos
904a94fbe5 micro-benchmarks for shufti, trufle and noodle added 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
08357a096c remove Windows/ICC support 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
8cff876962 fix lshift128 test 2021-10-12 11:51:34 +03:00
apostolos
67fa6d2738 alignr methods for avx2 and avx512 added 2021-10-12 11:51:34 +03:00
apostolos
b3a20afbbc limex_shuffle added and it's unit tests 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
de30471edd remove duplicate functions from previous merge 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
e5050c9373 add missing compile flags 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
7f5e859019 add accidentally removed lines 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
deae90f947 * 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
2021-10-12 11:51:34 +03:00
George Wort
a879715953 Move SVE functions into their own files.
Change-Id: I995ba4b7d2b558ee403693ee45d747d414d3b177
2021-10-12 11:51:34 +03:00
George Wort
6c6aee9682 Implement new DoubleVermicelli16 acceleration functions using SVE2
Change-Id: Id4a8ffca840caab930a6e78cc0dfd0fe7d320b4e
2021-10-12 11:51:34 +03:00
George Wort
25183089fd Use SVE shufti for counting miracles.
Change-Id: Idd4aaf5bbc05fc90e9138c6fed385bc6ffa7b0b8
2021-10-12 11:51:34 +03:00
George Wort
00fff3f53c Use SVE for double shufti.
Change-Id: I09e0d57bb8a2f05b613f6225dea79ae823136268
2021-10-12 11:51:34 +03:00
George Wort
c95a4c3dd1 Use SVE for single shufti.
Change-Id: Ic76940c5bb9b81a1c45d39e9ca396a158c50a7dc
2021-10-12 11:51:34 +03:00
George Wort
56ef2d5f72 Use SVE2 for counting miracles.
Change-Id: I048dc182e5f4e726b847b3285ffafef4f538e550
2021-10-12 11:51:34 +03:00
George Wort
ab5d4d9279 Replace USE_ARM_SVE with HAVE_SVE.
Change-Id: I469efaac197cba93201f2ca6eca78ca61be3054d
2021-10-12 11:51:34 +03:00
George Wort
8242f46ed7 Add Licence to state_compress and bitutils.
Change-Id: I958daf82e5aef5bd306424dcfa7812382b266d65
2021-10-12 11:51:34 +03:00
George Wort
df926ef62f 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
2021-10-12 11:51:34 +03:00
George Wort
c7086cb7f1 Add SVE2 support for dvermicelli
Change-Id: I056ef15e162ab6fb1f78964321ce893f4096367e
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
a38324a5a3 add arm rshift128/rshift128 2021-10-12 11:51:34 +03:00