280 Commits

Author SHA1 Message Date
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
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
George Wort
6c6aee9682 Implement new DoubleVermicelli16 acceleration functions using SVE2
Change-Id: Id4a8ffca840caab930a6e78cc0dfd0fe7d320b4e
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
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
Konstantinos Margaritis
e35b88f2c8 use STL make_unique, remove wrapper header, breaks C++17 compilation 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
a2e6143ea1 convert to for loops 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
6c51f7f591 add {l,r}shift128()+tests, rename printv_u64() to print64() 2021-10-12 11:51:34 +03:00
George Wort
9fb79ac3ec Add SVE2 support for vermicelli
Change-Id: Ia025de53521fbaefe5fb1e4425aaf75c7d80a14e
2021-10-12 11:51:34 +03:00
apostolos
89b123d003 Equal mask test fixed with random numbers 2021-10-12 11:51:34 +03:00
apostolos
6f88ecac44 Supervector test fixes 2021-10-12 11:51:34 +03:00
apostolos
ae6bc52076 SuperVector AVX512 implementations 2021-10-12 11:51:34 +03:00
apostolos
32350cf9b1 SuperVector unit tests for AVX2 and AVX512 added 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
78e098661f tiny change in vector initialization 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
28b2949396 harmonise syntax of x86 SuperVector impl.cpp like arm, fix alignr, define printv_* functions when on debug mode only 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
2753dbb3b0 rename supervector class header, use dup_*() functions names instead of set1_*(), minor fixes 2021-10-12 11:51:34 +03:00
apostolos
1ce5e17ce9 Truffle simd vectorized 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
5297ed5038 syntax fixes 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
e49fa3a97a fix unit tests, and resp. ARM SuperVector methods based on those unit tests, add print functions for SuperVector 2021-10-12 11:51:34 +03:00
apostolos
1e434a9b3d Supervector Unit Tests 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
5d9d958e74 disable SuperVector unit tests for now, until ARM support is included 2021-10-12 11:51:34 +03:00
apostolos
feb2d3ccf7 SuperVector unit tests 2021-10-12 11:51:34 +03:00
apostolos
096fb55faa unit tests for supervector 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
27bd09454f use correct function names for AVX512, fix build failure 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
e21305aa23 align array 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
04567ab649 use correct include 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
814045201f add BUILD_AVX2 definition, enable non-AVX2 building selectively 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
f541f75400 bugfix compress128/expand128, add unit tests 2021-02-08 19:20:37 +02:00
Wang Xiang W
9ea1e4be3d limex: add fast NFA check 2021-01-25 14:13:13 +02:00
Konstantinos Margaritis
51dcfa8571 fix compilation on non-x86 2021-01-25 12:13:35 +02:00
Konstantinos Margaritis
38477b08bc fix movq and load_m128_from_u64a and resp. test for NEON 2020-12-03 19:27:38 +02:00
Konstantinos Margaritis
62fed20ad0 add some debug and minor optimizations in unit test 2020-11-05 19:21:16 +02:00
Konstantinos Margaritis
0bef151437 don't use SSE directly in the tests 2020-10-30 10:38:05 +02:00
Hong, Yang A
4d33736a5c gcc-10: fix hyperscan compile issue
Fixes github issue #239
2020-05-25 13:47:53 +00:00
Bobby Martin
e395cd3166 Add windows DLL support
(with AVX2 flag removed currently)
2019-08-13 14:52:38 +08:00
Chang, Harry
4b1927c038 Logical combination: add purely negative match at EOD unit test
MultiCombPurelyNegativeUniSubEOD6.
2019-08-13 14:50:39 +08:00
Chang, Harry
fdc3c290b6 Logical combination: add streaming mode unit test MultiCombStream1. 2019-08-13 14:50:32 +08:00
Chang, Harry
1f4c10a58d Logical combination: support EOD match from purely negative case. 2019-08-13 14:50:07 +08:00
Carlo Marcelo Arenas Belón
f28feee57d unit: avoid UB by making integer literal explicitally unsigned
reported by cppcheck as:

[unit/internal/uniform_ops.cpp:78]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
[unit/internal/uniform_ops.cpp:109]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
[unit/internal/uniform_ops.cpp:127]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
[unit/internal/uniform_ops.cpp:145]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour
2019-08-13 14:49:37 +08:00
Hong, Yang A
224b16cd2f unit: check fix of rose instr program dead loop 2019-04-10 06:53:26 -04:00
Wang, Xiang W
b0c0d9cd92 unit: check return value of malloc 2019-01-29 14:16:59 +08:00
Lu, Qi
5a0885d235 Windows porting: port hyperscan and chimera tools to windows. 2018-07-09 11:40:43 -04:00
Wang, Xiang W
bf87f8c003 chimera: hybrid of Hyperscan and PCRE 2018-07-09 11:30:35 -04:00
Chang, Harry
8a1c497f44 Logical Combination of patterns. 2018-06-27 14:04:57 +08:00
Wang, Xiang W
08b00f6149 hscollider: fix input length for UTF8 check 2018-06-27 14:04:53 +08:00