Commit Graph

2477 Commits

Author SHA1 Message Date
dzaima
0d7de8b190 define ux in Singeli, replacing Size; return ux from popc/clz/ctz 2023-07-26 17:42:23 +03:00
dzaima
f416d58579 compiler version updates in readme 2023-07-23 18:00:51 +03:00
dzaima
f7a0eb94a3 don't use AVX2 buffer copying for a 16-byte buffer 2023-07-22 21:34:20 +03:00
dzaima
1451395ef5 don't do fancy char stuff for unchecked arith 2023-07-22 21:13:49 +03:00
dzaima
959614c785 use partial application 2023-07-22 18:19:31 +03:00
dzaima
033f3de6b9 remove unnecessary lambda wrappers
also use fmtnat
2023-07-22 18:15:07 +03:00
dzaima
cc160910a2 update Singeli submodule 2023-07-22 17:43:58 +03:00
dzaima
446b2d09ed Singeli renames & docs 2023-07-22 17:37:20 +03:00
dzaima
6e96600878 move unaligned load & store to base.singeli 2023-07-20 00:21:09 +03:00
dzaima
0486adccb5 fix signedness of abs{x} 2023-07-20 00:19:54 +03:00
dzaima
2243fa76c1 better base case list 2023-07-19 21:56:35 +03:00
dzaima
eb46ec8d9c rename __mulhi & __mul32 2023-07-19 21:54:12 +03:00
dzaima
700d69e7dd unpack → zip & mzip; enable slash.singeli SIMD parts for NEON 2023-07-19 21:39:22 +03:00
dzaima
ba2e859dce use existing unpackLo in neq.singeli 2023-07-19 20:56:08 +03:00
dzaima
0a4a0f3e2a
Merge pull request #88 from mlochbaum/compress
Singeli where/compress
2023-07-19 20:46:52 +03:00
dzaima
19b35e1074 fix size comment 2023-07-19 20:11:14 +03:00
dzaima
9945711b5e AVX2 i32 & i64 slash{} via widening load 2023-07-19 20:00:46 +03:00
dzaima
ff9bb258c2 more comments in slash.singeli 2023-07-19 18:50:01 +03:00
dzaima
48111d4873 extract iota{} for AVX-512 2023-07-19 17:24:20 +03:00
dzaima
a0797318ca use has_simd & arch_defvw 2023-07-19 17:03:41 +03:00
dzaima
03c21112c2 make NEON builds work 2023-07-19 16:58:35 +03:00
dzaima
6930bc34b6 further update slash.c implementation comments 2023-07-19 16:51:24 +03:00
Marshall Lochbaum
77188b8e73 Add clmul.singeli 2023-07-19 09:38:37 -04:00
Marshall Lochbaum
301a23fb1f Update where/compress implementation comments 2023-07-19 09:35:40 -04:00
Marshall Lochbaum
c4364aefa6 SSSE3 4-byte compress with half-width table 2023-07-19 08:15:53 -04:00
Marshall Lochbaum
ba837ba01b Remove table-less where/compress methods, as they're not competitive 2023-07-19 07:22:55 -04:00
Marshall Lochbaum
64d65ae837 Never use generic dense compress methods if use_table: where is faster 2023-07-18 21:35:12 -04:00
Marshall Lochbaum
b0e0f210c6 2- and 4-byte Where with unpack and table 2023-07-18 21:10:39 -04:00
Marshall Lochbaum
93e1262864 Avoid using popcount primitive in Singeli if POPCNT isn't present 2023-07-18 16:52:08 -04:00
Marshall Lochbaum
6df283c379 Always increment by full popcount instead of two halves when splitting byte 2023-07-17 17:52:59 -04:00
Marshall Lochbaum
2f6a8e55a1 Always use vectors for for_special_buffered buffer copy 2023-07-17 16:52:10 -04:00
Marshall Lochbaum
8add95b7ab Remove BMI2 where/compress methods 2023-07-17 16:20:30 -04:00
Marshall Lochbaum
f005169518 1- and 2-byte compress with table and SSSE3 2023-07-17 16:19:05 -04:00
Marshall Lochbaum
68978f7e10 Table-based 1- and 2-byte Where 2023-07-17 16:05:06 -04:00
Marshall Lochbaum
fc187afdf2 Extend 1-byte SSE2 Where to 2-byte and 4-byte with unpacked writes 2023-07-17 11:28:04 -04:00
Marshall Lochbaum
8b297ae2dc Dedicated 32-bit Singeli where, taking index offset 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
3bd8d1de68 Extend all Singeli Compress methods to do Where 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
4415869496 Generic Singeli where implementation 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
c484f8ee8d Avoid UB from shifting by 64 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
da5f1faa07 Merge BMI2 slash{} cases, with some simplifications 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
b244ba98f5 Unify slash1{} and slash2{} 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f5121f6806 Thresholds for compress methods (versus sparse) defined in Singeli 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
824bb04b4d Plain SSE2 1-byte compress 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f852d12a5c Generic Singeli compress implementation 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
f36426031a Slightly faster table-less compress method 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
84a928863b AVX-512 compress implementations 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
80e93c41c9 Use new undefined{type,len} instead of alloca 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
13b3bcd74b Table-less AVX2 1-byte compress 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
d956ba921b Non-overwriting 1-byte and 2-byte compress/where 2023-07-16 21:56:33 -04:00
Marshall Lochbaum
8f4b1966cb Non-overwriting AVX2 4-byte and 8-byte compress, using a buffer 2023-07-16 21:56:33 -04:00