Commit Graph

243 Commits

Author SHA1 Message Date
Konstantinos Margaritis
0d886f7800 add new include file 2021-11-01 16:28:50 +00:00
Konstantinos Margaritis
5e59b36634 add arm vector types in union, avoid -flax-conversions, fix castings 2021-11-01 16:52:17 +02:00
apostolos
3a4d8afb48 prints commants and formating fixes 2021-11-01 10:09:15 +02:00
apostolos
b8d3d81d7f nits 2021-10-26 11:55:02 +03:00
apostolos
d06839ad8b Special case for Shuffle test added as well as comments for respectives implementations 2021-10-26 11:48:33 +03:00
Apostolos Tapsas
4f53ec6b08 Shuffle simd and SuperVector implementetions as well as their test realy fixed 2021-10-25 09:19:30 +03:00
Apostolos Tapsas
789f723814 SuperVector shuffle implementation and test function optimized 2021-10-22 11:55:39 +00:00
apostolos
ddebbeeb11 print functions keyword renamed 2021-10-22 12:36:07 +03:00
apostolos
ea5add7d4f test for movemask and shuffle cases added 2021-10-22 11:17:43 +03:00
Apostolos Tapsas
7978b3f054 WIP: simd & bitutils files finctions fixes 2021-10-21 13:34:02 +00:00
Apostolos Tapsas
3423ea5b2b WIP: Power VSX support almost completed 2021-10-14 13:53:55 +03:00
Konstantinos Margaritis
2f55e5b54f add x86 vsh* implementations 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
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
apostolos
bb9bcb3760 micro-benchmarks for shufti, trufle and noodle added 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
cf4b95fff2 remove Windows/ICC support 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
752d6cf997 fix lshift128 test 2021-10-12 11:51:34 +03:00
apostolos
b26a88efe5 alignr methods for avx2 and avx512 added 2021-10-12 11:51:34 +03:00
apostolos
150ae10ea4 limex_shuffle added and it's unit tests 2021-10-12 11:51:34 +03:00
George Wort
e1f0f6baf7 Implement new DoubleVermicelli16 acceleration functions using SVE2
Change-Id: Id4a8ffca840caab930a6e78cc0dfd0fe7d320b4e
2021-10-12 11:51:34 +03:00
George Wort
60b2112505 Use SVE for double shufti.
Change-Id: I09e0d57bb8a2f05b613f6225dea79ae823136268
2021-10-12 11:51:34 +03:00
George Wort
b54710d208 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
5adbfc94b8 use STL make_unique, remove wrapper header, breaks C++17 compilation 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
d6fd17ec82 convert to for loops 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
5fd1ed58e6 add {l,r}shift128()+tests, rename printv_u64() to print64() 2021-10-12 11:51:34 +03:00
George Wort
acfa11a34f Add SVE2 support for vermicelli
Change-Id: Ia025de53521fbaefe5fb1e4425aaf75c7d80a14e
2021-10-12 11:51:34 +03:00
apostolos
ce9ffe9bce Equal mask test fixed with random numbers 2021-10-12 11:51:34 +03:00
apostolos
b1dfc6abc4 Supervector test fixes 2021-10-12 11:51:34 +03:00
apostolos
a369e3aa53 SuperVector AVX512 implementations 2021-10-12 11:51:34 +03:00
apostolos
3f72b681cc SuperVector unit tests for AVX2 and AVX512 added 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
1f496a1411 tiny change in vector initialization 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
f59be47288 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
c2a5de03e0 rename supervector class header, use dup_*() functions names instead of set1_*(), minor fixes 2021-10-12 11:51:34 +03:00
apostolos
bab390d442 Truffle simd vectorized 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
736286c2f3 syntax fixes 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
24b984483b 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
0adc21bee6 Supervector Unit Tests 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
080de16428 disable SuperVector unit tests for now, until ARM support is included 2021-10-12 11:51:34 +03:00
apostolos
1e7765c485 SuperVector unit tests 2021-10-12 11:51:34 +03:00
apostolos
8bbcfe698a unit tests for supervector 2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
1c1bca4f98 use correct function names for AVX512, fix build failure 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
fd881a22ef align array 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
f838d46cc2 use correct include 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
71c59a95e9 add BUILD_AVX2 definition, enable non-AVX2 building selectively 2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
2ebb7d2b21 bugfix compress128/expand128, add unit tests 2021-02-08 19:20:37 +02:00
Wang Xiang W
a307e11283 limex: add fast NFA check 2021-01-25 14:13:13 +02:00
Konstantinos Margaritis
700a0a093c fix compilation on non-x86 2021-01-25 12:13:35 +02:00
Konstantinos Margaritis
ffbb6eb548 fix movq and load_m128_from_u64a and resp. test for NEON 2020-12-03 19:27:38 +02:00
Konstantinos Margaritis
e00190fb52 add some debug and minor optimizations in unit test 2020-11-05 19:21:16 +02:00