Commit Graph

  • b48ea2c1a6 Remove first check from scanDouble Noodle. George Wort 2021-06-30 14:13:27 +01:00
  • 89b123d003 Equal mask test fixed with random numbers apostolos 2021-07-19 13:12:58 +03:00
  • 6f88ecac44 Supervector test fixes apostolos 2021-07-19 10:23:11 +03:00
  • ae6bc52076 SuperVector AVX512 implementations apostolos 2021-07-16 11:17:28 +03:00
  • 32350cf9b1 SuperVector unit tests for AVX2 and AVX512 added apostolos 2021-07-13 16:38:25 +03:00
  • 7ae636dfe9 really fix lshift for avx2 Konstantinos Margaritis 2021-07-13 13:19:48 +03:00
  • c44fa634d1 disable OPTIMISE by default Konstantinos Margaritis 2021-07-12 21:12:21 +03:00
  • d04b899c29 fix truffle SIMD for S>16 as well Konstantinos Margaritis 2021-07-12 21:12:05 +03:00
  • b42b187712 add AVX2 specializations Konstantinos Margaritis 2021-07-12 21:09:10 +03:00
  • dede600637 lots of fixes to AVX2 implementation Konstantinos Margaritis 2021-07-12 21:08:51 +03:00
  • c45e72775f convert print helper functions to class methods Konstantinos Margaritis 2021-07-12 20:59:09 +03:00
  • 78e098661f tiny change in vector initialization Konstantinos Margaritis 2021-07-12 20:57:44 +03:00
  • d453a612dc fix last failing Shufti/Truffle tests Konstantinos Margaritis 2021-07-06 09:22:31 +03:00
  • ec3f108d71 fix arm SuperVector implementation Konstantinos Margaritis 2021-07-06 09:22:00 +03:00
  • 0ed10082b1 fix rtruffle, was failing Lbr and a few ReverseTruffle tests Konstantinos Margaritis 2021-07-05 13:06:12 +03:00
  • f425951b49 fix x86 debug alignr Konstantinos Margaritis 2021-07-05 09:07:02 +03:00
  • 845e533b66 move firstMatch, lastMatch to own header in util Konstantinos Margaritis 2021-07-04 19:12:23 +03:00
  • 41ff0962c4 minor fixes Konstantinos Margaritis 2021-07-04 19:11:55 +03:00
  • 6d8f3b9ff8 compilation fixes for debug mode Konstantinos Margaritis 2021-07-04 14:46:50 +03:00
  • d7b247a949 fix arm implementation of alignr() Konstantinos Margaritis 2021-07-02 20:16:23 +03:00
  • 28b2949396 harmonise syntax of x86 SuperVector impl.cpp like arm, fix alignr, define printv_* functions when on debug mode only Konstantinos Margaritis 2021-07-02 19:53:37 +03:00
  • 9de3065e68 style fixes Konstantinos Margaritis 2021-07-02 19:28:37 +03:00
  • e0a45a354d removed obsolete file Konstantinos Margaritis 2021-07-02 19:16:18 +03:00
  • 2753dbb3b0 rename supervector class header, use dup_*() functions names instead of set1_*(), minor fixes Konstantinos Margaritis 2021-07-02 19:11:44 +03:00
  • 9685095379 handle GNUCC_ARCH on non-x86 properly Konstantinos Margaritis 2021-07-02 19:10:21 +03:00
  • 1ce5e17ce9 Truffle simd vectorized apostolos 2021-07-02 17:12:47 +03:00
  • d1009e8830 Fix error in initial noodle double final call. George Wort 2021-06-22 12:34:35 +01:00
  • 5297ed5038 syntax fixes Konstantinos Margaritis 2021-06-23 22:20:01 +03:00
  • 8b09ecfe48 nits Konstantinos Margaritis 2021-06-23 22:19:16 +03:00
  • cceb599fc9 fix typo Konstantinos Margaritis 2021-06-23 22:16:56 +03:00
  • e49fa3a97a fix unit tests, and resp. ARM SuperVector methods based on those unit tests, add print functions for SuperVector Konstantinos Margaritis 2021-06-23 22:16:24 +03:00
  • 1e434a9b3d Supervector Unit Tests apostolos 2021-06-22 13:08:00 +03:00
  • d6df8116a5 Add SVE2 support for noodle George Wort 2021-05-25 11:10:25 +01:00
  • acca824dea add missing ARM SuperVector methods, some tests still fail, WIP Konstantinos Margaritis 2021-06-11 13:33:01 +03:00
  • 5d9d958e74 disable SuperVector unit tests for now, until ARM support is included Konstantinos Margaritis 2021-06-11 13:27:19 +03:00
  • 6fbd18183a rename arm impl.hpp to impl.cpp, add operator|() to SuperVector class Konstantinos Margaritis 2021-06-10 13:35:51 +03:00
  • 23b075cbd4 refactor shufti algorithm to use SuperVector class, WIP Konstantinos Margaritis 2021-06-10 13:34:38 +03:00
  • 3ee7b75ee0 Add SVE, SVE2, and SVE2_BITPERM as targets George Wort 2021-05-17 17:13:14 +01:00
  • b6c3ab723b Enable cross compilation to aarch64 George Wort 2021-05-17 15:17:38 +01:00
  • feb2d3ccf7 SuperVector unit tests apostolos 2021-06-11 11:54:47 +03:00
  • 096fb55faa unit tests for supervector apostolos 2021-06-09 11:58:59 +03:00
  • 6526df81e4 add more functions, move defines here, enable inlining of template specializations only when running optimized code Konstantinos Margaritis 2021-06-07 10:07:29 +03:00
  • d8b5eb5d17 fix compilation on C++ Konstantinos Margaritis 2021-06-07 10:04:57 +03:00
  • 273b9683ac simplify function Konstantinos Margaritis 2021-06-07 10:04:36 +03:00
  • e215157a21 move definitions elsewhere Konstantinos Margaritis 2021-06-07 10:04:19 +03:00
  • 05c7c8e576 move SuperVector versions of noodleEngine scan functions to _simd.hpp file Konstantinos Margaritis 2021-05-25 17:15:00 +03:00
  • 6e63aafbea add arm support for the new SuperVector class Konstantinos Margaritis 2021-05-13 20:06:34 +03:00
  • c6406bebde simplify scanSingleMain() and scanDoubleMain() Konstantinos Margaritis 2021-05-13 17:53:12 +03:00
  • f77837130d delete separate implementations Konstantinos Margaritis 2021-05-12 20:18:05 +03:00
  • e6c1fa04ce add C++ template SIMD library (WIP) Konstantinos Margaritis 2021-05-12 13:31:12 +03:00
  • ede2b18564 add generic SIMD implementation Konstantinos Margaritis 2021-05-12 13:30:20 +03:00
  • 5213ef579d rename project, change to noodle_engine.cpp Konstantinos Margaritis 2021-05-12 13:29:50 +03:00
  • 7a9a2dd0dc convert to C++ Konstantinos Margaritis 2021-05-12 13:29:16 +03:00
  • 2805ff038a revert to push_back() Konstantinos Margaritis 2021-05-12 13:27:18 +03:00
  • 52661f35e8 add global definitions for CHUNKSIZE/VECTORSIZE, define HAVE_AVX512* only when BUILD_AVX512 is also enabled Konstantinos Margaritis 2021-05-12 13:26:42 +03:00
  • 831091db9e fix typo Konstantinos Margaritis 2021-05-12 13:25:41 +03:00
  • 556206f138 replace push_back by emplace_back where possible Konstantinos Margaritis 2021-03-26 12:39:40 +02:00
  • 9f7088a9e0 use -O3 for C++ code as well, makes a difference Konstantinos Margaritis 2021-03-22 19:43:38 +02:00
  • 48e9a17f0a merge with master Konstantinos Margaritis 2021-10-12 11:51:20 +03:00
  • ec5531a6b1 minor optimizations Konstantinos Margaritis 2021-03-16 17:47:00 +02:00
  • d3ff893871 prefetch works best when addresses are 64-byte aligned Konstantinos Margaritis 2021-03-12 10:10:53 +02:00
  • 521f233cfd Revert "replace long macro and switch statement with function pointer array and branchless execution" Konstantinos Margaritis 2021-02-26 16:40:58 +02:00
  • 92916e311f replace long macro and switch statement with function pointer array and branchless execution Konstantinos Margaritis 2021-02-26 16:39:24 +02:00
  • 58cface115 optimise case handling Konstantinos Margaritis 2021-02-22 13:59:05 +02:00
  • e3e101b412 simplify and make scanSingle*()/scanDouble*() more uniform Konstantinos Margaritis 2021-02-19 12:16:43 +02:00
  • 2f13ad0674 optimize caseMask handling Konstantinos Margaritis 2021-02-16 22:10:42 +02:00
  • 387c45a990 * 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 develop-SVE2-r20210721 Konstantinos Margaritis 2021-07-26 19:13:33 +03:00
  • 0f39535621 Move SVE functions into their own files. George Wort 2021-07-20 18:13:02 +01:00
  • 87a6733fbe Implement new DoubleVermicelli16 acceleration functions using SVE2 George Wort 2021-06-28 16:29:43 +01:00
  • 854854d8cf Use SVE shufti for counting miracles. George Wort 2021-07-02 15:54:42 +01:00
  • 2686048e6c Use SVE for double shufti. George Wort 2021-07-13 20:39:53 +01:00
  • a94219aaed Use SVE for single shufti. George Wort 2021-07-13 15:09:38 +01:00
  • 6e434318a1 Use SVE2 for counting miracles. George Wort 2021-07-02 15:53:43 +01:00
  • 6d23032a6b Replace USE_ARM_SVE with HAVE_SVE. George Wort 2021-07-16 13:21:14 +01:00
  • ca7d5d7536 Add Licence to state_compress and bitutils. George Wort 2021-07-16 11:56:48 +01:00
  • db0d8f79e6 Implement new Vermicelli16 acceleration functions using SVE2. George Wort 2021-06-28 16:29:43 +01:00
  • 185c45263b Add SVE2 support for dvermicelli George Wort 2021-06-23 14:14:28 +01:00
  • 455789db9f add arm rshift128/rshift128 Konstantinos Margaritis 2021-07-20 14:33:03 +03:00
  • 55d5631c5c fix failing corner case, add pshufb_maskz() Konstantinos Margaritis 2021-07-23 18:55:56 +03:00
  • be5a675da8 use STL make_unique, remove wrapper header, breaks C++17 compilation Konstantinos Margaritis 2021-07-23 11:54:53 +03:00
  • 18693bd14c change C/C++ standard used to C17/C++17 Konstantinos Margaritis 2021-07-23 11:47:45 +03:00
  • 369e0d473d remove low4bits from the arguments, fix cases that mostly affect loading large (64) vectors and falling out of bounds Konstantinos Margaritis 2021-07-23 11:45:58 +03:00
  • 47e29602e0 fix loadu_maskz, add {l,r}shift128_var(), tab fixes Konstantinos Margaritis 2021-07-23 11:44:46 +03:00
  • e25c8ad78b convert to for loops Konstantinos Margaritis 2021-07-23 11:43:51 +03:00
  • b517cbfb8a minor fixes, add 2 constructors from half size vectors Konstantinos Margaritis 2021-07-23 11:43:10 +03:00
  • e047fcf629 fix lastMatch<64> Konstantinos Margaritis 2021-07-23 11:42:13 +03:00
  • 0d1d76140a provide an {l,r}shift128_var() to fix immediate value build failure in loadu_maskz Konstantinos Margaritis 2021-07-21 10:20:40 +00:00
  • f680a79f1e fix arm loadu_maskz() Konstantinos Margaritis 2021-07-20 11:38:19 +00:00
  • b0fbb39cf0 add arm rshift128/rshift128 Konstantinos Margaritis 2021-07-20 14:33:03 +03:00
  • e1950f1ce5 use rshift128() instead of vector-wide right shift Konstantinos Margaritis 2021-07-20 14:33:03 +03:00
  • 93abed4d87 add {l,r}shift128()+tests, rename printv_u64() to print64() Konstantinos Margaritis 2021-07-20 14:32:40 +03:00
  • e325ce9452 Use SVE2 Bitperm's bdep instruction in bitutils and state_compress George Wort 2021-07-02 10:43:48 +01:00
  • 726a668b65 Fix CROSS_COMPILE_AARCH64 for SVE issues. George Wort 2021-07-12 17:08:11 +01:00
  • 7d7d31ec0d Add SVE2 support for vermicelli George Wort 2021-06-07 13:55:09 +01:00
  • 418851a26e Remove possibly undefined behaviour from Noodle. George Wort 2021-07-01 14:19:20 +01:00
  • f99c380167 Remove first check from scanDouble Noodle. George Wort 2021-06-30 14:13:27 +01:00
  • 80c01e451d Equal mask test fixed with random numbers apostolos 2021-07-19 13:12:58 +03:00
  • 4326aecfda Supervector test fixes apostolos 2021-07-19 10:23:11 +03:00
  • a98a114568 SuperVector AVX512 implementations apostolos 2021-07-16 11:17:28 +03:00
  • 17bf07f446 SuperVector unit tests for AVX2 and AVX512 added apostolos 2021-07-13 16:38:25 +03:00