Implementation notes: amd64, scw1b63b1, crypto_hash/blake2b

Computer: scw1b63b1
Architecture: amd64
CPU ID: GenuineIntel-000506f1-0f8bfbff
SUPERCOP version: 20191017
Operation: crypto_hash
Primitive: blake2b
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
823214685 0 024849 784 736regsclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
823214674 0 023931 776 736regsclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
823414685 0 025673 784 736regsclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
825614685 0 024849 784 736regsclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
865212081 0 022323 800 808regsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
865212084 0 024508 808 808regsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
869614021 0 023307 776 736xmmclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
870610891 0 019967 784 776regsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
877414021 0 024209 784 736xmmclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
877814021 0 024209 784 736xmmclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
877814021 0 025033 784 736xmmclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
880413138 0 022223 784 776xmmgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
886615328 0 025587 800 808xmmgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
888215328 0 027756 808 808xmmgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
899215264 0 025323 800 808xmmgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
912613990 0 025073 784 736regsclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
95969514 0 022028 808 808refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
976816735 0 027825 784 736xmmclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
1009812022 0 022059 800 808regsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
102807858 0 018252 808 808refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
116167262 0 016439 784 776refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
131088066 0 018252 808 808refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
1475011909 0 023033 784 736refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
1477611829 0 022041 784 736refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
1477611829 0 022865 784 736refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
1477611829 0 022041 784 736refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017
152169753 0 019107 776 736refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121420191017

Test failure

Implementation: avxicc
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 27, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avxicc
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avxicc
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avxicc
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avxicc
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx/64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx/64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx/64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx/64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx/64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx/64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx/64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx/64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx/64
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx2/64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx2/64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx2/64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx2/64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/avx2/64
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/xop/64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/xop/64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/xop/64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/xop/64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE moon/xop/64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/xop/64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/xop/64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/xop/64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/xop/64

Compiler output

Implementation: avx2-1
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:37:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
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:39:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
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:56:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
blake2b.c: ...
blake2b.c: ROUND( 0 ); ^
blake2b.c: ./blake2b-round.h:76:3: note: expanded from macro 'ROUND'
blake2b.c: G2(ymm0,ymm1,ymm2,ymm3,b0); ^
blake2b.c: ./blake2b-round.h:48:10: note: expanded from macro 'G2'
blake2b.c: row1 = _mm256_add_epi64(_mm256_add_epi64(row1, b0), row2); ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-1
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-1
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-1
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-1

Compiler output

Implementation: avx2-1
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:37:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'sse4.2'
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:39:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'sse4.2'
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:56:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'sse4.2'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'sse4.2'
blake2b.c: ...
blake2b.c: ROUND( 0 ); ^
blake2b.c: ./blake2b-round.h:76:3: note: expanded from macro 'ROUND'
blake2b.c: G2(ymm0,ymm1,ymm2,ymm3,b0); ^
blake2b.c: ./blake2b-round.h:48:10: note: expanded from macro 'G2'
blake2b.c: row1 = _mm256_add_epi64(_mm256_add_epi64(row1, b0), row2); ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-1

Compiler output

Implementation: avx2-1
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: blake2b.c: In function ‘crypto_hash_blake2b_avx2_1’:
blake2b.c: blake2b.c:37:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
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: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:11:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:1270:1: error: inlining failed in call to always_inline ‘_mm256_set_epi64x’: target specific option mismatch
blake2b.c: _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:57:8: note: called from here
blake2b.c: ...
blake2b.c: )
blake2b.c: ~
blake2b.c: #else
blake2b.c: ~~~~~
blake2b.c: _mm256_set_epi64x(0x0000000000000000ULL, 0xFFFFFFFFFFFFFFFFULL, 0x0000000000000000ULL, ctr)
blake2b.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: #endif
blake2b.c: ~~~~~~
blake2b.c: );
blake2b.c: ~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-1
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-1
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-1
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-1

Compiler output

Implementation: avx2-2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
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:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
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:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
blake2b.c: ...
blake2b.c: LOAD_MSG_ ##r ##_1(b0); ^
blake2b.c: <scratch space>:37:1: note: expanded from here
blake2b.c: LOAD_MSG_0_1
blake2b.c: ^
blake2b.c: ./blake2b-load-avx2.h:8:6: note: expanded from macro 'LOAD_MSG_0_1'
blake2b.c: t1 = _mm256_unpacklo_epi64(m2, m3); ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-2

Compiler output

Implementation: avx2-2
Security model: unknown
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
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:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
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:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
blake2b.c: ...
blake2b.c: LOAD_MSG_ ##r ##_1(b0); ^
blake2b.c: <scratch space>:36:1: note: expanded from here
blake2b.c: LOAD_MSG_0_1
blake2b.c: ^
blake2b.c: ./blake2b-load-avx2.h:8:6: note: expanded from macro 'LOAD_MSG_0_1'
blake2b.c: t1 = _mm256_unpacklo_epi64(m2, m3); ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-2

Compiler output

Implementation: avx2-2
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'sse4.2'
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:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'sse4.2'
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:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'sse4.2'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'sse4.2'
blake2b.c: ...
blake2b.c: LOAD_MSG_ ##r ##_1(b0); ^
blake2b.c: <scratch space>:37:1: note: expanded from here
blake2b.c: LOAD_MSG_0_1
blake2b.c: ^
blake2b.c: ./blake2b-load-avx2.h:8:6: note: expanded from macro 'LOAD_MSG_0_1'
blake2b.c: t1 = _mm256_unpacklo_epi64(m2, m3); ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-2

Compiler output

Implementation: avx2-2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: blake2b.c: In function ‘crypto_hash_blake2b_avx2_2’:
blake2b.c: blake2b.c:38:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
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: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:1270:1: error: inlining failed in call to always_inline ‘_mm256_set_epi64x’: target specific option mismatch
blake2b.c: _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:58:8: note: called from here
blake2b.c: ...
blake2b.c: )
blake2b.c: ~
blake2b.c: #else
blake2b.c: ~~~~~
blake2b.c: _mm256_set_epi64x(0x0000000000000000ULL, 0xFFFFFFFFFFFFFFFFULL, 0x0000000000000000ULL, ctr)
blake2b.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: #endif
blake2b.c: ~~~~~~
blake2b.c: );
blake2b.c: ~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-2

Compiler output

Implementation: avx2-3
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
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:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
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:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
blake2b.c: ...
blake2b.c: G1(ymm0,ymm1,ymm2,ymm3,b0); ^
blake2b.c: ./blake2b-round.h:45:10: note: expanded from macro 'G1'
blake2b.c: row2 = _mm256_roti_epi64(row2, -24);
blake2b.c: ^
blake2b.c: ./blake2b-round.h:32:22: note: expanded from macro '_mm256_roti_epi64'
blake2b.c: : (-(c) == 24) ? _mm256_shuffle_epi8((x), r24) ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-3
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-3
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-3
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-3

Compiler output

Implementation: avx2-3
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.c: blake2b.c:38:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'sse4.2'
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:40:23: error: always_inline function '_mm256_setr_epi8' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'sse4.2'
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:57:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'sse4.2'
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: blake2b.c:58:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'sse4.2'
blake2b.c: ...
blake2b.c: G1(ymm0,ymm1,ymm2,ymm3,b0); ^
blake2b.c: ./blake2b-round.h:45:10: note: expanded from macro 'G1'
blake2b.c: row2 = _mm256_roti_epi64(row2, -24);
blake2b.c: ^
blake2b.c: ./blake2b-round.h:32:22: note: expanded from macro '_mm256_roti_epi64'
blake2b.c: : (-(c) == 24) ? _mm256_shuffle_epi8((x), r24) ^
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2-3

Compiler output

Implementation: avx2-3
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: blake2b.c: In function ‘crypto_hash_blake2b_avx2_3’:
blake2b.c: blake2b.c:38:17: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
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: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:1270:1: error: inlining failed in call to always_inline ‘_mm256_set_epi64x’: target specific option mismatch
blake2b.c: _mm256_set_epi64x (long long __A, long long __B, long long __C,
blake2b.c: ^~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:58:8: note: called from here
blake2b.c: ...
blake2b.c: ymm1 = _mm256_xor_si256(ymm1, ymm3);
blake2b.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:43:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline ‘_mm256_xor_si256’: target specific option mismatch
blake2b.c: _mm256_xor_si256 (__m256i __A, __m256i __B)
blake2b.c: ^~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:214:10: note: called from here
blake2b.c: ymm0 = _mm256_xor_si256(ymm0, ymm2);
blake2b.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-3
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-3
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-3
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2-3

Compiler output

Implementation: avxicc
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake2b.s: blake2b.s:19:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm2, XMMWORD PTR .L_2il0floatpacket.13[rip]
blake2b.s: ^
blake2b.s: blake2b.s:21:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm3, XMMWORD PTR .L_2il0floatpacket.14[rip]
blake2b.s: ^
blake2b.s: blake2b.s:23:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm4, XMMWORD PTR .L_2il0floatpacket.15[rip]
blake2b.s: ^
blake2b.s: blake2b.s:25:59: error: unexpected token in argument list
blake2b.s: ...
blake2b.s: ^
blake2b.s: blake2b.s:1076:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm4, XMMWORD PTR .L_2il0floatpacket.15[rip]
blake2b.s: ^
blake2b.s: blake2b.s:1224:66: error: unexpected token in argument list
blake2b.s: vpaddq xmm11, xmm13, XMMWORD PTR .L_2il0floatpacket.14[rip]
blake2b.s: ^
blake2b.s: blake2b.s:1409:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm0, XMMWORD PTR .L_2il0floatpacket.12[rip]
blake2b.s: ^

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avxicc
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avxicc
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avxicc
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avxicc
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avxicc

Compiler output

Implementation: moon/avx2/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_hash_blake2b.a(blake2b.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC
try.c: /usr/bin/ld: final link failed: Nonrepresentable section on output
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx2/64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx2/64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx2/64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE moon/avx2/64

Compiler output

Implementation: ymm
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: blake2b.c:203:10: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type '__m256i' (vector of 4 'long long' values)
blake2b.c: m0 = _mm256_loadu_si256((__m256i*)(in + 00));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:204:10: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type '__m256i' (vector of 4 'long long' values)
blake2b.c: m1 = _mm256_loadu_si256((__m256i*)(in + 32));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:205:10: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type '__m256i' (vector of 4 'long long' values)
blake2b.c: ...
blake2b.c: LOAD_MSG_0_2
blake2b.c: ^
blake2b.c: ./blake2b-load-avx.h:14:6: note: expanded from macro 'LOAD_MSG_0_2'
blake2b.c: t1 = _mm256_extractf128_si256(m1, 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/avxintrin.h:1212:13: note: expanded from macro '_mm256_extractf128_si256'
blake2b.c: (__v4di)(__m256i)(V), ^~~~~~~~~~~~
blake2b.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
blake2b.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ymm
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ymm
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ymm
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ymm
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ymm

Compiler output

Implementation: ymm
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: blake2b.c:15:2: error: #error "This code requires at least AVX."
blake2b.c: #error "This code requires at least AVX."
blake2b.c: ^~~~~
blake2b.c: blake2b.c: In function ‘crypto_hash_blake2b_ymm’:
blake2b.c: blake2b.c:203:10: error: incompatible types when assigning to type ‘__m128i {aka __vector(2) long long int}’ from type ‘__m256i {aka __vector(4) long long int}’
blake2b.c: m0 = _mm256_loadu_si256((__m256i*)(in + 00));
blake2b.c: ^
blake2b.c: blake2b.c:204:10: error: incompatible types when assigning to type ‘__m128i {aka __vector(2) long long int}’ from type ‘__m256i {aka __vector(4) long long int}’
blake2b.c: m1 = _mm256_loadu_si256((__m256i*)(in + 32));
blake2b.c: ^
blake2b.c: ...
blake2b.c: ROUND(11);
blake2b.c: ^~~~~
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:11:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:497:1: note: expected ‘__m256i {aka __vector(4) long long int}’ but argument is of type ‘__m128i {aka __vector(2) long long int}’
blake2b.c: _mm256_extractf128_si256 (__m256i __X, const int __N)
blake2b.c: ^~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:140:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
blake2b.c: const __m256i m0 = _mm256_loadu_si256((__m256i*)(in + 00));
blake2b.c: ^~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ymm
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ymm
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ymm
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ymm

Namespace violations

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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 (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref