Implementation notes: amd64, cherry, crypto_hash/blake2b
Computer: cherry
Microarchitecture: amd64; Silvermont (406c4)
Architecture: amd64
CPU ID: GenuineIntel-000406c4-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_hash
Primitive: blake2b
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
13288 | 12125 0 0 | 23232 780 952 | T:regs | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
13294 | 12120 0 0 | 24416 780 952 | T:regs | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
13877 | 12746 0 0 | 25520 812 888 | T:regs | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
13945 | 13344 0 0 | 23358 804 888 | T:regs | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
13953 | 13344 0 0 | 24872 812 888 | T:regs | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
13955 | 13344 0 0 | 26520 812 888 | T:regs | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
13973 | 11619 0 0 | 21155 756 920 | T:regs | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
15282 | 8058 0 0 | 20424 780 952 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
15506 | 7802 0 0 | 18968 780 952 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
16104 | 11976 0 0 | 22519 772 952 | T:regs | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
16962 | 10298 0 0 | 23552 812 888 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
16968 | 9898 0 0 | 21504 812 888 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
17073 | 13076 0 0 | 23606 804 888 | T:regs | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
17798 | 8997 0 0 | 19086 804 888 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
18261 | 10298 0 0 | 23144 812 888 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
18680 | 7026 0 0 | 16635 756 920 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
22161 | 8343 0 0 | 19024 780 952 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
29015 | 16893 0 0 | 29680 812 888 | T:xmm | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
33546 | 13613 0 0 | 24142 804 888 | T:xmm | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
34025 | 13628 0 0 | 25176 812 888 | T:xmm | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
34025 | 13628 0 0 | 26824 812 888 | T:xmm | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
34028 | 13540 0 0 | 23582 804 888 | T:xmm | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
35565 | 14717 0 0 | 25271 772 952 | T:xmm | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
38516 | 13119 0 0 | 22675 756 920 | T:xmm | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
39179 | 14838 0 0 | 25952 780 952 | T:xmm | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
39179 | 14838 0 0 | 27136 780 952 | T:xmm | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
47013 | 20505 0 0 | 31158 804 888 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
Test failure
error 111
Number of similar (implementation,compiler) pairs: 36, namely:
Implementation | Compiler |
T:avxicc | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avxicc | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avxicc | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avxicc | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avxicc | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avxicc | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avxicc | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avxicc | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avxicc | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx/64 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx/64 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx/64 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx/64 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx/64 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx/64 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx/64 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx/64 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx/64 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx2/64 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx2/64 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx2/64 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx2/64 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx2/64 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/avx2/64 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx2/64 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx2/64 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/avx2/64 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/xop/64 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/xop/64 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/xop/64 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/xop/64 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/xop/64 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:moon/xop/64 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/xop/64 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/xop/64 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:moon/xop/64 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
blake2b.c: blake2b.c:37:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_1_timingleaks' that is compiled without support for 'avx'
blake2b.c: const __m256i r16 = _mm256_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9,
blake2b.c: ^
blake2b.c: blake2b.c:37:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:39:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_1_timingleaks' that is compiled without support for 'avx'
blake2b.c: const __m256i r24 = _mm256_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10,
blake2b.c: ^
blake2b.c: blake2b.c:39:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:56:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_1_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:56:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_1_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: blake2b.c:57:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:95:12: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_1_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm2 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6a09e667f3bcc908ULL);
blake2b.c: ^
blake2b.c: blake2b.c:95:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:98:14: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_1_timingleaks' that is compiled without support for 'avx'
blake2b.c: _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL),
blake2b.c: ^
blake2b.c: blake2b.c:98:14: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:100:14: error: '__builtin_ia32_pblendd256' needs target feature avx2
blake2b.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:avx2-1 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-1 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-1 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-1 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-1 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_avx2_1_timingleaks':
blake2b.c: blake2b.c:37:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blake2b.c: 37 | const __m256i r16 = _mm256_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9,
blake2b.c: | ^~~
blake2b.c: In file included from blake2b.c:14:
blake2b.c: At top level:
blake2b.c: blake2.h:134:14: warning: 'blake2' defined but not used [-Wunused-function]
blake2b.c: 134 | static int blake2( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen )
blake2b.c: | ^~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
blake2b.c: from blake2b.c:11:
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_avx2_1_timingleaks':
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1296:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi64x': target specific option mismatch
blake2b.c: 1296 | _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: | ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:57:10: note: called from here
blake2b.c: 57 | ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
blake2b.c: from blake2b.c:11:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1296:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi64x': target specific option mismatch
blake2b.c: 1296 | _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: | ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:56:10: note: called from here
blake2b.c: 56 | ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2-1 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-1 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-1 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-1 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx'
blake2b.c: const __m256i r16 = _mm256_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9,
blake2b.c: ^
blake2b.c: blake2b.c:38:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx'
blake2b.c: const __m256i r24 = _mm256_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10,
blake2b.c: ^
blake2b.c: blake2b.c:40:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:57:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:64:24: error: always_inline function '_mm256_broadcastsi128_si256' requires target feature 'avx2', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx2'
blake2b.c: const __m256i m0 = _mm256_broadcastsi128_si256(LOADU128( in + 00 ));
blake2b.c: ^
blake2b.c: blake2b.c:64:24: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:65:24: error: always_inline function '_mm256_broadcastsi128_si256' requires target feature 'avx2', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx2'
blake2b.c: const __m256i m1 = _mm256_broadcastsi128_si256(LOADU128( in + 16 ));
blake2b.c: ^
blake2b.c: blake2b.c:65:24: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:66:24: error: always_inline function '_mm256_broadcastsi128_si256' requires target feature 'avx2', but would be inlined into function 'crypto_hash_blake2b_avx2_2_timingleaks' that is compiled without support for 'avx2'
blake2b.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:avx2-2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-2 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_avx2_2_timingleaks':
blake2b.c: blake2b.c:38:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blake2b.c: 38 | const __m256i r16 = _mm256_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9,
blake2b.c: | ^~~
blake2b.c: In file included from blake2b.c:15:
blake2b.c: At top level:
blake2b.c: blake2.h:134:14: warning: 'blake2' defined but not used [-Wunused-function]
blake2b.c: 134 | static int blake2( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen )
blake2b.c: | ^~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
blake2b.c: from blake2b.c:12:
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_avx2_2_timingleaks':
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1296:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi64x': target specific option mismatch
blake2b.c: 1296 | _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: | ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:58:10: note: called from here
blake2b.c: 58 | ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1296:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi64x': target specific option mismatch
blake2b.c: 1296 | _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: | ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:57:10: note: called from here
blake2b.c: 57 | ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2-2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_3_timingleaks' that is compiled without support for 'avx'
blake2b.c: const __m256i r16 = _mm256_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9,
blake2b.c: ^
blake2b.c: blake2b.c:38:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_3_timingleaks' that is compiled without support for 'avx'
blake2b.c: const __m256i r24 = _mm256_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10,
blake2b.c: ^
blake2b.c: blake2b.c:40:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_3_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:57:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_3_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:96:12: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_3_timingleaks' that is compiled without support for 'avx'
blake2b.c: ymm2 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6a09e667f3bcc908ULL);
blake2b.c: ^
blake2b.c: blake2b.c:96:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:99:14: error: always_inline function '_mm256_set_epi64x' requires target feature 'avx', but would be inlined into function 'crypto_hash_blake2b_avx2_3_timingleaks' that is compiled without support for 'avx'
blake2b.c: _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL),
blake2b.c: ^
blake2b.c: blake2b.c:99:14: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
blake2b.c: blake2b.c:101:14: error: '__builtin_ia32_pblendd256' needs target feature avx2
blake2b.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:avx2-3 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-3 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-3 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-3 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx2-3 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_avx2_3_timingleaks':
blake2b.c: blake2b.c:38:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blake2b.c: 38 | const __m256i r16 = _mm256_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9,
blake2b.c: | ^~~
blake2b.c: In file included from blake2b.c:15:
blake2b.c: At top level:
blake2b.c: blake2.h:134:14: warning: 'blake2' defined but not used [-Wunused-function]
blake2b.c: 134 | static int blake2( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen )
blake2b.c: | ^~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
blake2b.c: from blake2b.c:12:
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_avx2_3_timingleaks':
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1296:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi64x': target specific option mismatch
blake2b.c: 1296 | _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: | ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:58:10: note: called from here
blake2b.c: 58 | ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1296:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi64x': target specific option mismatch
blake2b.c: 1296 | _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: | ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:57:10: note: called from here
blake2b.c: 57 | ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2-3 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-3 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-3 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx2-3 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
try.c: /usr/bin/ld: libcrypto_hash_blake2b.a(blake2b.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avxicc | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avxicc | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avxicc | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avxicc | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
blake2b-ref.c: blake2b-ref.c:68:19: warning: unused function 'blake2b_clear_lastblock' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_clear_lastblock( blake2b_state *S )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:86:19: warning: unused function 'blake2b_param_set_digest_length' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:92:19: warning: unused function 'blake2b_param_set_fanout' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:98:19: warning: unused function 'blake2b_param_set_max_depth' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:104:19: warning: unused function 'blake2b_param_set_leaf_length' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:110:19: warning: unused function 'blake2b_param_set_node_offset' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:116:19: warning: unused function 'blake2b_param_set_node_depth' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:122:19: warning: unused function 'blake2b_param_set_inner_length' [-Wunused-function]
blake2b-ref.c: static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length )
blake2b-ref.c: ^
blake2b-ref.c: blake2b-ref.c:128:19: warning: unused function 'blake2b_param_set_salt' [-Wunused-function]
blake2b-ref.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
blake2b.c: blake2b.c:15:2: error: "This code requires at least AVX."
blake2b.c: #error "This code requires at least AVX."
blake2b.c: ^
blake2b.c: 1 error generated.
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:ymm | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ymm | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ymm | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ymm | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ymm | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
blake2b.c: blake2b.c:15:2: error: #error "This code requires at least AVX."
blake2b.c: 15 | #error "This code requires at least AVX."
blake2b.c: | ^~~~~
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_ymm_timingleaks':
blake2b.c: blake2b.c:140:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blake2b.c: 140 | const __m256i m0 = _mm256_loadu_si256((__m256i*)(in + 00));
blake2b.c: | ^~
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:ymm | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:ymm | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:ymm | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:ymm | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Namespace violations
blake2b-ref.o blake2b T
blake2b-ref.o blake2b_final T
blake2b-ref.o blake2b_init T
blake2b-ref.o blake2b_init_key T
blake2b-ref.o blake2b_init_param T
blake2b-ref.o blake2b_update T
Number of similar (implementation,compiler) pairs: 9, namely:
Implementation | Compiler |
T:ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |