Marshall Lochbaum
|
4b0f105a7f
|
Implement short-row num⊏˘bool (including ⊣˝˘ ⊢˝˘) with fold code
|
2024-06-18 14:05:16 -04:00 |
|
Marshall Lochbaum
|
1e6c7057e8
|
Extend boolean F`˘ special code to any frame and cell rank
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
5e3cc6de81
|
Refactoring, simplification, comments
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
a8b036ad08
|
Implement ≠˝˘ and =˝˘ like ∧∨ on width<64 boolean
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
f0f130c42e
|
Use a lookup table for evenly-spaced masks, getting division results from those
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
e6f1e04de2
|
Fast generic and pext-based ∧˝˘ and ∨˝˘ on width<64
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
40bf3bfd1c
|
AVX2-based boolean short-row scans
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
efde979fe9
|
Fast boolean ⊣`˘
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
8331a05547
|
Boolean ≠`˘ implementation
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
5591d0f4f0
|
Boolean row-wise scans ∧˘ and ∨˘
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
7b4468c394
|
Move logical fold-rows functions to Singeli
|
2024-06-18 07:46:31 -04:00 |
|
Marshall Lochbaum
|
2590222988
|
Generic-architecture implementations of fold.singeli
|
2024-06-18 07:46:31 -04:00 |
|
dzaima
|
563c30c596
|
allSame Singeli helper, make NEON homMask accept signed types
|
2024-06-16 14:00:40 +03:00 |
|
dzaima
|
d85f628d72
|
accept tuple argument in homMask
|
2024-06-14 04:28:53 +03:00 |
|
dzaima
|
d161f93a38
|
more Singeli refactoring
makes some conditions more strict
removes wrong el_m & el_s definitions
|
2024-05-26 04:25:54 +03:00 |
|
Marshall Lochbaum
|
56944b8985
|
Minor Singeli simplifications
|
2024-05-25 18:31:47 -04:00 |
|
Marshall Lochbaum
|
90863851b7
|
Use new Singeli type destructuring (no change to generated C)
|
2024-05-25 18:31:47 -04:00 |
|
dzaima
|
44c8da7dc7
|
add checks for l>0 on equal() impls
some Singeli `fn equal` paths already assumed such, this just makes the requirement properly checked for, benefited from, and documented
|
2024-05-20 01:03:57 +03:00 |
|
dzaima
|
4f898f38d2
|
various Singeli usage improvements and fixes
|
2024-05-11 05:57:30 +03:00 |
|
Marshall Lochbaum
|
b2e3a5ff74
|
Move from & to if/and for Singeli conditions
|
2024-05-10 10:26:28 -04:00 |
|
Marshall Lochbaum
|
4d6612cb16
|
Replace tuplen{} and tupsel{} with length{} and select{}
|
2024-05-10 09:49:58 -04:00 |
|
Marshall Lochbaum
|
12d7629f9c
|
Replace top-level if with if_inline
|
2024-05-10 08:36:24 -04:00 |
|
Marshall Lochbaum
|
526d9bbebe
|
Wrap non-destructuring type parameters in parens
|
2024-05-10 08:30:08 -04:00 |
|
dzaima
|
606e07ff14
|
fix vqtbl1 NEON argument type
|
2024-02-27 01:42:56 +02:00 |
|
dzaima
|
c078f62b1f
|
add GLOBAL, INIT_GLOBAL, or const to globals
|
2024-02-01 21:13:39 +02:00 |
|
dzaima
|
6e39b59e73
|
use tuple destructuring in mask.singeli
|
2024-01-28 02:38:16 +02:00 |
|
dzaima
|
83afa4ba99
|
rename functions in cmp.singeli
|
2024-01-11 23:36:03 +02:00 |
|
Marshall Lochbaum
|
f62981e370
|
Make Singeli if conditions have type u1
|
2024-01-10 17:10:53 -05:00 |
|
Marshall Lochbaum
|
7511420077
|
Fix first element of 1-byte Deduplicate result in some cases with 256 uniques
|
2024-01-07 21:27:12 -05:00 |
|
Marshall Lochbaum
|
5f3a4769be
|
Rename constrep.singeli to replicate.singeli; not just constant now
|
2023-12-31 15:30:20 -05:00 |
|
Marshall Lochbaum
|
e50ae40f8b
|
Port replicate-by-scan code from C to Singeli
|
2023-12-31 15:26:58 -05:00 |
|
Marshall Lochbaum
|
771496a25c
|
Pass slow-pdep build option to Singeli to suppress BMI2 bool/bool
|
2023-12-31 10:05:51 -05:00 |
|
Marshall Lochbaum
|
9604844d0b
|
Don't need ..._ before & in Singeli any more
|
2023-12-30 21:45:24 -05:00 |
|
Marshall Lochbaum
|
eb34213f0f
|
Fast ≍˘ for matching-type type-sized cells
|
2023-12-30 21:45:24 -05:00 |
|
Marshall Lochbaum
|
58f4f15f8f
|
Move more functionality to avx512.singeli
|
2023-12-30 10:43:40 -05:00 |
|
Marshall Lochbaum
|
92db3f15d0
|
Implement ≠` with AVX-512 clmul and GFNI
|
2023-12-30 10:43:06 -05:00 |
|
dzaima
|
9dc44ed1a9
|
make singeli/arch.bqn the source of SINGELI_AVX2
+ removes noting of lack of AVX2, which isn't shown from the makefile anyway
|
2023-12-30 02:09:56 +02:00 |
|
dzaima
|
18d2fa5f1c
|
rename Singeli select function
in anticipation to Singeli update which adds select as a builtin
|
2023-12-29 23:35:22 +02:00 |
|
dzaima
|
f11bebf8f4
|
fix usz=64 build
|
2023-12-28 19:17:57 +02:00 |
|
Marshall Lochbaum
|
dcb031d142
|
Make sure value in store{} has an appropriate type
|
2023-12-27 16:44:53 -05:00 |
|
dzaima
|
840c40748f
|
fix f64 scans on SSE2
|
2023-12-15 19:18:23 +02:00 |
|
dzaima
|
94b1d90995
|
SSE2 & NEON /⁼
|
2023-12-14 18:08:56 +02:00 |
|
dzaima
|
ec4db6dbad
|
tiny Singeli include changes
|
2023-12-10 15:55:57 +02:00 |
|
dzaima
|
3454fbe3ee
|
defer negated ≤AVX2 comparison negation to GPR result
|
2023-12-05 17:37:37 +02:00 |
|
dzaima
|
f02c92ee6a
|
fix 3 ∨ "abc"
|
2023-11-23 18:13:51 +02:00 |
|
dzaima
|
8814a7e66e
|
use 2x unroll for i16→u1 copying to utilize two-vector homMask
|
2023-11-21 02:45:33 +02:00 |
|
dzaima
|
773429a959
|
recursive base-case of homMask
|
2023-11-21 02:40:50 +02:00 |
|
dzaima
|
08fa7d3d30
|
specialize x86-64 homMask of 2x[n]i16, use for comparison
|
2023-11-21 02:29:03 +02:00 |
|
dzaima
|
3ebfb24b0f
|
unroll copying to bitarr
+ clean up comparison code as bulk homMask is supported everywhere
|
2023-11-21 00:18:18 +02:00 |
|
dzaima
|
fe985722c2
|
move multi-vector homMask to allow NEON to override it
|
2023-11-21 00:18:18 +02:00 |
|
dzaima
|
56cbe4aa03
|
mulHi → mulh for high half of element result
to not be confused with mulwHi or zipHi where it means providing the high batch of elements
|
2023-11-18 00:43:20 +02:00 |
|
dzaima
|
46e8ed1a3f
|
fix SSE4.2 usz=64 build
|
2023-11-13 23:28:30 +02:00 |
|
dzaima
|
b4e53abbe4
|
some comments
|
2023-11-13 16:38:02 +02:00 |
|
Marshall Lochbaum
|
c94d51dcaf
|
Fixes for 64-bit usz
|
2023-11-13 08:24:51 -05:00 |
|
dzaima
|
4fb6ce602f
|
add a require{} for CRC32
|
2023-11-13 12:56:48 +02:00 |
|
Marshall Lochbaum
|
09572de49a
|
Credible resizing policy for dyadic search hashes
|
2023-11-12 22:07:29 -05:00 |
|
Marshall Lochbaum
|
ee7a11a279
|
Unify self-search hash thresholds across primitives; doesn't seem to hurt performance
|
2023-11-12 14:35:25 -05:00 |
|
Marshall Lochbaum
|
5957487b70
|
Faster iteration over non-empty entries for hash table resizing
|
2023-11-11 20:24:20 -05:00 |
|
Marshall Lochbaum
|
b404c7c1d1
|
Eliminate a loop when resizing ordered hash
|
2023-11-11 20:24:20 -05:00 |
|
Marshall Lochbaum
|
3a50cda5d3
|
Specialize Index-of tables on result type
|
2023-11-10 17:12:37 -05:00 |
|
Marshall Lochbaum
|
b782693d15
|
Insert maxh to a special end bucket for ⊒ and reverse ⊐ (fixes ⊒ maxh bugs)
|
2023-11-10 12:04:55 -05:00 |
|
Marshall Lochbaum
|
e1b0c53c92
|
Fix various sentinel bugs
|
2023-11-09 20:24:46 -05:00 |
|
Marshall Lochbaum
|
2c625127d5
|
Reverse hashed Index-of
|
2023-11-09 10:39:07 -05:00 |
|
Marshall Lochbaum
|
f1485ca98c
|
Turn hash function definition structure inside-out
|
2023-11-09 09:19:47 -05:00 |
|
Marshall Lochbaum
|
aded9d4782
|
Shortcutting for reverse Member-of hash
|
2023-11-08 17:34:33 -05:00 |
|
Marshall Lochbaum
|
8e9c04523a
|
Fix overflow bug in hashed Member-of max_off calculation
|
2023-11-08 10:28:14 -05:00 |
|
Marshall Lochbaum
|
c75fdbc277
|
Reverse Member-of hash lookup
|
2023-11-07 22:07:17 -05:00 |
|
Marshall Lochbaum
|
8a2190b092
|
64-bit hashes with float normalization
|
2023-11-07 14:54:16 -05:00 |
|
Marshall Lochbaum
|
a4290b1f5c
|
Shortcut for hash-table dyadic ⊒
|
2023-11-07 09:59:53 -05:00 |
|
Marshall Lochbaum
|
4bf4149d40
|
Use hash deletion for forward ⊒ as well as reverse
|
2023-11-07 09:41:50 -05:00 |
|
Marshall Lochbaum
|
289658a59c
|
Delete hash entry as soon as it's cleared, not on next access
|
2023-11-07 07:53:45 -05:00 |
|
Marshall Lochbaum
|
30331eb800
|
Fix write off end for reverse ⊒
|
2023-11-07 07:15:17 -05:00 |
|
Marshall Lochbaum
|
c042fe6ca3
|
Vector binary search for integer Index-of
|
2023-11-06 15:43:26 -05:00 |
|
Marshall Lochbaum
|
d154ece51a
|
Vector binary search for 16-bit Member-of in addition to 32 (8 is too slow)
|
2023-11-06 09:37:58 -05:00 |
|
Marshall Lochbaum
|
11245d385e
|
Vector binary search Member-of
|
2023-11-05 22:10:39 -05:00 |
|
Marshall Lochbaum
|
75aed91f32
|
And max offset of 8 by testing two vectors
|
2023-11-05 15:46:26 -05:00 |
|
Marshall Lochbaum
|
ec31543604
|
Vector Member-of search up to an offset of 4
|
2023-11-05 15:45:07 -05:00 |
|
Marshall Lochbaum
|
af81da50e4
|
Don't need to initialize indices for hashed Index-of
|
2023-11-04 17:52:22 -04:00 |
|
Marshall Lochbaum
|
1286ee32ec
|
Reverse lookup for hashed Progressive Index-of
|
2023-11-03 21:58:17 -04:00 |
|
Marshall Lochbaum
|
84f3205547
|
Use a larger initial hash table if non-hashed argument is large
|
2023-11-03 21:50:38 -04:00 |
|
Marshall Lochbaum
|
a9f33c1454
|
Refactoring
|
2023-11-03 16:38:08 -04:00 |
|
Marshall Lochbaum
|
8aa6c07199
|
And hashed 32-bit Progressive Index-of
|
2023-11-02 20:29:54 -04:00 |
|
Marshall Lochbaum
|
64f2a10fbb
|
Return hash_resize{} from hash_alloc{}
|
2023-11-02 13:21:11 -04:00 |
|
Marshall Lochbaum
|
d54621b5dd
|
Extend hash table to 32-bit Index-of
|
2023-11-02 12:00:32 -04:00 |
|
Marshall Lochbaum
|
ed03720441
|
Robin Hood hash table for 32-bit membership
|
2023-11-01 15:46:45 -04:00 |
|
Marshall Lochbaum
|
cb8be206be
|
Move hash allocation to a generator
|
2023-10-31 22:09:11 -04:00 |
|
Marshall Lochbaum
|
ee856a4880
|
Move hash resizing to a generator, and other refactoring
|
2023-10-31 22:09:11 -04:00 |
|
Marshall Lochbaum
|
0fb845d336
|
Move self-search hash table code to Singeli
|
2023-10-31 22:09:11 -04:00 |
|
dzaima
|
9c68e67544
|
fix compilation error when targeting AVX1-only
|
2023-10-07 13:22:27 +03:00 |
|
Marshall Lochbaum
|
6330d61a88
|
Some rearrangement and minor simplifications
|
2023-09-12 10:24:00 -04:00 |
|
Marshall Lochbaum
|
72da47d48a
|
Use standard for loops
|
2023-09-12 09:12:57 -04:00 |
|
Marshall Lochbaum
|
40ed55bc43
|
Use built-in NEON include for basic vector instructions
|
2023-09-11 21:17:38 -04:00 |
|
Marshall Lochbaum
|
7b9f7ba331
|
Move x86 vector and NEON includes into base.singeli
|
2023-09-11 20:25:25 -04:00 |
|
Marshall Lochbaum
|
082f800b3e
|
Combine x86 vector extensions and use iintrinsic/basic when possible
|
2023-09-11 20:11:16 -04:00 |
|
Marshall Lochbaum
|
c85ca66dae
|
Unify Scan and Bins min-scan code
|
2023-08-26 09:27:59 -04:00 |
|
Marshall Lochbaum
|
0a30fb309d
|
SSE2 min- and max-scans
|
2023-08-26 07:26:33 -04:00 |
|
Marshall Lochbaum
|
a040a14744
|
Unify power-of-two shift pattern for scans
|
2023-08-26 07:26:33 -04:00 |
|
Marshall Lochbaum
|
d16ba6c3b1
|
Move xor-scan to scan.singeli; remove neq.singeli
|
2023-08-26 07:26:33 -04:00 |
|
Marshall Lochbaum
|
e261e80168
|
SSE min/max and pluswrap scans
|
2023-08-26 07:26:33 -04:00 |
|
Marshall Lochbaum
|
f9a4a5b68c
|
Remove duplicated SSE4.1 min/max bindings
|
2023-08-26 07:26:33 -04:00 |
|