Konstantinos Margaritis
|
a837cf3bee
|
[VSX] optimize shift operators
|
2022-09-07 12:16:14 +03:00 |
|
Konstantinos Margaritis
|
be20c2c519
|
[VSX] optimize shifting methods, replace template Unroller
|
2022-09-07 12:14:15 +03:00 |
|
Konstantinos Margaritis
|
dc6b8ae92d
|
optimize comparemask implementation, clean up code, use union types instead of casts
|
2022-09-07 02:02:11 +03:00 |
|
Danila Kutenin
|
8a49e20bcd
|
Fix formatting of a couple files
|
2022-06-26 22:59:58 +00:00 |
|
Danila Kutenin
|
49eb18ee4f
|
Optimize vectorscan for aarch64 by using shrn instruction
This optimization is based on the thread
https://twitter.com/Danlark1/status/1539344279268691970 and uses
shift right and narrow by 4 instruction https://developer.arm.com/documentation/ddi0596/2020-12/SIMD-FP-Instructions/SHRN--SHRN2--Shift-Right-Narrow--immediate--
To achieve that, I needed to redesign a little movemask into comparemask
and have an additional step towards mask iteration. Our benchmarks
showed 10-15% improvement on average for long matches.
|
2022-06-26 22:55:45 +00:00 |
|
Konstantinos Margaritis
|
467db4a268
|
Minor changes to enable compilation on Mac M1
|
2021-12-11 15:43:55 +02:00 |
|
Konstantinos Margaritis
|
290eabbca0
|
fix compilation with clang and some incomplete/wrong implementations for arm this time
|
2021-12-06 18:22:58 +00:00 |
|
Konstantinos Margaritis
|
5aae719ecd
|
fix build with clang, in particular VSX uses long long instead of int64_t, gcc allows this, clang does not
|
2021-12-02 18:01:00 +02:00 |
|
Konstantinos Margaritis
|
4aa32275f1
|
use same definition of the union for all types
|
2021-12-02 18:00:02 +02:00 |
|
Konstantinos Margaritis
|
0221dc1771
|
fix misompilations with clang++, as it is more strict
|
2021-12-01 23:22:15 +02:00 |
|
Konstantinos Margaritis
|
7ceca78db4
|
fix unit-internal release builds using __builtin_constant_p() as well
|
2021-11-25 15:09:01 +02:00 |
|
Konstantinos Margaritis
|
cd95b1a38c
|
use __builtin_constant_p() instead for arm as well
|
2021-11-25 06:20:53 +00:00 |
|
Apostolos Tapsas
|
0287724413
|
WIP:tracking last bugs in failing tests for release build
|
2021-11-16 15:24:22 +00:00 |
|
apostolos
|
e09d8674b4
|
resolving conficts after merging
|
2021-11-13 18:58:22 +02:00 |
|
Apostolos Tapsas
|
ba90cdeb5a
|
SuperVector constructors as well as andnot implementation fixed
|
2021-11-05 13:34:48 +00:00 |
|
Konstantinos Margaritis
|
713aaef799
|
move casemask helper functions to separate header
|
2021-11-01 16:05:43 +00:00 |
|
Konstantinos Margaritis
|
7b65b298c1
|
add arm vector types in union, avoid -flax-conversions, fix castings
|
2021-11-01 16:52:17 +02:00 |
|
apostolos
|
d9d39d48c5
|
prints commants and formating fixes
|
2021-11-01 10:09:15 +02:00 |
|
apostolos
|
bf54aae779
|
Special case for Shuffle test added as well as comments for respectives implementations
|
2021-10-26 11:48:33 +03:00 |
|
Apostolos Tapsas
|
1eb3b19f63
|
Shuffle simd and SuperVector implementetions as well as their test realy fixed
|
2021-10-25 09:19:30 +03:00 |
|
Apostolos Tapsas
|
d43d6733b6
|
SuperVector shuffle implementation and test function optimized
|
2021-10-22 11:55:39 +00:00 |
|
Apostolos Tapsas
|
558313a2c2
|
SuperVector operators fixes and simd_utils low/high64 functions implementations added
|
2021-10-18 12:26:38 +00:00 |
|
Apostolos Tapsas
|
e084c2d6e4
|
SuperVector vsh* implementations
|
2021-10-15 14:07:17 +00:00 |
|
apostolos
|
d0a41252c8
|
blockSigleMask implementations for ARCH_PPC64 added
|
2021-10-14 15:56:13 +03:00 |
|
apostolos
|
4d2acd59e2
|
Supervector vsh* added
|
2021-10-14 15:08:23 +03:00 |
|
Apostolos Tapsas
|
7888dd4418
|
WIP: Power VSX support almost completed
|
2021-10-14 13:53:55 +03:00 |
|
Vectorcamp
|
2231f7c024
|
compile fixes for vsc port
|
2021-10-14 13:53:55 +03:00 |
|
apostolos
|
90d3db1776
|
update powerpc simd util file functions
|
2021-10-14 13:53:55 +03:00 |
|
apostolos
|
0078c28ee6
|
implementations for powerpc64el architecture
|
2021-10-14 13:53:55 +03:00 |
|
Konstantinos Margaritis
|
c3baf3d296
|
fix multiple/undefined symbols when using fat runtimes
|
2021-10-12 11:51:35 +03:00 |
|
Konstantinos Margaritis
|
577e03e0c7
|
rearrange method declarations
|
2021-10-12 11:51:35 +03:00 |
|
Konstantinos Margaritis
|
8b7ba89cb5
|
add x86 vsh* implementations
|
2021-10-12 11:51:35 +03:00 |
|
Konstantinos Margaritis
|
67e0674df8
|
Changes/Additions to SuperVector class * added ==,!=,>=,>,<=,< operators * reworked shift operators to be more uniform and orthogonal, like Arm ISA * Added Unroller class to allow handling of multiple cases but avoid code duplication * pshufb method can now emulate Intel or not (avoids one instruction).
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
e7161fdfec
|
initial SSE/AVX2 implementation
|
2021-10-12 11:51:34 +03:00 |
|
apostolos
|
67fa6d2738
|
alignr methods for avx2 and avx512 added
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
603bc14cdd
|
fix failing corner case, add pshufb_maskz()
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
f2d9784979
|
fix loadu_maskz, add {l,r}shift128_var(), tab fixes
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
f8ce0bb922
|
minor fixes, add 2 constructors from half size vectors
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
ebb1b84ae3
|
provide an {l,r}shift128_var() to fix immediate value build failure in loadu_maskz
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
825460856f
|
fix arm loadu_maskz()
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
86accf41a3
|
add arm rshift128/rshift128
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
6c51f7f591
|
add {l,r}shift128()+tests, rename printv_u64() to print64()
|
2021-10-12 11:51:34 +03:00 |
|
apostolos
|
6f88ecac44
|
Supervector test fixes
|
2021-10-12 11:51:34 +03:00 |
|
apostolos
|
ae6bc52076
|
SuperVector AVX512 implementations
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
7ae636dfe9
|
really fix lshift for avx2
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
dede600637
|
lots of fixes to AVX2 implementation
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
c45e72775f
|
convert print helper functions to class methods
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
ec3f108d71
|
fix arm SuperVector implementation
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
f425951b49
|
fix x86 debug alignr
|
2021-10-12 11:51:34 +03:00 |
|
Konstantinos Margaritis
|
6d8f3b9ff8
|
compilation fixes for debug mode
|
2021-10-12 11:51:34 +03:00 |
|