dzaima
|
b0d8bcb428
|
add argument passing to makeOptBranch
|
2023-04-06 22:41:20 +03:00 |
|
dzaima
|
897c46df76
|
aarch64 fold.singeli
|
2023-04-06 20:17:09 +03:00 |
|
dzaima
|
b3f3190028
|
SSE2 fold.singeli
|
2023-04-06 19:49:14 +03:00 |
|
dzaima
|
1d6b33d528
|
restrict fold_addw to integer input
|
2023-04-06 19:18:43 +03:00 |
|
dzaima
|
d13060f725
|
move fold to vfold
|
2023-04-06 19:05:38 +03:00 |
|
Marshall Lochbaum
|
9d7d330a03
|
Use AVX2 counting for 1-byte counting sort
|
2023-04-06 11:32:34 -04:00 |
|
Marshall Lochbaum
|
0e5b98c491
|
Return max from AVX2 counting function
|
2023-04-06 11:32:34 -04:00 |
|
Marshall Lochbaum
|
4b18466ae2
|
Clean up and simplify count.singeli; allow longer final block
|
2023-04-06 11:32:06 -04:00 |
|
Marshall Lochbaum
|
06b4f06e64
|
Move fold{} from squeeze.singeli to vecfold.singeli
|
2023-04-06 11:32:06 -04:00 |
|
Marshall Lochbaum
|
2ddcc14852
|
Use minimum in addition to maximum for AVX2 counting
|
2023-04-06 11:32:06 -04:00 |
|
Marshall Lochbaum
|
e6a3e846d9
|
Sum counts in groups of 4 when possible
|
2023-04-06 11:32:06 -04:00 |
|
Marshall Lochbaum
|
b655dd4771
|
AVX2 counting function for small-range 1-byte /⁼
|
2023-04-06 11:32:04 -04:00 |
|
dzaima
|
cba6ef505a
|
add usz option to build/build
|
2023-04-06 17:47:31 +03:00 |
|
dzaima
|
5492eae8c5
|
unrolling for single-element search
|
2023-04-06 15:42:10 +03:00 |
|
dzaima
|
876914d053
|
Singeli single-element search
|
2023-04-06 14:56:49 +03:00 |
|
dzaima
|
8b05cd243f
|
fix SSE2 unsigned comparisons
|
2023-04-05 13:47:16 +03:00 |
|
dzaima
|
7d1fcf2c3a
|
move &~ to base.singeli
|
2023-04-02 16:33:24 +03:00 |
|
dzaima
|
100a188545
|
fix aarch64 singeli
|
2023-04-02 15:39:42 +03:00 |
|
dzaima
|
00a5ddcb89
|
SSE2 squeeze
|
2023-04-02 15:04:00 +03:00 |
|
dzaima
|
e0a265472c
|
SSE2 extract{x,0} for [4]i32 and [2]i64
|
2023-04-02 12:10:18 +03:00 |
|
dzaima
|
9209ca5d6d
|
SSE2 copy.singeli
|
2023-04-02 01:53:16 +03:00 |
|
dzaima
|
5018cf9b2e
|
reduce unnecessary casts in C output
|
2023-04-01 23:04:55 +03:00 |
|
dzaima
|
9826201343
|
move neon.singeli type checks to w64/w128
|
2023-04-01 22:53:38 +03:00 |
|
dzaima
|
a62c21733e
|
SSE2 equal.singeli
|
2023-04-01 22:08:47 +03:00 |
|
dzaima
|
96ee73f644
|
enable Singeli monadic arith & comparisons on SSE2
|
2023-04-01 20:40:29 +03:00 |
|
dzaima
|
3a45eac1aa
|
separate SSE2, implement SSE2 dyarith & bitsel
also separate maskstore to homogeneous & top bit mask variants, and make blend require equal element widths
|
2023-04-01 20:40:23 +03:00 |
|
dzaima
|
dc2ac37e0a
|
arch-independent Singeli builds
|
2023-03-31 16:45:29 +03:00 |
|
Marshall Lochbaum
|
814a677676
|
Make transpose movement functions strided
|
2023-03-29 12:37:15 -04:00 |
|
Marshall Lochbaum
|
b829076271
|
Put CPU-size transpose functions in a table
|
2023-03-29 12:37:15 -04:00 |
|
Marshall Lochbaum
|
410d51501d
|
Check for AVX2 in Singeli transpose so it can build on non-x86 architectures
|
2023-03-29 12:37:15 -04:00 |
|
Marshall Lochbaum
|
bf04b3aab0
|
Move w128i and similar from sse3 and avx.singeli to base
|
2023-03-28 16:11:46 -04:00 |
|
Marshall Lochbaum
|
ebbddf9dcf
|
Move height/width 2 transposes to Singeli
|
2023-03-28 16:11:46 -04:00 |
|
dzaima
|
21b9ad5c3c
|
don't include debug.singeli
|
2023-03-27 17:53:01 +03:00 |
|
dzaima
|
fa8437ca25
|
don't use _mm256_loadu2_m128i
doesn't exist on old gcc
|
2023-03-23 18:21:34 +02:00 |
|
Marshall Lochbaum
|
699faea69c
|
Dedicated width-overflow loop for SIMD transpose
|
2023-03-22 17:34:37 -04:00 |
|
Marshall Lochbaum
|
5a2bc15f2a
|
Overlap SIMD transpose on width too
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
61eefe0776
|
Fix writing past end in i16 transpose with overlapped halves
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
8ff40cb2e5
|
Overlap SIMD transpose to handle uneven heights (not widths yet)
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
fad7f3aa8b
|
Simplify
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
dd141add3f
|
Merge i16 SIMD transpose with the rest of them
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
9673771187
|
Combine code for the different transpose kernel geometries
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
e40feaa81c
|
Make transpose kernel code type-generic
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
923c485cc2
|
Use packed-halves transpose kernel for 8x8 i16
|
2023-03-22 15:14:09 -04:00 |
|
Marshall Lochbaum
|
2a8e6e9c8a
|
Separate most transpose kernel logic from loops and move i8 case into main
|
2023-03-22 15:14:08 -04:00 |
|
Marshall Lochbaum
|
7d800bf349
|
SIMD transpose on 1-byte elements
|
2023-03-22 15:14:08 -04:00 |
|
Marshall Lochbaum
|
5fccf4cda3
|
Refactoring; check for small transpose width/height in Singeli, not C
|
2023-03-22 15:14:08 -04:00 |
|
Marshall Lochbaum
|
0e2e315e51
|
Allow an 8x8 row for 2-byte transpose
|
2023-03-22 15:14:08 -04:00 |
|
Marshall Lochbaum
|
239c765998
|
SIMD transpose on 2-byte elements
|
2023-03-22 15:14:08 -04:00 |
|
Marshall Lochbaum
|
f6c6e72661
|
More transpose kernel refactoring
|
2023-03-22 15:14:08 -04:00 |
|
Marshall Lochbaum
|
c0aaa6f615
|
SIMD transpose on 8-byte elements
|
2023-03-22 15:14:08 -04:00 |
|