Commit Graph

3193 Commits

Author SHA1 Message Date
dzaima
445007b38c unify toLast and broadcast_last 2025-03-02 19:31:03 +02:00
dzaima
9826c4ce0e add 𝕨/𝕩 in dyadic ⌽/⌽⁼ error message 2025-03-02 19:29:49 +02:00
dzaima
bdee96a995 remove old blend definitions 2025-02-27 05:49:16 +02:00
Marshall Lochbaum
eda1cd8b50 More tuning based on dzaima's measurements 2025-02-26 22:01:37 -05:00
Marshall Lochbaum
a520ff70a1 Fix some NEON performance issues for row scans 2025-02-26 21:52:49 -05:00
Marshall Lochbaum
a775520927 Update scan implementation comments 2025-02-26 08:21:22 -05:00
Marshall Lochbaum
422e63bc12 Non-CLMUL SIMD ≠` 2025-02-26 08:21:22 -05:00
Marshall Lochbaum
d85d69e759 Improve baseline for ⊣`˘ to beat non-AVX2 on length ≥64 2025-02-25 20:26:51 -05:00
Marshall Lochbaum
709712f03c Tuning; drop the scalar loose_mask branch for ∧∨ as it never seems faster 2025-02-25 19:33:26 -05:00
Marshall Lochbaum
b5ec2f5fa8 Extend loose_mask system to SSE and NEON (not always fast) 2025-02-25 19:28:51 -05:00
Marshall Lochbaum
fb413b1966 Enable vector max- min-, and wrapping plus-scan on NEON
Changes the results on NaNs, but they weren't consistent before
2025-02-24 22:08:49 -05:00
Marshall Lochbaum
317871db55 Extend unaligned <64-bit row scans from AVX2 to SSE, NEON 2025-02-24 21:47:46 -05:00
Marshall Lochbaum
b131914cbe Factor out some common code 2025-02-24 21:13:19 -05:00
Marshall Lochbaum
0973d9b499 Medium-row ⊣˘ and ≠˘ with mask-aware carry 2025-02-24 21:13:19 -05:00
Marshall Lochbaum
1fef51a39e AVX2 ∧ and ∨ with intermediate row sizes (64≤l<160) 2025-02-23 19:19:46 -05:00
Marshall Lochbaum
94e6b6cb3a Better formula for within-word masked ∧ and ∨ 2025-02-23 08:27:47 -05:00
Marshall Lochbaum
242a61db11 Faster <`, adding instructions to cut dependency chains 2025-02-18 16:29:49 -05:00
dzaima
8c1040bd9f cleaner vr?(add|sub)hn NEON defs 2025-02-08 18:37:46 +02:00
dzaima
09f2980ebf more BMI and NEON defs 2025-02-08 17:36:44 +02:00
dzaima
bda9245ac3 another unnecessary tree_fold 2025-02-08 17:36:44 +02:00
dzaima
0d7a7652e3 better NEON all_hom{x:[16]u8} 2025-02-08 17:36:44 +02:00
dzaima
c792d47069 use Singeli a==b instead of a=(b) 2025-02-08 17:36:44 +02:00
dzaima
b12575722a better NEON any_hom
but clang undoes this sometimes :/ https://github.com/llvm/llvm-project/issues/125611
2025-02-08 17:36:44 +02:00
dzaima
72cf36334c make (any|all_(hom|top) accept mask or vl or multiple vectors
makes the previous commit superfluous, but still keeping it separate so that this one changes nothing
2025-02-08 17:36:44 +02:00
dzaima
341f3757e7 make all_hom{mask_none, vec} use simple path 2025-02-08 17:36:44 +02:00
dzaima
2cb15c936d get rid of b(x) macro 2025-02-08 17:36:44 +02:00
dzaima
74483f3859 more spaces between 𝕨/𝕩 and names, re-remove •SH args
sh_c1 calls sh_c2, so the arity isn't function-specific
2025-02-07 07:57:51 +02:00
tankorsmash
b945e48d29 add spacing around system functions; add missing args for SH; fix wrong args for bit._cast 2025-02-06 20:17:18 -05:00
dzaima
e3a4132722 clean up error messages
incl. correcting •_timed's message being wrong
2025-02-06 12:32:19 +02:00
tankorsmash
3362d46854 add best effort guesses for error messages in core/stuff and opt/comp.c 2025-02-05 20:02:44 -05:00
tankorsmash
5790d126cd add best effort guesses for many more builtin error messages 2025-02-05 19:56:08 -05:00
tankorsmash
63ee20b6fe add best effort guesses for many builtin error messages 2025-02-05 19:40:27 -05:00
tankorsmash
dd5d17ca83 add best effort guesses for builtins/cmp,fns,fold.c
I'm not sure about modifiers so I left them without arguments
2025-02-05 19:32:49 -05:00
tankorsmash
559b3f0d6e add best effort guesses for w and x for builtins/cells.c 2025-02-04 19:00:15 -05:00
tankorsmash
dce39a1b05 add w and x for builtins/arithm.c 2025-02-04 18:57:25 -05:00
tankorsmash
6be291dd6b add w and x for builtins/arithd.c 2025-02-04 18:55:14 -05:00
tankorsmash
80d1681b18 prefer using w and x inside error messages 2025-02-03 20:39:44 -05:00
dzaima
d17c6ebe8e actually fix AVX-512 more 2025-02-03 19:58:15 +02:00
dzaima
0bc491e931 fix AVX-512 more 2025-02-03 19:56:04 +02:00
dzaima
3a8f2a601a better NEON widening add/sub/mul definitions 2025-02-03 19:45:21 +02:00
dzaima
44d87fef78 fix AVX-512 build 2025-02-03 19:31:18 +02:00
dzaima
8c7c0227a5 first_hom, try_first_hom, popc_hom 2025-02-03 17:32:21 +02:00
dzaima
c64cdb2c61 make store_(blended|masked)_(hom|top) accept element pointer 2025-02-03 04:20:33 +02:00
dzaima
cd373e2ae6 remove (load|store)_low 2025-02-03 03:53:11 +02:00
dzaima
61565bfa17 define load_low/store_low in terms of vl-based load/store 2025-02-03 03:37:38 +02:00
dzaima
848813331a element-pointer-based vector loads & stores 2025-02-03 03:17:23 +02:00
dzaima
91800ddd1e more direct mask_none all-bits-zeroes check 2025-02-03 03:05:58 +02:00
dzaima
25faa71995 better NEON hom_to_int_ext 2025-02-03 02:37:07 +02:00
dzaima
afc4aa81fa more complete NEON widening multiply/add/subtract 2025-02-03 02:37:07 +02:00
dzaima
49dd6e394a mask.singeli loop renames 2025-02-03 02:13:39 +02:00
dzaima
92f40ddbe2 mask.singeli def renames
more bits of renames
2025-02-03 02:13:39 +02:00
dzaima
b6578e43a1 renames of the rest of base.singeli 2025-02-03 02:13:39 +02:00
dzaima
189ffa7d1f bitops.singeli renames 2025-02-03 02:12:58 +02:00
dzaima
f409ee8729 fix generic arch 2025-02-03 02:11:00 +02:00
dzaima
a6266b2168 remove unnecessary defs 2025-02-03 02:11:00 +02:00
dzaima
490285f1ca andAllZero → and_bit_none 2025-02-03 02:11:00 +02:00
dzaima
10ec04a76e (load|store)Low → (load|store)_low 2025-02-03 02:11:00 +02:00
dzaima
ad79ef71cf more Singeli mask op renames 2025-02-03 02:11:00 +02:00
dzaima
6f8b08bb1f oneVal/oneType/allSame → one_val/one_type/all_same 2025-02-03 02:11:00 +02:00
dzaima
a3e33366df exportT → export_tab
also remove exportN as it's unused
2025-02-03 02:11:00 +02:00
dzaima
70e2694f88 more Singeli NEON cleanup 2025-02-03 02:10:47 +02:00
dzaima
b899180166 any_num → any_int where applicable 2025-02-02 23:08:41 +02:00
dzaima
936300a492 any(Int|Num) → any_(int|num) 2025-02-02 23:08:41 +02:00
dzaima
0357d57171 various Singeli NEON cleanup things 2025-02-02 23:08:41 +02:00
dzaima
f3e7f4032c get rid of custom NEON rev
was non-compatibly overridden in places anyways
2025-02-02 23:08:41 +02:00
dzaima
6c7a444cd7 more consistent NEON naming 2025-02-02 23:08:41 +02:00
dzaima
e3b30e5db7 (hom|top)Mask → (hom|top)_to_int 2025-02-02 23:08:41 +02:00
dzaima
e9e1574d28 rearrange initial Singeli base defs 2025-02-02 23:08:41 +02:00
dzaima
426c1b4bf8 (bit|top|hom)(Any|All) → (any|all)_(bit|top|hom) 2025-02-02 23:08:41 +02:00
dzaima
c4afe7b329 (bit|top|hom)Blend → blend_(bit|top|hom) 2025-02-02 23:08:02 +02:00
dzaima
d506691690 fix 𝕨⍋𝕩 issues around NaNs 2025-02-01 20:55:36 +02:00
dzaima
9be5bf45b4 fix signed offset having unsigned type 2025-02-01 20:55:36 +02:00
dzaima
d06200445b MAYBE_UNUSED 2025-02-01 20:55:36 +02:00
dzaima
dcbceccff8 fix integer wrapping in grade sum check 2025-01-24 03:49:25 +02:00
dzaima
204ec21a7c more compact vector width check definitions 2025-01-23 03:21:55 +02:00
dzaima
5f19f15556 NEON (hom|bit)(Any|All) improvements 2025-01-23 03:20:52 +02:00
dzaima
196cc07454 better isCallable 2025-01-17 21:51:46 +02:00
dzaima
8b0d0399e4 fix various F⌾(G⊸Specialized)x 2025-01-16 22:16:49 +02:00
dzaima
517300e567 Windows: static-method-only .c files to .h 2025-01-16 22:06:20 +02:00
vylsaz
7d928a3221 Use OsStr for path on both Windows and non-Windows systems 2025-01-16 22:06:20 +02:00
vylsaz
24bd6735bc Windows: use _wfullpath for realpath 2025-01-16 22:06:20 +02:00
vylsaz
e12ca55ee0 Windows: use utf16 for file functions 2025-01-16 22:06:20 +02:00
vylsaz
40609b2f5f Windows: sh: revert to using calloc() in reading threads 2025-01-16 22:06:20 +02:00
vylsaz
67c2850e38 Windows: sh using utf16; simply argument quoting 2025-01-16 22:06:20 +02:00
vylsaz
580f4a3a19 Windows: utf-16 util 2025-01-16 22:06:19 +02:00
dzaima
a02f195555 make native inverse bindings for ⋆⁼x & w⋆⁼x 2024-12-18 13:29:32 +02:00
dzaima
1822602c34 cleanup from clang's --analyze 2024-12-18 13:03:48 +02:00
dzaima
d1a9669e76 fix •math.LCM on arrays 2024-12-13 07:40:43 +02:00
dzaima
5ecd1858ef fix 1⌾(⟨0⟩⊸⊏)⟨0⟩ 2024-12-07 06:54:07 +02:00
dzaima
86c7b47771 make •FFI properly error on non-list 𝕩 2024-12-04 00:14:00 +02:00
dzaima
162e6ff387 decG more
found automatically via awful hack via GUARANTEED
2024-12-04 00:10:52 +02:00
dzaima
7a5f42a7f0 cleanup
that build.bqn TODO has been completed for a while
2024-12-03 18:38:48 +02:00
dzaima
81abc80863 fast highrank⊸⊏˘ table 2024-12-02 21:57:44 +02:00
dzaima
7509d0c238 don't shadow types 2024-11-30 20:26:54 +02:00
dzaima
d988a620fd native F⌾(a⊸⥊) 2024-11-26 18:08:15 +02:00
dzaima
58f96abe8c fix error message on missing absolute base path 2024-11-23 06:19:39 +02:00
dzaima
79cffc5011 don't use deprecated syntax 2024-11-22 12:48:59 +02:00
dzaima
92641f26ba squeeze fns haven't been AVX2-specific for a while 2024-11-22 12:48:59 +02:00
dzaima
7df2f9ba4f a couple renames & simplifications 2024-11-22 00:44:03 +02:00
dzaima
f0223b8baf properly add 1<<31 2024-11-21 23:04:02 +02:00
Marshall Lochbaum
33ae8744f5 Fast skip ahead for blocks of equal values in i8 and i16 /⁼ 2024-11-20 09:35:22 -05:00
Marshall Lochbaum
7baddcabc2 Better sum versus runs test for /⁼: account for per-element cost of run-based 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
342cadfc00 Check for or handle argument length >2⋆31 in /⁼ 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
194e8c3f22 Update /⁼ implementation comments 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
0bbb335893 Do general i8 and i16 /⁼ counts to i16 buffer, plus overflow list 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
fb5ee179cb Squeeze for slash_im generic case instead of converting individual elements to numbers 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
96b198f643 Condition all the i8 to i32 /⁼ optimization on SINGELI_SIMD, for simplicity 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
e6940e73d0 Fast /⁼ of sorted arguments using semi-sparse representation 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
11117fcc67 Version of count_i32_i32 without large blocks 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
3b103aadd0 Run-based i32 /⁼ (leaving out sum-based) 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
4aea668a6c Allow i16 /⁼ to jump to Singeli code after range checking 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
926e59483d More precise sparse check for i8 /⁼ result: previously stopped at 65 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
e24d0bac63 Extend SIMD counting to i16 in addition to i8 2024-11-17 15:29:36 -05:00
Marshall Lochbaum
e681f3c09a Run-based 1-byte /⁼ implementation 2024-11-17 15:29:36 -05:00
dzaima
092ba4167a fix talloc_realloc in VERIFY_TAIL 2024-11-17 22:18:33 +02:00
dzaima
0a4925e84f move compile_commands.json to build/ 2024-11-14 22:45:43 +02:00
dzaima
b72fe465a2 fix /⁼1e4⥊1‿2 on NEON 2024-11-14 22:45:43 +02:00
dzaima
cbac419b4a fix ⍷2‿0⥊x 2024-11-06 22:34:55 +02:00
dzaima
d47cedb165 some cleanup 2024-11-06 22:32:05 +02:00
Marshall Lochbaum
db16b8fa6e Fix dropped high bit in ⊣˝˘ due to signed rather than unsigned saturating pack 2024-11-06 14:52:18 -05:00
Marshall Lochbaum
67d3fe3f81 Missing SSSE3 requirement for some uninterleave implementations 2024-11-06 14:51:16 -05:00
Marshall Lochbaum
15df6afc7d Implementation comments for transpose with short height/width 2024-11-05 22:04:23 -05:00
Marshall Lochbaum
e75b63831f Clean up dispatching for the various transpose kernel methods 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
2d75c6c535 And manually vectorize uninterleave 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
32ad2e9953 Manually vectorized interleave function 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
980e4b2248 Short-height version of 16x16 i8 transpose kernel, using overlapped writes 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
abb96cb18a Fixed-height transposes, more or less reverse of fixed-width 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
0ab2e485ca Width-4 transpose with shuffles 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
8bc37098dc Modular kernel transpose for odd*2 (so, just 6) 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
091f08c6cc Extend modular permutation transpose to any element size 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
780bfdfa0b Kernel transpose with overreading and skipped writes, for short rows 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
b6e418ed5b Fix modular permutation example in comment 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
d7b508ff3b Move select_cells_single (atom⊸⊏˘) to select.c and use for any singleton index 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
0bdc43cc0f Even number handling for modular permutation ⊣˝˘ 2024-11-05 21:48:54 -05:00
Marshall Lochbaum
4c55eab740 Fast ⊣˝˘ for power-of-two widths, 4- and 8-byte elements 2024-11-05 21:48:54 -05:00
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