George Wort
051ceed0f9
Use SVE2 Bitperm's bdep instruction in bitutils and state_compress
...
Specifically for pdep64, expand32, and expand64 in bitutils,
as well as all of the loadcompressed functions used in
state_compress.
Change-Id: I92851bd12481dbee6a7e344df0890c4901b56d01
2021-10-12 11:51:34 +03:00
George Wort
9fb79ac3ec
Add SVE2 support for vermicelli
...
Change-Id: Ia025de53521fbaefe5fb1e4425aaf75c7d80a14e
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
d8b5eb5d17
fix compilation on C++
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
273b9683ac
simplify function
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
6e63aafbea
add arm support for the new SuperVector class
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
e6c1fa04ce
add C++ template SIMD library (WIP)
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
52661f35e8
add global definitions for CHUNKSIZE/VECTORSIZE, define HAVE_AVX512* only when BUILD_AVX512 is also enabled
2021-10-12 11:51:33 +03:00
Konstantinos Margaritis
831091db9e
fix typo
2021-10-12 11:51:33 +03:00
Konstantinos Margaritis
741d8246c5
fix some AVX512 function names, to fix AVX512 build failure, also rename the expand* functions to broadcast*() ones for consistency
2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
c3c68b1c3f
fix x86 implementations for compress128/expand128
2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
814045201f
add BUILD_AVX2 definition, enable non-AVX2 building selectively
2021-02-15 13:54:19 +02:00
Konstantinos Margaritis
be66cdb51d
fixes in shifting primitives
2021-02-08 19:38:20 +02:00
Konstantinos Margaritis
f541f75400
bugfix compress128/expand128, add unit tests
2021-02-08 19:20:37 +02:00
Konstantinos Margaritis
d9874898c7
make const
2021-02-08 19:19:52 +02:00
Wang Xiang W
5f930b267c
Limex: exception handling with AVX512
2021-01-25 14:13:13 +02:00
Chang, Harry
b19a41528a
Add cpu feature / target info "AVX512VBMI".
2021-01-25 14:13:13 +02:00
Zhu,Wenjun
d96f1ab505
MCSHENG64: extend to 64-state based on mcsheng
2021-01-25 14:13:13 +02:00
Hong, Yang A
dea7c4dc2e
lookaround:
...
add 64x8 and 64x16 shufti models
add mask64 model
expand entry quantity
2021-01-25 14:13:13 +02:00
Konstantinos Margaritis
e2f253d8ab
remove loads from movemask128, variable_byte_shift, add palignr_imm(), minor fixes
2021-01-25 12:13:35 +02:00
Konstantinos Margaritis
a039089888
fix non-const char * write-strings compile error
2021-01-25 12:13:35 +02:00
Konstantinos Margaritis
5b85589274
add some useful intrinsics
2021-01-25 12:13:35 +02:00
Konstantinos Margaritis
1c581e45e9
add expand128() implementation for NEON
2021-01-25 12:13:35 +02:00
Konstantinos Margaritis
752a42419b
fix IA32 build, as we need minimum SSSE3 support for compilation to succeed
2020-12-30 19:57:44 +02:00
Konstantinos Margaritis
61b963a717
fix x86 compilation
2020-12-08 11:42:30 +02:00
Konstantinos Margaritis
773dc6fa69
optimize *shiftbyte_m128() functions to use palign instead of variable_byte_shift_m128()
2020-12-07 23:12:26 +02:00
Konstantinos Margaritis
38477b08bc
fix movq and load_m128_from_u64a and resp. test for NEON
2020-12-03 19:27:38 +02:00
Konstantinos Margaritis
259c2572c1
define debug vector print functions to NULL in non-debug mode
2020-12-03 19:27:05 +02:00
Konstantinos Margaritis
d76365240b
helper functions to print a m128 vector in debug mode
2020-11-24 17:57:16 +02:00
Konstantinos Margaritis
1c26f044a7
when building in debug mode, vgetq_lane_*() and vextq_*() need immediate operands, and we have to use switch()'ed versions
2020-11-24 17:56:40 +02:00
Konstantinos Margaritis
c4f1372814
remove debug from functions
2020-11-05 20:33:17 +02:00
Konstantinos Margaritis
33904180d8
add compress128 function and implementation
2020-11-05 19:20:06 +02:00
Konstantinos Margaritis
7b8cf97546
add extra instructions (currently arm-only), fix order of elements in set4x32/set2x64
2020-11-05 19:18:53 +02:00
Konstantinos Margaritis
548242981d
fix ARM implementations
2020-10-30 10:38:41 +02:00
Konstantinos Margaritis
149ea938c4
don't redefine function on x86
2020-10-16 13:09:08 +03:00
Konstantinos Margaritis
c4db63665a
scalar implementations of diffrich256 and diffrich384
2020-10-16 13:02:40 +03:00
Konstantinos Margaritis
4bce012570
Revert "move x86 popcount.h implementations to util/arch/x86/popcount.h"
...
This reverts commit 6581aae90e55520353c03edb716de80ecc03521a.
2020-10-16 12:32:44 +03:00
Konstantinos Margaritis
83977db7ab
split arch-agnostic simd_utils.h functions into the common file
2020-10-16 12:30:34 +03:00
Konstantinos Margaritis
e7e1308d7f
fix compilation paths for cpuid_flags for x86
2020-10-16 12:29:45 +03:00
Konstantinos Margaritis
45bfed9b9d
add scalar versions of the vectorized functions for architectures that don't support 256-bit/512-bit SIMD vectors such as ARM
2020-10-15 16:30:18 +03:00
Konstantinos Margaritis
c5a7f4b846
add ARM simd_utils vectorized functions for 128-bit vectors
2020-10-15 16:26:49 +03:00
Konstantinos Margaritis
5b425bd5a6
add arm simple cpuid_flags
2020-10-15 16:26:04 +03:00
Konstantinos Margaritis
31ac6718dd
add ARM version of simd_utils.h
2020-10-13 09:19:56 +03:00
Konstantinos Margaritis
a9212174ee
add arm bitutils.h header
2020-10-08 20:50:55 +03:00
Konstantinos Margaritis
1c2c73becf
add C implementation of pdep64()
2020-10-08 20:50:18 +03:00
Konstantinos Margaritis
d2cf1a7882
move cpuid_flags.h header to common
2020-10-08 20:49:33 +03:00
Konstantinos Margaritis
5d773dd9db
use C implementation of popcount for arm
2020-10-07 14:28:45 +03:00
Konstantinos Margaritis
4c924cc920
add arm architecture basic defines
2020-10-07 14:28:12 +03:00
Konstantinos Margaritis
9a0494259e
minor fix
2020-10-07 14:26:41 +03:00
Konstantinos Margaritis
f0e70bc0ad
Revert "Revert "move x86 popcount.h implementations to util/arch/x86/popcount.h""
...
This reverts commit 04fbf2468140cc4d7ccabc62a2bdc4503a3d31c5.
2020-09-24 11:52:59 +03:00
Konstantinos Margaritis
04fbf24681
Revert "move x86 popcount.h implementations to util/arch/x86/popcount.h"
...
This reverts commit 6581aae90e55520353c03edb716de80ecc03521a.
2020-09-24 10:01:50 +03:00