dzaima
7947f86833
basic fix for (2‿3⥊0÷0)⌾(0‿0⊸⊏) 2‿3⥊1 erroring
2025-05-22 23:45:37 +03:00
dzaima
81ce43e77f
complete comment
2025-05-22 02:28:50 +03:00
dzaima
36ba160477
fix 𝕨/𝕩 doing unchecked multiplications on +´𝕨
...
both that explicit one, and ones in the allocation functions
2025-05-22 01:45:56 +03:00
dzaima
3b5497e329
fix use-after-free in a⌾(i⊸/)𝕩
...
not actually ever problematic I believe as `w` in *_ucw always happens to have other held references, but still a bug and could become problematic in the future;
and the change is actually an improvement, bringing the SGetU computation out of paths that don't need it!
2025-05-22 01:18:04 +03:00
dzaima
04d0191d1f
handle v¨⌾(l⊸/)x with non-boolean l with fast path
2025-05-22 01:14:09 +03:00
dzaima
185a18d478
fix a⌾(b⊸/)x comparing during noAlloc
2025-05-22 00:38:47 +03:00
vylsaz
7cdbe866da
Windows: use CRT-safe _beginthreadex() rather than CreateThread(); also remove unnecessary NULL check for realloc()
2025-05-21 05:05:14 +00:00
dzaima
15bf932757
make atom decomposition equality check use eequal
...
gets rid of compound functions having observable identity if they have NaN as a component
2025-05-21 00:54:52 +03:00
dzaima
723ca38816
make native ⌾(is⊸⊏) & ⌾(m⊸/) compare NaNs as equal
2025-05-21 00:36:08 +03:00
dzaima
8046f157bf
fix •file.Type and •file.Exists on links
2025-05-19 23:51:13 +03:00
dzaima
1ab511f657
fix JIT not allocating stack capacity for empty arrays
2025-05-16 02:09:04 +03:00
dzaima
c17280d96d
cleanup
2025-05-15 00:43:53 +03:00
dzaima
b9ccafcf3f
any_squeeze → squeeze_any
2025-05-13 17:04:38 +03:00
dzaima
f1cb141f56
new squeeze functions
2025-05-13 17:04:38 +03:00
dzaima
9d11fc0cde
use C1 & C2 helpers in grade.h
...
incl. making them capable of expanding a macro F
2025-05-13 17:04:38 +03:00
dzaima
ff406c9586
better int_squeeze_sorted
2025-05-13 17:04:38 +03:00
dzaima
8146040c15
helpers for creating empty arrays
2025-05-13 17:04:32 +03:00
dzaima
6c4eae5e28
rearrange squeeze.c and make num_squeeze & chr_squeeze more sane
2025-05-13 03:32:32 +03:00
dzaima
a32c0c1722
add <ty>anyv_ptr
2025-05-13 02:26:06 +03:00
dzaima
62366d10fa
•internal.Validate
2025-05-13 00:12:59 +03:00
dzaima
09aa7b285f
debug_assert
2025-05-11 20:29:01 +03:00
dzaima
41c9a51ff3
fix unshare on heap-allocated atoms
2025-05-11 20:28:23 +03:00
dzaima
1e603f8921
fix ALLOC_STAT
2025-05-11 18:03:25 +03:00
dzaima
2020135a11
%z format string
2025-05-11 17:08:55 +03:00
dzaima
eca676bb3d
option to disable stack entry omission
...
currently only settable via gdb
2025-05-11 13:43:31 +03:00
dzaima
516205321c
fix error message of 𝔽⌾(a⊸⊏)𝕩 more
2025-05-09 01:17:51 +03:00
dzaima
f74bdf6142
improve/fix error messages around units in ⊏ & ⊑ some more
2025-05-09 01:00:41 +03:00
dzaima
8d757363e9
improve error message of 𝔽 in 𝔽⌾(a⊸⊏) returning an atom
2025-05-09 00:32:54 +03:00
dzaima
d2c27fd880
fast 𝔽⌾(num⊸⊏)arr
2025-05-09 00:21:42 +03:00
dzaima
1ecc6b3918
more proper error message for 1⌾((<⋈0)⊸⊑)↕5
2025-05-05 19:37:02 +03:00
dzaima
13906efe44
fix ⊑˘ on rank>2 inputs
2025-05-02 01:28:46 +03:00
dzaima
e32d41eb61
improve •ParseFloat error message on argument with codepoints ≥256
2025-05-01 23:09:48 +03:00
dzaima
b1ef72039c
remove use of bind
2025-05-01 23:07:33 +03:00
dzaima
419e1171aa
avoid UB on i64~~1 << 63
2025-05-01 23:07:33 +03:00
dzaima
291ff92c96
mask_scale
2025-05-01 23:07:33 +03:00
dzaima
a5c6e3271c
use tail{...} much more
2025-05-01 23:07:33 +03:00
dzaima
d1f3efe8db
get rid of shuf_ind
2025-05-01 23:07:30 +03:00
dzaima
b2c89979fe
exclude [k]u1 from vector type check helpers
2025-05-01 22:53:45 +03:00
dzaima
c811e54666
unroll bitsel
2025-05-01 22:53:45 +03:00
dzaima
2a9428239a
merge sse2.singeli and sse.singeli
2025-04-27 22:17:38 +03:00
dzaima
07e74d62d8
prepare for merging sse2.singeli and sse.singeli
...
to preserve sse2.singeli as the base file through blames
2025-04-27 22:17:38 +03:00
dzaima
ccb1f5fa34
proper x86 i32→float convert definiton
2025-04-27 22:17:38 +03:00
dzaima
f72f554a54
remove duplicate and_bit_none SSE definition
2025-04-27 22:16:50 +03:00
dzaima
a5840d0eb8
fix AVX-512 widen arch check
2025-04-27 19:12:51 +03:00
dzaima
e3a985c6e2
proper packs128 instead of packQ
2025-04-27 19:11:15 +03:00
dzaima
26055d0146
generalized x86 load/store low elts
2025-04-27 19:07:39 +03:00
dzaima
70705f9bfe
move bmi.singeli into base x86 include
2025-04-27 19:07:39 +03:00
dzaima
98f1c97653
is_pow2 helper
2025-04-24 18:31:25 +03:00
dzaima
0ec37303ea
use specified-output-type fold_addw
2025-04-24 00:26:49 +03:00
dzaima
3d52d14101
use vecfold.singeli's x86 fold_addw in count.singeli
2025-04-24 00:26:49 +03:00
dzaima
5df3712748
allow specifying result type of fold_addw, x86 impls for it
2025-04-24 00:26:49 +03:00
dzaima
7237ad1abb
more Singeli renames: no more floor,ceil,abs,adds,subs,vshl
2025-04-24 00:23:50 +03:00
dzaima
2202726005
rename isvec→vect and isprim→ptrt
2025-04-24 00:23:50 +03:00
dzaima
6eb454f859
get rid of the single isptr usage
2025-04-24 00:23:50 +03:00
dzaima
c1662c83de
move x86 mul32 and mulh defs to x86.singeli
2025-04-24 00:23:50 +03:00
dzaima
e46bbf398e
512-bit & arbitrary-width vector check helpers
2025-04-24 00:23:50 +03:00
dzaima
64a71688fe
use util/kind checks instead of custom isreg/istype/istup
2025-04-24 00:23:50 +03:00
dzaima
ee1668c7ea
use __min & __max directly instead of custom min/max
...
might make sense to bring min/max back later as aliases, but the current situation of min!=__min was stupid
2025-04-24 00:21:48 +03:00
dzaima
8beff254e2
x86 saturating multiply sum defs
2025-04-24 00:00:32 +03:00
dzaima
44ee417d40
use pattern matching for NEON vfold cases
2025-04-24 00:00:32 +03:00
dzaima
c95482e8e0
gcc-15 should fix 32-bit x86 miscompilation
2025-04-24 00:00:32 +03:00
dzaima
d2b9f4a02e
a bit of src/README.md cleanup
2025-04-24 00:00:32 +03:00
dzaima
64339466cc
more clear messages on empty_free / builtin_free
2025-04-24 00:00:32 +03:00
dzaima
f9b3aba234
fix wrong integer types in varargs
...
problematic in 32-bit builds
2025-04-24 00:00:32 +03:00
dzaima
732f52630a
use AVX-512 integer narrow if available
2025-04-24 00:00:32 +03:00
dzaima
528fea645a
nicer store-low in bins.singeli
...
also means it doesn't break on width>256
2025-04-23 22:58:58 +03:00
dzaima
78359afc71
move x86 int widen into x86.singeli
...
+ AVX-512 defs for it & (undef|zero)_promote; + add extract{V, x:V0, k}
2025-04-03 03:53:31 +03:00
dzaima
dbe97cf0e0
move some basic things into x86.singeli
2025-04-03 03:53:25 +03:00
dzaima
5928bd91bc
note problematic latency of dpbusd/dpwssd
2025-04-03 00:37:11 +03:00
dzaima
63b7fab72c
better w+x & w-x overflow checks
2025-03-26 04:16:38 +02:00
dzaima
09642a354f
do reqsz != (size_t) reqsz check in NO_MMAP builds too
2025-03-24 18:12:55 +02:00
dzaima
68a969b417
get clang to do less horrible codegen for index calculations
...
the do-while loop isn't actually necessary, just moving the unr offset is enough, but I'm doing it anyway
2025-03-24 18:12:55 +02:00
dzaima
ad73e075e0
unroll bitwise arith
2025-03-24 18:12:55 +02:00
dzaima
e3239d29bd
enable 32-byte alignment for array data
2025-03-24 18:12:55 +02:00
dzaima
60b848f1b7
don't require strict subset type for trunc
2025-03-22 19:09:51 +02:00
dzaima
c7632c23a2
actually, can define the x86 sadbw-using vfold for i8
...
it's unsigned, but that doesn't matter when just taking the low 8 bits
2025-03-22 18:21:09 +02:00
dzaima
ae29c4ad45
fix usz=32 build
2025-03-21 18:08:12 +02:00
dzaima
609f3418d8
use offset loads instead of vec_merge_shift_right for groupstat
2025-03-21 06:01:27 +02:00
dzaima
e2b4dbcf20
use any_hom / all_hom for (any|all)_accumulator
2025-03-21 06:01:27 +02:00
dzaima
05d87dd7df
move groupstat to fancy accumulator
2025-03-21 06:01:26 +02:00
dzaima
97260e0051
special-cased x86 SSE2 i8 min/max accumulator
2025-03-21 04:32:26 +02:00
dzaima
f503880cc3
use fancy accumulator for getRange
2025-03-21 04:32:26 +02:00
dzaima
e1b62b95b6
fancy Singeli accumulator; use for integer sum
2025-03-21 04:32:26 +02:00
dzaima
3b1239d499
support requesting a flush every k iterations in for_mu
2025-03-21 04:32:26 +02:00
dzaima
9c2ea18e22
use x86 sad for vfold
...
not used by anything, but it's here
2025-03-21 04:32:26 +02:00
dzaima
6c6f6e4013
add x86 sad & madd intrinsics
2025-03-21 04:32:26 +02:00
dzaima
9876d1d622
reduce Singeli-generated C noise on constant broadcasts
2025-03-21 04:32:26 +02:00
dzaima
4a5a1fa35b
a couple more baseline utilities
...
assert_hom to be expanded upon later
2025-03-21 01:05:53 +02:00
dzaima
87be577ff7
actually use defined is in for_mu
2025-03-20 20:27:26 +02:00
dzaima
0c2fb1a267
a bit of cleanup
...
still from the long-ago days when symbols couldn't be assignment targets directly
2025-03-19 01:05:22 +02:00
dzaima
577b09a062
introduce x86.singeli
2025-03-19 01:05:15 +02:00
dzaima
108379f121
fix UB shift
2025-03-16 23:47:01 +02:00
dzaima
f1021580ad
silence warning on non-Singeli builds
2025-03-16 20:22:17 +02:00
dzaima
9c870ddab9
add more info in heap dump
2025-03-16 03:52:23 +02:00
dzaima
82ebd37b3f
group statistics test
2025-03-13 23:36:02 +02:00
Marshall Lochbaum
233c88120d
Singeli function for initial group statistics pass since auto-vectorization isn't great
2025-03-13 14:21:38 -04:00
dzaima
72c4eca6c0
fix float ⌾(l⊸⊏) doing wrong comparisons
2025-03-12 17:23:17 +02:00
dzaima
d48194c3c8
fix comment
2025-03-12 17:20:18 +02:00
dzaima
7a412523dd
better SSE2 float getRange
2025-03-12 16:38:20 +02:00
dzaima
62b095be89
oneElt⊏𝕩 improvements & fixes
2025-03-12 06:29:26 +02:00