Commit Graph

2744 Commits

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