Commit Graph

2891 Commits

Author SHA1 Message Date
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