View in context in the libbitcoin Slack #general mirror.
AMD Ryzen 9 7950X has shani as well as sse4, avx2, and avx512. I haven't been able to perf test with avx512 yet but it's implemented.... snip ...
from ./include/bitcoin/system/settings.hpp:22,
from ./include/bitcoin/system.hpp:29,
from examples/main.cpp:21:
./include/bitcoin/system/intrinsics/xcpu/functional_512.hpp: In function 'libbitcoin::system::xint512_t libbitcoin::system::add(xint512_t, xint512_t)':
./include/bitcoin/system/intrinsics/xcpu/functional_512.hpp:163:31: error: cannot convert 'libbitcoin::system::xint512_t' {aka '__m512i'} to '__m256i'
163 | return mm256_add_epi8(a, b);
| ^
| |
| libbitcoin::system::xint512_t {aka __m512i}
./include/bitcoin/system/intrinsics/xcpu/defines.hpp:224:61: note: in definition of macro 'mm256_add_epi8'
224 | #define mm256_add_epi8(a, b) _mm256_add_epi8(a, b)
| ^
In file included from /usr/lib/gcc/x86_64-linux-gnu/14/include/immintrin.h:53,
from /mnt/ssd1/libbitcoin/master/install/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp:83,
from /mnt/ssd1/libbitcoin/master/install/include/boost/multiprecision/cpp_int/add_unsigned.hpp:10,
from /mnt/ssd1/libbitcoin/master/install/include/boost/multiprecision/cpp_int/add.hpp:12,
from /mnt/ssd1/libbitcoin/master/install/include/boost/multiprecision/cpp_int.hpp:2284,
from ./include/bitcoin/system/boost.hpp:54,
from ./include/bitcoin/system/exceptions.hpp:26,
from ./include/bitcoin/system/arena.hpp:22,
from ./include/bitcoin/system/allocator.hpp:28,
from ./include/bitcoin/system.hpp:17:
/usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h:105:26: note: initializing argument 1 of '__m256i _mm256_add_epi8(__m256i, __m256i)'
105 | _mm256_add_epi8 (__m256i __A, __m256i __B)
| ~~~~~~~~^~~
./include/bitcoin/system/intrinsics/xcpu/functional_512.hpp:165:32: error: cannot convert 'libbitcoin::system::xint512_t' {aka '__m512i'} to '__m256i'
165 | return mm256_add_epi16(a, b);
| ^
| |
| libbitcoin::system::xint512_t {aka __m512i}
./include/bitcoin/system/intrinsics/xcpu/defines.hpp:225:62: note: in definition of macro 'mm256_add_epi16'
225 | #define mm256_add_epi16(a, b) _mm256_add_epi16(a, b)
| ^
/usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h:112:27: note: initializing argument 1 of '__m256i _mm256_add_epi16(__m256i, __m256i)'
112 | _mm256_add_epi16 (__m256i __A, __m256i __B)
| ~~~~~~~~^~~
./include/bitcoin/system/intrinsics/xcpu/functional_512.hpp:167:32: error: cannot convert 'libbitcoin::system::xint512_t' {aka '__m512i'} to '__m256i'
167 | return mm256_add_epi32(a, b);
| ^
| |
| libbitcoin::system::xint512_t {aka __m512i}
./include/bitcoin/system/intrinsics/xcpu/defines.hpp:226:62: note: in definition of macro 'mm256_add_epi32'
226 | #define mm256_add_epi32(a, b) _mm256_add_epi32(a, b)
| ^
/usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h:119:27: note: initializing argument 1 of '__m256i _mm256_add_epi32(__m256i, __m256i)'
119 | _mm256_add_epi32 (__m256i __A, __m256i __B)
| ~~~~~~~~^~~
./include/bitcoin/system/intrinsics/xcpu/functional_512.hpp:169:32: error: cannot convert 'libbitcoin::system::xint512_t' {aka '__m512i'} to '__m256i'
169 | return mm256_add_epi64(a, b);
| ^
| |
| libbitcoin::system::xint512_t {aka __m512i}
./include/bitcoin/system/intrinsics/xcpu/defines.hpp:227:62: note: in definition of macro 'mm256_add_epi64'
227 | #define mm256_add_epi64(a, b) _mm256_add_epi64(a, b)
| ^
/usr/lib/gcc/x86_64-linux-gnu/14/include/avx2intrin.h:126:27: note: initializing argument 1 of '__m256i _mm256_add_epi64(__m256i, __m256i)'
126 | _mm256_add_epi64 (__m256i __A, __m256i __B)
| ~~~~~~~~^~~
make: *** [Makefile:4993: examples/libbitcoin_system_examples-main.o] Error 1