Commit Graph

3058 Commits

Author SHA1 Message Date
Marshall Lochbaum
8d9d946ec5 Fast ⊣˝˘ with pack for power-of-two widths, 1- and 2-byte elements 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
aefd2a4abd Fast 1-byte small odd width transpose with blends and modular permutation 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
5bdee886cc Extend kernel transpose from AVX2 only to SSE2, NEON 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
6e4859e17f Extend select_rows_byte to any architecture with (shuffle and) blend 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
4669418f1c Extend modular permutation ⊣˝˘ to multi-byte element types 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
9997c52e4c Initial 1-byte ⊣˝˘ with blends and modular permutation 2024-11-05 21:48:54 -05:00
dzaima
0c6e32a24c fix si_select_cells_bit_lt64 signature 2024-10-23 21:53:48 +03:00
dzaima
bd6effe7ab restore dropped comment 2024-10-23 21:37:56 +03:00
Marshall Lochbaum
7ac7297617 More simplifications to Singeli vector utilities 2024-10-21 21:44:21 -04:00
Marshall Lochbaum
8099945068 Use vec_select from Singeli select includes 2024-10-21 18:53:03 -04:00
Marshall Lochbaum
25724b6b3e More NEON functionality moved to neon_intrin/select 2024-10-21 18:53:03 -04:00
Marshall Lochbaum
fa43ffd882 Alias vec_shuffle to shuf 2024-10-21 18:53:03 -04:00
Marshall Lochbaum
27af1c0558 Use Singeli select include for x86 blend, byteshift, zip 2024-10-21 18:53:03 -04:00
Marshall Lochbaum
6140290813 Use Singeli select includes for shuffling 2024-10-14 10:24:07 -04:00
dzaima
52f318e755 EACH_FILLS tests 2024-10-14 05:09:03 +03:00
dzaima
1e00aa71c9 atomEqualF & atomEEqual cleanup 2024-10-10 04:12:07 +03:00
dzaima
503bddced5 bring back atomEqualF fast path 2024-10-10 04:00:43 +03:00
dzaima
61e5ca2767 move function/modifier native ID into their respective structs 2024-10-10 03:46:47 +03:00
dzaima
4885ca1c62 fix rtwrap decompose 2024-10-10 03:46:47 +03:00
dzaima
4e071cf170 disable |, ⌊, ⌈, <, > wrapping for RT_VERIFY
boring arith, and native versions have differences around NaNs
2024-10-10 03:46:47 +03:00
dzaima
6bd47b067e split apart def_decompose 2024-10-10 02:38:17 +03:00
dzaima
b095811da5 remove dead TIi(t_funBI,visit) = 2024-10-10 02:38:17 +03:00
dzaima
3d4a31ae6f access function/modifier runtime ID through macro 2024-10-10 02:38:17 +03:00
dzaima
d4b36b3017 access function/modifier native ID through macro 2024-10-10 02:38:17 +03:00
dzaima
ddb0e09d08 remove unused helper 2024-10-10 02:35:32 +03:00
dzaima
0f12b66fdb move purity separation to the proper place 2024-10-10 02:35:32 +03:00
dzaima
03fc22662b add •internal.Properties for better build parameter detecting 2024-10-10 01:33:17 +03:00
dzaima
3ed6241609 don't attempt to use BMI2 on x86-32 2024-10-09 03:31:20 +03:00
dzaima
72e46f24bd fix silent truncation of requested memory amount in 32-bit builds 2024-10-09 03:31:20 +03:00
dzaima
d640931c02 i64 → ux for bucket indices 2024-10-09 03:31:20 +03:00
dzaima
9371fa0fbc make PROPER_FILLS customizable 2024-10-09 02:49:31 +03:00
dzaima
d5d495ecd2 mention v/V naming in src/README.md 2024-10-09 02:42:17 +03:00
dzaima
183f64c1f9 make ⟨⟩≡∾⟨⟩ under PROPER_FILLS 2024-10-09 02:42:17 +03:00
dzaima
03f2f29f3b use tagu64 in more cases where it should be
and make misused tag() an error
2024-10-09 02:42:17 +03:00
dzaima
0eb7f2e5f4 make ⊢¨ attempt to squeeze generic arrays in PROPER_FILLS
also make it not segfault on an input without a fill
2024-10-09 02:42:17 +03:00
dzaima
f33e1e0dcc allZeroes & allOnes variants which set result flags 2024-10-09 02:42:17 +03:00
dzaima
002d58e057 better withFill slow path copying 2024-10-09 02:42:17 +03:00
dzaima
b2bfa06a4c allBit cleanup in cells.c 2024-10-09 02:42:17 +03:00
dzaima
1eee4d7450 mark input of ∊𝕩 as fl_asc|fl_dsc if it's all same 2024-10-09 01:48:23 +03:00
dzaima
7326348c79 fast ⍷𝕩 & ∊𝕩 on fl_asc+fl_dsc 𝕩 2024-10-09 01:48:23 +03:00
dzaima
b9b0c619db more flag utils 2024-10-09 01:48:23 +03:00
dzaima
12cc7af83d fast path for squeeze target determining on sorted input 2024-10-09 01:48:23 +03:00
dzaima
72cdb0d5fb mark reshape_one as ascending & descending 2024-10-09 01:48:23 +03:00
dzaima
4b38a8cf6b no need to unroll ≢x size checking 2024-10-09 01:48:23 +03:00
dzaima
0d238f2b88 mark ↕n with fl_squoze 2024-10-09 01:48:23 +03:00
dzaima
fc617b6e32 don't try sorting sorted arrays 2024-10-09 01:16:23 +03:00
dzaima
85c5fb659d more clang-friendly multi-input homMask 2024-10-07 02:49:58 +03:00
dzaima
cf19280c54 fix reliance on signed wrapping in replicate 2024-10-03 20:33:02 +03:00
dzaima
7774d8ba5e slightly better number asFill 2024-09-28 18:48:53 +03:00
dzaima
9504f10406 fix test/precompiled.bqn 2024-09-26 03:25:10 +03:00
dzaima
9ca48a55bc better range checking 2024-09-26 03:12:25 +03:00
dzaima
00a9dc03be fast path for FFI array range checking 2024-09-26 02:45:38 +03:00
dzaima
2da0c2d0b1 fix FFI_CHECKS=0 2024-09-26 02:34:16 +03:00
dzaima
989970f7fd fix ∾2‿2⥊<0‿0⥊⟨⟩ 2024-09-22 01:42:26 +03:00
dzaima
e6d3821d52 FFI: invalid character array argument detection 2024-09-22 01:37:13 +03:00
dzaima
4eb632a48d TO_GET helper 2024-09-21 21:26:02 +03:00
dzaima
10671c446d move print_vmStack to DEBUG_VM-only 2024-09-21 21:26:02 +03:00
dzaima
6f7e82e52b include JIT heap in used heap measurements 2024-09-21 21:26:02 +03:00
dzaima
5192a1d466 fix x⊸≍˘list & ≍⟜x˘list on non-atom x 2024-09-16 00:41:17 +03:00
dzaima
92be360412 use "at ..." stacktrace display for empty name 2024-09-15 23:22:11 +03:00
dzaima
1709fbd2f6 new precompiled bytecode generator 2024-09-15 20:11:52 +03:00
dzaima
f2efa657b7 start of cc.bqn/precompiled format refactor 2024-09-15 20:02:04 +03:00
dzaima
452a117818 print precompiled source name & line number in stacktraces 2024-09-14 18:21:23 +03:00
dzaima
0c88263659 don't copy i32slice bytecode in compileAll 2024-09-14 17:16:57 +03:00
dzaima
51ab5db2c8 move interleave_cells to cells.c 2024-09-14 16:18:54 +03:00
dzaima
884d61476f fix flags of take_head 2024-09-14 16:15:11 +03:00
dzaima
f3c63d3887 use reshape_one for c¨ 2024-09-13 22:11:40 +03:00
dzaima
fff96b9475 fix ≍˘ error checking, start of generalizing to join_cells 2024-09-13 22:07:35 +03:00
dzaima
1679d957e8 more checks in arr_* functions 2024-09-13 21:52:18 +03:00
dzaima
ca7410e623 remove unneeded include 2024-09-13 21:14:44 +03:00
dzaima
215a3cad3b fix interleave_cells generic path 2024-09-13 19:39:08 +03:00
dzaima
6c7e6c411a use CMP_AA_IMM 2024-09-13 19:35:59 +03:00
dzaima
b7c3815d4a copy fallback instead of slice in take_head 2024-09-13 19:10:46 +03:00
dzaima
bd6d40a4fa outline GC steps 2024-09-13 18:48:09 +03:00
dzaima
66f37aa299 allow hitting exactly the memory limit 2024-09-13 18:29:06 +03:00
dzaima
574653f3fb improve clangd of various files in src/opt/ 2024-09-13 18:18:29 +03:00
dzaima
64adbbf37e in-place ¯n↓ / n↑ / n⥊ 2024-09-13 17:41:56 +03:00
dzaima
704986d36c reinit_portion 2024-09-13 17:41:48 +03:00
dzaima
4464fced30 print object type in tailFail 2024-09-13 05:10:48 +03:00
dzaima
1b13defe54 rearrange sfns.c a bit 2024-09-12 16:24:32 +03:00
dzaima
8fd897690f move customizeShape into stuff.h 2024-09-12 06:47:06 +03:00
dzaima
27b7c0746c full interleave_cells
needed to make all rank-1 inputs work on non-Singeli builds, but beneficial in general anyway
2024-09-12 06:17:32 +03:00
dzaima
f19a8effc4 suppress warning 2024-09-12 05:49:42 +03:00
dzaima
e9cf8ac330 fix try_interleave_cells on copying TO_BPTR 2024-09-12 05:40:11 +03:00
dzaima
c0e3a3711f fast scalar≍˘arr & arr≍˘scalar & different-type arr≍˘arr 2024-09-12 05:38:34 +03:00
dzaima
da29b285dd better ARR_BPTR_NEVER 2024-09-12 05:18:52 +03:00
dzaima
41785cb4bf Singeli const¨⌾(m⊸/)b 2024-09-10 01:45:56 +03:00
dzaima
02573fa4eb fatal{msg} 2024-09-10 01:45:18 +03:00
dzaima
75c1b74ce1 ARR_BPTR_NEVER 2024-09-09 17:55:26 +03:00
dzaima
03fbb17246 fix broken arr_bptr path in transpose_noshape 2024-09-09 17:55:26 +03:00
dzaima
153850921b actually, hanyv?_ptr shouldn't be a thing 2024-09-09 17:55:26 +03:00
dzaima
4cf8e10b95 fillarr_ptr → fillarrv_ptr 2024-09-09 17:55:26 +03:00
dzaima
af6c618158 use new harr/hslice _ptr functions 2024-09-09 17:55:26 +03:00
dzaima
15401e8dfb h(arr|any|slice)v?_ptr 2024-09-09 17:55:26 +03:00
dzaima
8fafbcde65 fix toConstant
was broken in fork_uc1 before too
2024-09-09 17:55:26 +03:00
dzaima
c2adbd4a3b move toConstant to builtins.h 2024-09-09 17:55:26 +03:00
dzaima
b69f65081d vector → list 2024-09-09 17:55:26 +03:00
dzaima
b62e7cd820 fix generic arch build 2024-09-02 00:04:32 +03:00
dzaima
858dd5bc99 fix bitwiden aarch64 check 2024-08-31 18:28:40 +03:00
dzaima
c8e0bf653b fast path for ∊allEqual 2024-08-27 20:20:52 +03:00
dzaima
0106f04495 make getPageSize return ux 2024-08-27 20:20:34 +03:00
dzaima
559ccae9cc fix select_rows_direct 2024-08-23 04:24:42 +03:00
dzaima
79b0bda0d3 fix •file.MapBytes 2024-08-23 04:20:44 +03:00
dzaima
09bdeb7fd8 more usz overflow checking 2024-08-23 03:59:57 +03:00
dzaima
06689960a5 native ≍⁼⍟k 𝕩 2024-08-23 02:44:49 +03:00
dzaima
5ef4fe828b use customizeShape in transpose 2024-08-23 02:21:59 +03:00
dzaima
6ead1baa11 native ≍⁼ 2024-08-23 02:21:48 +03:00
Marshall Lochbaum
56cb10d6e5 Min/max scan that can skip unused argument vectors sometimes 2024-08-20 15:26:07 -04:00
dzaima
d185d32d9e remove debug include 2024-08-20 17:22:10 +03:00
dzaima
357eb1a27a expanded comment of supported things in the native compiler 2024-08-20 00:17:29 +03:00
dzaima
a654bd88d2 fix aarch64 build 2024-08-17 20:13:38 +03:00
dzaima
0467e1c894 use *arrv_ptr more 2024-08-15 17:36:43 +03:00
dzaima
597fe07838 another incG 2024-08-15 17:36:43 +03:00
dzaima
37a3694df7 restore usage of bitarr_ptr where appropriate 2024-08-15 17:36:43 +03:00
dzaima
5098781ffc replace all bitarr_ptr usages with bitany_ptr 2024-08-15 17:36:43 +03:00
dzaima
88de336516 introduce bitany_ptr
+ more general typed arr pointer getting functions
2024-08-15 17:36:43 +03:00
dzaima
00a64101e9 better bitp_set
apparently gcc & clang aren't smart enough to notice the unnecessary
intermediate u64
2024-08-15 06:00:07 +03:00
dzaima
3b2b9bba1a AVX-512 bitwiden 2024-08-14 23:44:08 +03:00
dzaima
67626d1e49 a couple more AVX-512 defs 2024-08-14 23:44:08 +03:00
dzaima
6b72139d75 include avx512 in base 2024-08-14 22:13:24 +03:00
dzaima
ab4d3565df more --replxx-read-only 2024-08-14 22:10:45 +03:00
dzaima
60380e6270 fix out-of-bounds indexing in factors 2024-08-14 22:10:45 +03:00
Marshall Lochbaum
b2566c8f3a NEON k/bool support 2024-08-14 14:51:01 -04:00
Marshall Lochbaum
b801c7c186 Move to dedicated k/bool loops for k=5,7 and at least SSSE3 2024-08-14 14:51:01 -04:00
Marshall Lochbaum
b2758d355c k/bool cleanup and implementation comments 2024-08-14 14:51:01 -04:00
Marshall Lochbaum
bf69705c82 Factor (8×k)/bool as bit-replicate, then byte-replicate 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
fc1265b3f2 Enable (non-boolean) constrep on SSSE3 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
048529740b SSE2 k/bool where k divides 8 implementations 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
ee27717c97 SSE2 odd/bool implementation using [4]u32 shuffles 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
36e9ca5814 Extend odd/bool SSSE3 code to support AVX2 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
2be022921e Combine generic and SSSE3 general-case odd/bool, so SSSE3 uses mask unpacking 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
3e5dbdbf8d Dedicated generic k/bool for divisors of 8; factor; remove pdep emulation 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
13ec029d9f Get odd k/bool carry by shifting in the unified register, not after masking 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
1621c7d07c Generic-arch k/bool algorithm for odd k with mask unpacking 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
7d7d36b354 Extend SSSE3 k/bool to k<32 using pairwise swaps 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
696a23af9e Mask off last k/bool vector properly 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
1a4cada0cb AVX2 support in rep_const_bool_ssse3_div8 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
b4d84041bc Extend odd k/bool SSSE3 algorithm to k<16, factor even k≤32 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
a439a0a430 SSSE3 k/bool for 2≤k≤8, k≠6 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
a4b6d8d827 SSSE3 3/bool, faster than BMI2 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
7f6c401eb3 Generic-architecture k/bool for small 8<k 2024-08-14 10:30:26 -04:00
Marshall Lochbaum
0602927b17 Move pdep-based k/bool code to Singeli 2024-08-14 10:30:26 -04:00
dzaima
de5bebb239 fix bitnarrow on aarch64 2024-08-14 16:41:58 +03:00
dzaima
565a0a8458 inline zeroPadToCellBits0 2024-08-14 15:21:42 +03:00
dzaima
fc800ee191 remove debug include 2024-08-14 15:06:43 +03:00
dzaima
ef1ea4ad0f make gcc not complain about break
funky
2024-08-14 05:25:13 +03:00
dzaima
2ca2c52c16 use direct bitwiden & bitnarrow in select-rows 2024-08-14 05:18:13 +03:00
dzaima
d95a792230 add bitwiden & bitnarrow to header 2024-08-14 05:18:13 +03:00
dzaima
d0f30bd717 extract direct pointer version of bitnarrow 2024-08-14 05:18:13 +03:00
dzaima
d676663f45 better unaligned load option for bitwiden 2024-08-14 05:18:13 +03:00
dzaima
6e8c6d2e10 extract direct pointer version of bitwiden 2024-08-14 05:18:13 +03:00
dzaima
7eb2b97e29 use COPY_TO_FROM in cpyU16Bits & cpyU8Bits 2024-08-14 05:18:13 +03:00
dzaima
c445f24aae COPY_TO_FROM 2024-08-14 05:18:13 +03:00
dzaima
9b515c3fad reverse pointer arguments of copy.singeli exports 2024-08-14 05:18:13 +03:00
dzaima
6d7648c947 more things that could be select-rows'd 2024-08-14 05:18:13 +03:00
dzaima
f6c52ef3b3 disable Singeli bitwiden on SSE2 2024-08-14 05:18:13 +03:00
dzaima
f356ba0f36 more definitions in base.singeli 2024-08-14 05:18:13 +03:00
dzaima
3fc92eceaa include util/tup in base.singeli 2024-08-14 05:18:13 +03:00
dzaima
a9460da19c more missing NEON comments 2024-08-14 05:18:13 +03:00
dzaima
eccbac37ab aarch64 8→n bitnarrow 2024-08-14 05:18:13 +03:00
dzaima
c72ed51149 Singeli n→8 bitwiden 2024-08-14 05:18:13 +03:00
dzaima
f36cefc9ac more Singeli utils 2024-08-14 05:18:13 +03:00
dzaima
5748833060 fast inds⊸⊏˘bits for ≤8-bit input & output cells 2024-08-14 05:18:13 +03:00
dzaima
920a89f019 native ⋈⁼ & ⌾⋈
plus some more undo & under tests
2024-08-14 05:18:13 +03:00
dzaima
ae0d392d43 tyarrv_free 2024-08-14 05:02:24 +03:00
dzaima
46b63125bc ARBITRARY & GUARANTEED 2024-08-14 05:02:24 +03:00
dzaima
2c36a3e399 fix ⟨1‿2⟩⊸⊏˘ mat 2024-08-09 00:36:23 +03:00
dzaima
3716162e69 use q_fbit more 2024-08-09 00:32:27 +03:00
dzaima
e0facc54f8 minor src/README.md cleanup 2024-08-09 00:32:27 +03:00
dzaima
8e49fc04bb --replxx-read-only 2024-08-09 00:32:27 +03:00
dzaima
ced082cc82 use custom valgrind pdep/pext everywhere 2024-08-09 00:32:27 +03:00
dzaima
d1469df96b fix out-of-bounds load on empty replxx line
`chars[0] == ')'` was branching on empty data; not UB due to custom heap
usage and the code that does run is harmless, but still hit under
valgrind
2024-08-09 00:32:27 +03:00
dzaima
bdb5781ef7 make bitp_get & bitp_set load/store u8 instead of u64 2024-08-09 00:32:27 +03:00
dzaima
64b69700c5 include last power of two in fast-path ⌽˘ 2024-08-09 00:32:27 +03:00
dzaima
bc81b26a03 use fast path for inds⊸⊏˘el_B and ⌽˘el_B 2024-07-29 01:51:59 +03:00
dzaima
6900ae4b68 fix ⌽˘ 0‿10⥊2 and (↕0)⊸⊏˘ 10‿10⥊2 2024-07-29 00:45:01 +03:00
dzaima
52f36c61c0 fix 0‿1⊸⊏˘3‿1⥊2; accept any non-empty array x in select_rows_typed→select_rows_direct 2024-07-29 00:25:09 +03:00
dzaima
3a722b552f ⌽⎉1 x via (⌽↕¯1⊑≢x)⊸⊏⎉1 x 2024-07-28 22:24:34 +03:00
dzaima
081b928cb4 fix zip_halves being weird 2024-07-28 05:10:46 +03:00
dzaima
ffc250eb0e clearer aarch64 zip_halves mzip usage 2024-07-28 04:02:54 +03:00
dzaima
39f4a66ae0 cleanup 2024-07-28 03:55:22 +03:00
dzaima
bd3789963c these are actually good 2024-07-28 02:52:58 +03:00
dzaima
6f25e76e5d tune NEON inds⊸⊏˘f64arr 2024-07-28 02:47:12 +03:00
dzaima
d1d8e8be03 fix assertion on F⌾(⟨⟩⊸⊏) x 2024-07-26 23:25:26 +03:00
dzaima
42b8420af6 ignore unused label warning 2024-07-26 23:13:08 +03:00
dzaima
93fca7c628 fix overflow in index widening 2024-07-26 22:17:49 +03:00
dzaima
7cc1031f70 use outside-of-loop index widening on aarch64
slower as-is due to reduced supported ranges, but that's not an inherent restriction
2024-07-26 22:17:49 +03:00
dzaima
a486e87451 select-cells comments 2024-07-26 22:17:49 +03:00
dzaima
69ca524251 widen inds outside select-cells loops 2024-07-26 22:17:49 +03:00
dzaima
fce7567349 widen bits in bits⊸⊏˘mat to i8 2024-07-26 22:16:23 +03:00
dzaima
90646563a0 don't use zip method for select-cells 2024-07-26 22:16:23 +03:00
dzaima
4a874710c7 allow unhandled types for select_rows 2024-07-26 22:16:23 +03:00
dzaima
478c389c4b fast inds⊸⊏˘ mat 2024-07-26 22:16:23 +03:00
dzaima
0d7bf86182 baseline inds⊸⊏˘ mat 2024-07-26 22:16:23 +03:00
dzaima
f7dd900b3a faster 𝕨⊏𝕩, incl. aarch64 support 2024-07-26 00:01:54 +03:00
dzaima
cda5fd8595 make native compiler not error in debug builds 2024-07-26 00:01:54 +03:00
dzaima
3689e6105c support 2-modifiers in native compiler 2024-07-26 00:01:54 +03:00
dzaima
b7f7eda1ff more cells.h comments 2024-07-26 00:01:54 +03:00
dzaima
d6483a93d3 x86 unzip & unzip128 2024-07-26 00:01:54 +03:00
dzaima
2ed06e0db6 get_range Singeli binding 2024-07-26 00:01:54 +03:00
dzaima
2ca488dd66 aarch64 bool128 select 2024-07-26 00:01:54 +03:00
dzaima
0d5e77766a build select.singeli everywhere 2024-07-26 00:01:54 +03:00
dzaima
f1f4f1734e extract m_tyslice 2024-07-26 00:01:54 +03:00
dzaima
b99d5f23d5 extract bitsel to a function table 2024-07-26 00:01:54 +03:00
dzaima
2b323817ca make 𝕨⊏𝕩 error messages not differ across types 2024-07-26 00:01:54 +03:00
dzaima
e757b690dd mention src/singeli/ in src/README.md 2024-07-26 00:01:54 +03:00
dzaima
c274c35b1e Singeli @for_blocks 2024-07-26 00:01:54 +03:00
dzaima
079d3ffe91 better aarch64 homMask{[16]u8,[16]u8} 2024-07-26 00:01:54 +03:00
dzaima
0b69fa84cd NEON comparisons to 0 2024-07-26 00:01:54 +03:00
dzaima
c0573d602c don't error on non-vector types checked by genchk 2024-07-26 00:01:54 +03:00
dzaima
a9fbd0301d fix ∾˝⎉k refcounting 2024-07-15 00:56:02 +03:00
dzaima
3e9af0a910 fast-path for n•rand.Range 1 2024-07-15 00:56:02 +03:00
dzaima
2dd3798228 more Singeli cleanup 2024-07-15 00:56:02 +03:00
dzaima
2436c45f1d Singeli ceil_log2 for compile-time numbers 2024-07-15 00:52:00 +03:00
dzaima
66a8529d88 remove redundant parentheses in Singeli destructuring 2024-07-15 00:52:00 +03:00
dzaima
ed2198c06a disable tail calls in bqn_fmt & bqn_repr
far from performance-critical, but helpful for stack traces
2024-07-15 00:52:00 +03:00
dzaima
f79e4c6d0a make /(m?zip(128)?|pack)(Lo|Hi)/ not have Lo/Hi as part of name
instead being an optional 3rg arg
2024-07-15 00:52:00 +03:00
dzaima
a671ec9462 aarch64 bittab 2024-07-13 00:10:34 +03:00
dzaima
6dbe76727f update offset for stacktraces on FLDG 2024-07-13 00:10:34 +03:00
dzaima
838639e610 fix gcc-9 build 2024-07-10 03:54:44 +03:00
dzaima
7aab7ceb8b cleanup 2024-07-10 03:44:05 +03:00
dzaima
2bc1ba9f4a fix aarch64 squeeze 2024-07-10 03:43:58 +03:00
dzaima
52d1e61fe0 don't bother early-exiting on masked iteration 2024-07-10 03:24:10 +03:00
dzaima
2fdd72f1c4 faster <SSE4.1 integer accumulating in squeeze 2024-07-10 03:18:17 +03:00
dzaima
a45925b0c6 fix SSE2 squeeze 2024-07-10 03:18:17 +03:00
dzaima
f941245b34 avoid needing two final folds on x86 2024-07-10 03:18:17 +03:00
dzaima
40a5c40bda faster squeeze 2024-07-10 03:18:17 +03:00
dzaima
d66be091be shufps Singeli mapping 2024-07-10 00:55:43 +03:00
dzaima
e96948cb64 Singeli zip128 2024-07-10 00:55:43 +03:00
dzaima
a8af920dc9 •internal.PureKeep 2024-07-10 00:55:43 +03:00
dzaima
01b1ee3637 make ⊢¨ more consistent with other PureIdentFn¨
incl. making ⊢¨ not leak xf under EACH_FILLS
2024-07-10 00:55:43 +03:00
dzaima
826179c83d •internal utility for getting & setting object flags 2024-07-08 22:53:29 +03:00
dzaima
352f22f8f6 don't vectorize tiny loop
could theoretically maybe be beneficial for functions with a hilarious
number of arguments, but whatever. Improves perf on few-argument
functions from not unrolling/vectorizing.
2024-07-08 04:25:27 +03:00
dzaima
3e24442011 use ux in base cmp 2024-07-08 04:25:27 +03:00
Marshall Lochbaum
201fe1e57c Extend fold_rows to any rank, as long as stride is 1 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
48d77e722f Extend ˝ to ´ conversion (for singleton cells) to any rank 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
46704defb6 Convert list⊸↑˘ to a single ↑ call, likewise ↓ and ⌽ 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
ce98efc525 Transform atom⊸⌽⎉k into a single high-rank ⌽ call 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
3b49294145 Specialize ApdMut to reshape if there's only one append 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
76a40491e9 Remove some rank restrictions from for_cells_SA 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
4450d36187 Better handling for «˘ and »˘ trivial cases 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
d89a6da2da Evaluate monadic «» on a length-1 argument by reshaping the fill 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
6eca24ce0a Special code for ∾˝˘ and fold-cells of empty 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
9d5caad9a9 Compute Insert identity natively 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
5d4391a3fd Combine monadic ˘ with outer ˘ or ⎉ 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
a19b5401f7 Fast cases for monadic rank with cell length ≤1 2024-07-05 17:44:42 -04:00
Marshall Lochbaum
8766810db8 Rank-agnostic select_cells 2024-07-04 12:04:00 -04:00
Marshall Lochbaum
ab15eaeeeb Length-1 reverse is a no-op 2024-07-04 12:04:00 -04:00
dzaima
2ce983041c fix shared •HashMap value list 2024-06-30 14:06:05 +03:00
dzaima
47b5d7d832 fix harmless copy-paste error 2024-06-29 04:38:44 +03:00
dzaima
0319be27ea fix bad error message on /⁼3‿3⥊0 2024-06-29 02:59:15 +03:00
dzaima
7eb60d4ec1 correct ElType comment 2024-06-29 02:33:46 +03:00
dzaima
6824b9a747 fix another unaligned load 2024-06-26 06:09:30 +03:00
dzaima
7474e51642 rename mask_of in spaced.singeli
otherwise confusable with maskOf in mask.singeli
2024-06-26 05:39:48 +03:00
dzaima
452065adaf add magic incantation to make optimizer happy 2024-06-26 05:30:09 +03:00
Marshall Lochbaum
e365ecf7dc Fix F`˘ on rank 0 2024-06-25 22:31:47 -04:00
Marshall Lochbaum
ace6105bf6 Fixes for ∧˝˘ and ∨˝˘ on long rows 2024-06-25 22:30:56 -04:00
dzaima
b6bf3f2da6 suppress clang ubsan warning
it's a true warning of actual UB and could conceivably be taken advantage of by a compiler, but is not currently so keep things pretty for now
2024-06-26 03:36:02 +03:00
dzaima
024ab669d5 fix ∧˝˘0‿8⥊0 running comparison functions on length-0 inputs 2024-06-26 03:09:43 +03:00
dzaima
6c110a29ee use loadu_* & storeu_* for unaligned loads/stores 2024-06-26 03:09:43 +03:00
dzaima
ace06e96ae document CMP_* non-zero length requirement 2024-06-26 03:09:43 +03:00
dzaima
7e15dfe104 make loadu_*/storeu_* take void* 2024-06-26 03:03:57 +03:00
Marshall Lochbaum
e952e4ca3e Disable F´˘ special code when cell rank isn't 1 2024-06-23 17:06:37 -04:00
Marshall Lochbaum
5758853ccb Can't call fold-rows special code with reduction length 0 2024-06-23 10:00:44 -04:00
Marshall Lochbaum
5f1c677d48 Support ∧∨ synonyms in fold_rows_bit 2024-06-20 11:05:59 -04:00
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
cb1b72fbb2 Extend boolean F˝˘ special code to any ranks 2024-06-18 07:46:31 -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
6d27dd391b Clean up scan_rows_bit logic and implement -˘ as (2×⊣˘)-+`˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
efde979fe9 Fast boolean ⊣`˘ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
3b61568fda Implement boolean list scans ->≤≥ using more common scans 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
fde29684d7 Tweak for faster +`˘ on very short boolean rows 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8e47221c9f Implement monadic boolean = with ≠ 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
8331a05547 Boolean ≠`˘ implementation 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
bd64e8bcd2 Faster boolean +`˘ for short rows based on flattened prefix sum 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
Marshall Lochbaum
d29b4df50c Boolean and, or, eq folds for row length >64 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
c76e175719 Faster boolean +˝˘, and ≠˝˘ on row length >64 2024-06-18 07:46:31 -04:00
Marshall Lochbaum
ab4e5543a0 Implement matrix ⊣˝˘ and ⊢˝˘ with select_cells 2024-06-18 07:46:31 -04:00
dzaima
4ab84c05f6 handle header […]←rank0 properly 2024-06-16 14:00:40 +03: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
73123f5bde even faster »⎉1 & «⎉1 for narrow bitarr 𝕩 2024-06-06 23:36:45 +03:00
dzaima
cc3c6985ad faster unit»⎉1𝕩 / unit«⎉1𝕩 2024-06-05 13:53:09 +03:00
dzaima
17339eceae proper description of reshape_one 2024-06-05 13:52:25 +03:00
dzaima
b32f22ee89 fix MM=0 build 2024-06-05 03:32:41 +03:00
dzaima
ae3128c180 relax CHECK_IA in takedrop_highrank
future overflow in ria*elWidth when allocating shouldn't be a worry as all such calculations should be done in u64, and CHECK_IA(x, 1) guarantees that x is (much) less than 2^60 in both usz configurations
2024-06-05 02:30:00 +03:00
dzaima
e04819a28d make TYARR_SZ always operate in u64
shouldn't change anything on 64-bit platforms as the sizeof in fsizeof should already give size_t
2024-06-05 02:23:15 +03:00
vylsaz
2a57022ccb no ENT_SP_GC if profiler is not supported 2024-06-04 06:04:08 +00:00
dzaima
8044c560a4 faster atom∾atom 2024-06-01 16:22:34 +03:00
dzaima
44af7d4980 separate GC time in )profile 2024-06-01 00:33:14 +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