Commit Graph

485 Commits

Author SHA1 Message Date
Marshall Lochbaum
355efd1eb4 Insert-cells and scan implementation comments, and minor tweaks 2024-06-19 18:36:53 -04:00
Marshall Lochbaum
4b0f105a7f Implement short-row num⊏˘bool (including ⊣˝˘ ⊢˝˘) with fold code 2024-06-18 14:05:16 -04:00
Marshall Lochbaum
1e6c7057e8 Extend boolean F`˘ special code to any frame and cell rank 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
5e3cc6de81 Refactoring, simplification, comments 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
a8b036ad08 Implement ≠˝˘ and =˝˘ like ∧∨ on width<64 boolean 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
f0f130c42e Use a lookup table for evenly-spaced masks, getting division results from those 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
e6f1e04de2 Fast generic and pext-based ∧˝˘ and ∨˝˘ on width<64 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
40bf3bfd1c AVX2-based boolean short-row scans 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
efde979fe9 Fast boolean ⊣`˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8331a05547 Boolean ≠`˘ implementation 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
5591d0f4f0 Boolean row-wise scans ∧˘ and ∨˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
7b4468c394 Move logical fold-rows functions to Singeli 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
2590222988 Generic-architecture implementations of fold.singeli 2024-06-18 07:46:31 -04:00
dzaima
563c30c596 allSame Singeli helper, make NEON homMask accept signed types 2024-06-16 14:00:40 +03:00
dzaima
d85f628d72 accept tuple argument in homMask 2024-06-14 04:28:53 +03:00
dzaima
d161f93a38 more Singeli refactoring
makes some conditions more strict
removes wrong el_m & el_s definitions
2024-05-26 04:25:54 +03:00
Marshall Lochbaum
56944b8985 Minor Singeli simplifications 2024-05-25 18:31:47 -04:00
Marshall Lochbaum
90863851b7 Use new Singeli type destructuring (no change to generated C) 2024-05-25 18:31:47 -04:00
dzaima
44c8da7dc7 add checks for l>0 on equal() impls
some Singeli `fn equal` paths already assumed such, this just makes the requirement properly checked for, benefited from, and documented
2024-05-20 01:03:57 +03:00
dzaima
4f898f38d2 various Singeli usage improvements and fixes 2024-05-11 05:57:30 +03:00
Marshall Lochbaum
b2e3a5ff74 Move from & to if/and for Singeli conditions 2024-05-10 10:26:28 -04:00
Marshall Lochbaum
4d6612cb16 Replace tuplen{} and tupsel{} with length{} and select{} 2024-05-10 09:49:58 -04:00
Marshall Lochbaum
12d7629f9c Replace top-level if with if_inline 2024-05-10 08:36:24 -04:00
Marshall Lochbaum
526d9bbebe Wrap non-destructuring type parameters in parens 2024-05-10 08:30:08 -04:00
dzaima
606e07ff14 fix vqtbl1 NEON argument type 2024-02-27 01:42:56 +02:00
dzaima
c078f62b1f add GLOBAL, INIT_GLOBAL, or const to globals 2024-02-01 21:13:39 +02:00
dzaima
6e39b59e73 use tuple destructuring in mask.singeli 2024-01-28 02:38:16 +02:00
dzaima
83afa4ba99 rename functions in cmp.singeli 2024-01-11 23:36:03 +02:00
Marshall Lochbaum
f62981e370 Make Singeli if conditions have type u1 2024-01-10 17:10:53 -05:00
Marshall Lochbaum
7511420077 Fix first element of 1-byte Deduplicate result in some cases with 256 uniques 2024-01-07 21:27:12 -05:00
Marshall Lochbaum
5f3a4769be Rename constrep.singeli to replicate.singeli; not just constant now 2023-12-31 15:30:20 -05:00
Marshall Lochbaum
e50ae40f8b Port replicate-by-scan code from C to Singeli 2023-12-31 15:26:58 -05:00
Marshall Lochbaum
771496a25c Pass slow-pdep build option to Singeli to suppress BMI2 bool/bool 2023-12-31 10:05:51 -05:00
Marshall Lochbaum
9604844d0b Don't need ..._ before & in Singeli any more 2023-12-30 21:45:24 -05:00
Marshall Lochbaum
eb34213f0f Fast ≍˘ for matching-type type-sized cells 2023-12-30 21:45:24 -05:00
Marshall Lochbaum
58f4f15f8f Move more functionality to avx512.singeli 2023-12-30 10:43:40 -05:00
Marshall Lochbaum
92db3f15d0 Implement ≠` with AVX-512 clmul and GFNI 2023-12-30 10:43:06 -05:00
dzaima
9dc44ed1a9 make singeli/arch.bqn the source of SINGELI_AVX2
+ removes noting of lack of AVX2, which isn't shown from the makefile anyway
2023-12-30 02:09:56 +02:00
dzaima
18d2fa5f1c rename Singeli select function
in anticipation to Singeli update which adds select as a builtin
2023-12-29 23:35:22 +02:00
dzaima
f11bebf8f4 fix usz=64 build 2023-12-28 19:17:57 +02:00
Marshall Lochbaum
dcb031d142 Make sure value in store{} has an appropriate type 2023-12-27 16:44:53 -05:00
dzaima
840c40748f fix f64 scans on SSE2 2023-12-15 19:18:23 +02:00
dzaima
94b1d90995 SSE2 & NEON /⁼ 2023-12-14 18:08:56 +02:00
dzaima
ec4db6dbad tiny Singeli include changes 2023-12-10 15:55:57 +02:00
dzaima
3454fbe3ee defer negated ≤AVX2 comparison negation to GPR result 2023-12-05 17:37:37 +02:00
dzaima
f02c92ee6a fix 3 ∨ "abc" 2023-11-23 18:13:51 +02:00
dzaima
8814a7e66e use 2x unroll for i16→u1 copying to utilize two-vector homMask 2023-11-21 02:45:33 +02:00
dzaima
773429a959 recursive base-case of homMask 2023-11-21 02:40:50 +02:00
dzaima
08fa7d3d30 specialize x86-64 homMask of 2x[n]i16, use for comparison 2023-11-21 02:29:03 +02:00
dzaima
3ebfb24b0f unroll copying to bitarr
+ clean up comparison code as bulk homMask is supported everywhere
2023-11-21 00:18:18 +02:00