Commit Graph

264 Commits

Author SHA1 Message Date
Marshall Lochbaum
53fb8db06f SSSE3 support in bit-table code 2023-05-11 21:05:24 -04:00
Marshall Lochbaum
464dd27a37 SIMD table intialization for Index-of 2023-05-11 21:05:24 -04:00
Marshall Lochbaum
844b537593 Singeli 1-byte table implementations for generic architecture 2023-05-11 21:05:23 -04:00
Marshall Lochbaum
6c81fb3149 Make AVX2 deduplicate branchless 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
1700d84740 AVX2 1-byte Deduplicate implementation 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9658104f3e Unify AVX2 bit-table code between Member-of and Mark Firsts 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
ba43dae908 Heuristic filtering when AVX2 Mark Firsts sees multiple new values 2023-05-11 21:04:58 -04:00
Marshall Lochbaum
9c7c6aabc5 AVX2 Mark Firsts implementation 2023-05-11 21:04:56 -04:00
Marshall Lochbaum
2fafe11d7c Fix fill_bittab tail masking for t=0 and simplify 2023-05-11 20:59:53 -04:00
Marshall Lochbaum
e45231154c Reverse lookup initialization for 1-byte Member-of 2023-05-11 20:59:53 -04:00
Marshall Lochbaum
0232f91582 AVX2 bit table Member-of 2023-05-11 20:59:52 -04:00
dzaima
03a28e4e34 fix float normalization from a •bit._cast result mutating the original 2023-05-11 22:39:59 +03:00
dzaima
300d217ee8 move SIMD constrep functions to a table 2023-05-09 00:14:14 +03:00
dzaima
56d1453185 use destructuring more in Singeli 2023-05-06 13:18:00 +03:00
dzaima
c567dff565 fix leading-axis operations on empty inputs 2023-04-30 19:15:46 +03:00
dzaima
1e11cf93c1 faster leading axis arithmetic 2023-04-30 17:27:07 +03:00
dzaima
aa5ed7cc7a BB2B & BBB2B → FC1 & FC2 2023-04-29 15:31:31 +03:00
dzaima
34a4d48d95 make singeli assertions checked in debug mode 2023-04-28 15:10:08 +03:00
dzaima
187eea1197 use memcpy for non-tiny equal-size copying 2023-04-26 20:19:05 +03:00
dzaima
01b17ea0d9 remove now-unnecessary workaround for float constant 2023-04-21 15:46:54 +03:00
dzaima
a622a6761b use vtestz/vptestz instead of movemask for mask-any checks 2023-04-15 15:10:58 +03:00
dzaima
712707d27b integer avx2 bitwise operation definitions
mainly for reduced casts in C output
2023-04-15 15:00:57 +03:00
dzaima
722107e470 move makeOptBranch to base.singeli, use in search 2023-04-15 12:32:14 +03:00
dzaima
147d4530c1 slightly better overflow check for i8×i8→i8 2023-04-15 01:53:04 +03:00
dzaima
bbb9e7f0ed don't overflow-check widening array-scalar cases when not needed 2023-04-15 01:19:09 +03:00
dzaima
1db746ea77 Singeli compile-time cdiv & low-stack @collect 2023-04-09 15:03:44 +03:00
dzaima
b66f628cff tiny improvements to plus-scan 2023-04-09 12:09:52 +03:00
dzaima
52dc05f228 SIMD +` 2023-04-08 20:04:23 +03:00
dzaima
6a0385b44b better Singeli abs & absu definitions 2023-04-08 19:23:55 +03:00
dzaima
c3fe3c5b42 more Singeli utilities, more Scan fixing 2023-04-07 21:09:46 +03:00
dzaima
b0d8bcb428 add argument passing to makeOptBranch 2023-04-06 22:41:20 +03:00
dzaima
897c46df76 aarch64 fold.singeli 2023-04-06 20:17:09 +03:00
dzaima
b3f3190028 SSE2 fold.singeli 2023-04-06 19:49:14 +03:00
dzaima
1d6b33d528 restrict fold_addw to integer input 2023-04-06 19:18:43 +03:00
dzaima
d13060f725 move fold to vfold 2023-04-06 19:05:38 +03:00
Marshall Lochbaum
9d7d330a03 Use AVX2 counting for 1-byte counting sort 2023-04-06 11:32:34 -04:00
Marshall Lochbaum
0e5b98c491 Return max from AVX2 counting function 2023-04-06 11:32:34 -04:00
Marshall Lochbaum
4b18466ae2 Clean up and simplify count.singeli; allow longer final block 2023-04-06 11:32:06 -04:00
Marshall Lochbaum
06b4f06e64 Move fold{} from squeeze.singeli to vecfold.singeli 2023-04-06 11:32:06 -04:00
Marshall Lochbaum
2ddcc14852 Use minimum in addition to maximum for AVX2 counting 2023-04-06 11:32:06 -04:00
Marshall Lochbaum
e6a3e846d9 Sum counts in groups of 4 when possible 2023-04-06 11:32:06 -04:00
Marshall Lochbaum
b655dd4771 AVX2 counting function for small-range 1-byte /⁼ 2023-04-06 11:32:04 -04:00
dzaima
cba6ef505a add usz option to build/build 2023-04-06 17:47:31 +03:00
dzaima
5492eae8c5 unrolling for single-element search 2023-04-06 15:42:10 +03:00
dzaima
876914d053 Singeli single-element search 2023-04-06 14:56:49 +03:00
dzaima
8b05cd243f fix SSE2 unsigned comparisons 2023-04-05 13:47:16 +03:00
dzaima
7d1fcf2c3a move &~ to base.singeli 2023-04-02 16:33:24 +03:00
dzaima
100a188545 fix aarch64 singeli 2023-04-02 15:39:42 +03:00
dzaima
00a5ddcb89 SSE2 squeeze 2023-04-02 15:04:00 +03:00
dzaima
e0a265472c SSE2 extract{x,0} for [4]i32 and [2]i64 2023-04-02 12:10:18 +03:00