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 |
|