Commit Graph

1128 Commits

Author SHA1 Message Date
George Wort
418851a26e Remove possibly undefined behaviour from Noodle.
Change-Id: I9a7997cea6a48927cb02b00c5dba5009bbf83850
2021-07-26 00:10:54 +03:00
George Wort
f99c380167 Remove first check from scanDouble Noodle.
Change-Id: I00eabb3cb06ef6a2060df52c26fa8591907a2711
2021-07-26 00:10:54 +03:00
apostolos
4326aecfda Supervector test fixes 2021-07-26 00:10:54 +03:00
apostolos
a98a114568 SuperVector AVX512 implementations 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
56b124b9a1 really fix lshift for avx2 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
6ad1e70c36 fix truffle SIMD for S>16 as well 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
46c37ece4b add AVX2 specializations 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
65d911c976 lots of fixes to AVX2 implementation 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
517d2aa633 convert print helper functions to class methods 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
9c2c6fdcfc fix last failing Shufti/Truffle tests 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
3021db0a17 fix arm SuperVector implementation 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
0576c5e8b1 fix rtruffle, was failing Lbr and a few ReverseTruffle tests 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
d1097e713d fix x86 debug alignr 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
848a583599 move firstMatch, lastMatch to own header in util 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
e31dd448b4 minor fixes 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
69378e7eee compilation fixes for debug mode 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
a5cce2670e fix arm implementation of alignr() 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
736da56850 harmonise syntax of x86 SuperVector impl.cpp like arm, fix alignr, define printv_* functions when on debug mode only 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
f6edd100c4 style fixes 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
a6bbe55574 removed obsolete file 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
6348a2f222 rename supervector class header, use dup_*() functions names instead of set1_*(), minor fixes 2021-07-26 00:10:54 +03:00
apostolos
885a4da0c8 Truffle simd vectorized 2021-07-26 00:10:54 +03:00
George Wort
b190e9d364 Fix error in initial noodle double final call.
Change-Id: Ie044988f183b47e0b2f1eed3b4bd23de75c3117d
2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
1c0d9f399f nits 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
0fbd90c511 fix typo 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
f7ae729930 fix unit tests, and resp. ARM SuperVector methods based on those unit tests, add print functions for SuperVector 2021-07-26 00:10:54 +03:00
George Wort
530b33a309 Add SVE2 support for noodle
Change-Id: Iacb7d1f164bdd0ba50e2e13d26fe548cf9b45a6a
2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
655c2eb87f add missing ARM SuperVector methods, some tests still fail, WIP 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
38600b717e rename arm impl.hpp to impl.cpp, add operator|() to SuperVector class 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
b33b7a3ee4 refactor shufti algorithm to use SuperVector class, WIP 2021-07-26 00:10:54 +03:00
George Wort
27b1bea462 Add SVE, SVE2, and SVE2_BITPERM as targets
Change-Id: I5231e2eb0a31708a16c853dc83ea48db32e0b0a5
2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
cc26212560 add more functions, move defines here, enable inlining of template specializations only when running optimized code 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
74e460d89b fix compilation on C++ 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
492874db43 simplify function 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
c4685b14a6 move definitions elsewhere 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
faae8819f3 move SuperVector versions of noodleEngine scan functions to _simd.hpp file 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
d232a50d72 add arm support for the new SuperVector class 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
6e804d8b16 simplify scanSingleMain() and scanDoubleMain() 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
0ccf9280ff delete separate implementations 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
73199585dd add C++ template SIMD library (WIP) 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
dc519e22fc add generic SIMD implementation 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
80a6b55bd4 convert to C++ 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
61f68f9d3b revert to push_back() 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
8d9dd3c286 add global definitions for CHUNKSIZE/VECTORSIZE, define HAVE_AVX512* only when BUILD_AVX512 is also enabled 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
c15018286a fix typo 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
7c6e47c95b replace push_back by emplace_back where possible 2021-07-26 00:10:54 +03:00
Konstantinos Margaritis
8d464477ad minor optimizations 2021-03-16 17:47:00 +02:00
Konstantinos Margaritis
40531ad6e5 prefetch works best when addresses are 64-byte aligned 2021-03-12 10:10:53 +02:00
Konstantinos Margaritis
53a3e33204 Revert "replace long macro and switch statement with function pointer array and branchless execution"
This reverts commit cc9dfed249.
2021-02-26 16:40:58 +02:00
Konstantinos Margaritis
cc9dfed249 replace long macro and switch statement with function pointer array and branchless execution 2021-02-26 16:39:24 +02:00