Implementation notes: amd64, h4atom, crypto_hash/blake2b

Computer: h4atom
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake2b
TimeImplementationCompilerBenchmark dateSUPERCOP version
10768regsclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
11200regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
11200regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
11784regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
14064refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
15160refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
17200regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
21488refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
24968refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
29560refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
39664xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
42424xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
42688xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
43616xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
43616xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806

Test failure

Implementation: crypto_hash/blake2b/moon/avx/64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111

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

Compiler output

Implementation: crypto_hash/blake2b/moon/neon/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:3:1: error: unknown directive
blake2b.S: .arch armv7-a
blake2b.S: ^
blake2b.S: blake2b.S:4:1: error: unknown directive
blake2b.S: .fpu neon
blake2b.S: ^
blake2b.S: blake2b.S:9:10: error: unexpected token in argument list
blake2b.S: vstmdb sp!, {q4-q7}
blake2b.S: ^
blake2b.S: blake2b.S:10:9: error: unexpected token in argument list
blake2b.S: stmfd sp!, {r4-r12, r14}
blake2b.S: ^
blake2b.S: blake2b.S:11:1: error: unknown use of instruction mnemonic without a size suffix
blake2b.S: mov r12, sp
blake2b.S: ^
blake2b.S: blake2b.S:12:13: error: unknown token in expression
blake2b.S: sub sp, sp, #320
blake2b.S: ^
blake2b.S: blake2b.S:13:13: error: unknown token in expression
blake2b.S: and sp, sp, #0xffffffe0
blake2b.S: ^
blake2b.S: blake2b.S:14:13: error: expected ']' in brackets expression
blake2b.S: str r12, [sp, #288]
blake2b.S: ^
blake2b.S: blake2b.S:15:13: error: unknown token in expression
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/neon/32

Compiler output

Implementation: crypto_hash/blake2b/moon/armv6/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:5:1: error: unknown directive
blake2b.S: .arch armv5
blake2b.S: ^
blake2b.S: blake2b.S:34:9: error: unexpected token in argument list
blake2b.S: stmfd sp!, {r4-r12, r14}
blake2b.S: ^
blake2b.S: blake2b.S:35:13: error: unknown token in expression
blake2b.S: sub sp, sp, #384
blake2b.S: ^
blake2b.S: blake2b.S:36:9: error: unknown token in expression
blake2b.S: mov r4, #128
blake2b.S: ^
blake2b.S: blake2b.S:37:9: error: unknown token in expression
blake2b.S: cmp r2, #128
blake2b.S: ^
blake2b.S: blake2b.S:38:1: error: invalid instruction mnemonic 'bhs'
blake2b.S: bhs blake2b_blocks_armv6_use128
blake2b.S: ^
blake2b.S: blake2b.S:39:1: error: unknown use of instruction mnemonic without a size suffix
blake2b.S: mov r4, r2
blake2b.S: ^
blake2b.S: blake2b.S:41:1: error: unknown use of instruction mnemonic without a size suffix
blake2b.S: mov r14, r1
blake2b.S: ^
blake2b.S: blake2b.S:42:12: error: expected ']' in brackets expression
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/armv6/32

Compiler output

Implementation: crypto_hash/blake2b/moon/avx2/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebp
blake2b.S: ^
blake2b.S: blake2b.S:9:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %esi
blake2b.S: ^
blake2b.S: blake2b.S:10:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %edi
blake2b.S: ^
blake2b.S: blake2b.S:11:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebx
blake2b.S: ^
blake2b.S: gt;:7:32: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants(%rip), %ecx
blake2b.S: ^~~~
blake2b.S: blake2b.S:14:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants, %ecx
blake2b.S: ^
blake2b.S: gt;:7:38: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants_ssse3(%rip), %eax
blake2b.S: ^~~~
blake2b.S: blake2b.S:15:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants_ssse3, %eax
blake2b.S: ^
blake2b.S: blake2b.S:248:1: error: instruction requires: Not 64-bit mode
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/avx2/32

Compiler output

Implementation: crypto_hash/blake2b/moon/sse2/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebp
blake2b.S: ^
blake2b.S: blake2b.S:9:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %esi
blake2b.S: ^
blake2b.S: blake2b.S:10:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %edi
blake2b.S: ^
blake2b.S: blake2b.S:11:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebx
blake2b.S: ^
blake2b.S: gt;:7:32: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants(%rip), %esi
blake2b.S: ^~~~
blake2b.S: blake2b.S:16:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants, %esi
blake2b.S: ^
blake2b.S: blake2b.S:1966:1: error: instruction requires: Not 64-bit mode
blake2b.S: popl %ebx
blake2b.S: ^
blake2b.S: blake2b.S:1967:1: error: instruction requires: Not 64-bit mode
blake2b.S: popl %edi
blake2b.S: ^
blake2b.S: blake2b.S:1968:1: error: instruction requires: Not 64-bit mode
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/sse2/32

Compiler output

Implementation: crypto_hash/blake2b/moon/ssse3/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebp
blake2b.S: ^
blake2b.S: blake2b.S:9:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %esi
blake2b.S: ^
blake2b.S: blake2b.S:10:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %edi
blake2b.S: ^
blake2b.S: blake2b.S:11:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebx
blake2b.S: ^
blake2b.S: gt;:7:38: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants_ssse3(%rip), %ebx
blake2b.S: ^~~~
blake2b.S: blake2b.S:16:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants_ssse3, %ebx
blake2b.S: ^
blake2b.S: gt;:7:32: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants(%rip), %ebx
blake2b.S: ^~~~
blake2b.S: blake2b.S:19:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants, %ebx
blake2b.S: ^
blake2b.S: blake2b.S:1566:1: error: instruction requires: Not 64-bit mode
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/ssse3/32

Compiler output

Implementation: crypto_hash/blake2b/moon/avx/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebp
blake2b.S: ^
blake2b.S: blake2b.S:9:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %esi
blake2b.S: ^
blake2b.S: blake2b.S:10:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %edi
blake2b.S: ^
blake2b.S: blake2b.S:11:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebx
blake2b.S: ^
blake2b.S: gt;:7:38: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants_ssse3(%rip), %ecx
blake2b.S: ^~~~
blake2b.S: blake2b.S:16:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants_ssse3, %ecx
blake2b.S: ^
blake2b.S: gt;:7:32: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants(%rip), %ecx
blake2b.S: ^~~~
blake2b.S: blake2b.S:19:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants, %ecx
blake2b.S: ^
blake2b.S: blake2b.S:928:1: error: instruction requires: Not 64-bit mode
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/avx/32

Compiler output

Implementation: crypto_hash/blake2b/moon/xop/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:8:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl -4(%ecx)
blake2b.S: ^
blake2b.S: blake2b.S:9:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebp
blake2b.S: ^
blake2b.S: blake2b.S:11:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %edi
blake2b.S: ^
blake2b.S: blake2b.S:12:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %esi
blake2b.S: ^
blake2b.S: blake2b.S:13:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ebx
blake2b.S: ^
blake2b.S: gt;:7:32: error: invalid operand for instruction
blake2b.S: leaq blake2b_constants(%rip), %ebx
blake2b.S: ^~~~
blake2b.S: blake2b.S:14:1: note: while in macro instantiation
blake2b.S: LOAD_VAR_PIC blake2b_constants, %ebx
blake2b.S: ^
blake2b.S: blake2b.S:15:1: error: instruction requires: Not 64-bit mode
blake2b.S: pushl %ecx
blake2b.S: ^
blake2b.S: blake2b.S:287:1: error: instruction requires: Not 64-bit mode
blake2b.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments moon/xop/32

Compiler output

Implementation: crypto_hash/blake2b/ymm
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
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: m2 = _mm256_loadu_si256((__m256i*)(in + 64));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:206:10: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type '__m256i' (vector of 4 'long long' values)
blake2b.c: m3 = _mm256_loadu_si256((__m256i*)(in + 96));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:225: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*)(buffer + 00));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:226: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*)(buffer + 32));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:227:10: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type '__m256i' (vector of 4 'long long' values)
blake2b.c: m2 = _mm256_loadu_si256((__m256i*)(buffer + 64));
blake2b.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake2b.c: blake2b.c:228:10: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type '__m256i' (vector of 4 'long long' values)
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-1
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
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: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: blake2b.c:95:12: 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: ymm2 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6a09e667f3bcc908ULL);
blake2b.c: ^
blake2b.c: blake2b.c:96:12: error: always_inline function '_mm256_xor_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
blake2b.c: ymm3 = _mm256_xor_si256
blake2b.c: ^
blake2b.c: blake2b.c:98:14: 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: _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL),
blake2b.c: ^
blake2b.c: blake2b.c:100:33: error: always_inline function '_mm256_castsi128_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
blake2b.c: _mm256_blend_epi32(_mm256_castsi128_si256(_mm_cvtsi64_si128(ctr)),
blake2b.c: ^
blake2b.c: blake2b.c:101:33: error: always_inline function '_mm256_setzero_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_1' that is compiled without support for 'xsave'
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
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: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: blake2b.c:64:24: error: always_inline function '_mm256_broadcastsi128_si256' 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 m0 = _mm256_broadcastsi128_si256(LOADU128( in + 00 ));
blake2b.c: ^
blake2b.c: blake2b.c:65:24: error: always_inline function '_mm256_broadcastsi128_si256' 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 m1 = _mm256_broadcastsi128_si256(LOADU128( in + 16 ));
blake2b.c: ^
blake2b.c: blake2b.c:66:24: error: always_inline function '_mm256_broadcastsi128_si256' 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 m2 = _mm256_broadcastsi128_si256(LOADU128( in + 32 ));
blake2b.c: ^
blake2b.c: blake2b.c:67:24: error: always_inline function '_mm256_broadcastsi128_si256' 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 m3 = _mm256_broadcastsi128_si256(LOADU128( in + 48 ));
blake2b.c: ^
blake2b.c: blake2b.c:68:24: error: always_inline function '_mm256_broadcastsi128_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_2' that is compiled without support for 'xsave'
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-3
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
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: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: blake2b.c:96:12: 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: ymm2 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6a09e667f3bcc908ULL);
blake2b.c: ^
blake2b.c: blake2b.c:97:12: error: always_inline function '_mm256_xor_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
blake2b.c: ymm3 = _mm256_xor_si256
blake2b.c: ^
blake2b.c: blake2b.c:99:14: 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: _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL),
blake2b.c: ^
blake2b.c: blake2b.c:101:33: error: always_inline function '_mm256_castsi128_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
blake2b.c: _mm256_blend_epi32(_mm256_castsi128_si256(_mm_cvtsi64_si128(ctr)),
blake2b.c: ^
blake2b.c: blake2b.c:102:33: error: always_inline function '_mm256_setzero_si256' requires target feature 'xsave', but would be inlined into function 'crypto_hash_blake2b_avx2_3' that is compiled without support for 'xsave'
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avxicc
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
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: vmovdqu xmm11, XMMWORD PTR .L_2il0floatpacket.16[rip]
blake2b.s: ^
blake2b.s: blake2b.s:26:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm1, XMMWORD PTR .L_2il0floatpacket.11[rip]
blake2b.s: ^
blake2b.s: blake2b.s:27:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm0, XMMWORD PTR .L_2il0floatpacket.12[rip]
blake2b.s: ^
blake2b.s: blake2b.s:32:58: error: unexpected token in argument list
blake2b.s: vmovdqu xmm5, XMMWORD PTR .L_2il0floatpacket.17[rip]
blake2b.s: ^
blake2b.s: blake2b.s:65:64: error: unexpected token in argument list
blake2b.s: vpxor xmm8, xmm4, XMMWORD PTR .L_2il0floatpacket.15[rip]
blake2b.s: ^
blake2b.s: blake2b.s:68:65: error: unexpected token in argument list
blake2b.s: ...

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

Compiler output

Implementation: crypto_hash/blake2b/moon/neon/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:3: Error: no such architecture: `armv7'
blake2b.S: blake2b.S:3: Error: junk at end of line, first unrecognized character is `-'
blake2b.S: blake2b.S:4: Error: unknown pseudo-op: `.fpu'
blake2b.S: blake2b.S:9: Error: no such instruction: `vstmdb sp!,{q4-q7}'
blake2b.S: blake2b.S:10: Error: no such instruction: `stmfd sp!,{r4-r12,r14}'
blake2b.S: blake2b.S:11: Error: too many memory references for `mov'
blake2b.S: blake2b.S:12: Error: too many memory references for `sub'
blake2b.S: blake2b.S:13: Error: too many memory references for `and'
blake2b.S: blake2b.S:14: Error: invalid char '[' beginning operand 2 `[sp'
blake2b.S: blake2b.S:15: Error: too many memory references for `sub'
blake2b.S: blake2b.S:16: Error: expecting operand after ','; got nothing
blake2b.S: blake2b.S:17: Error: expecting operand after ','; got nothing
blake2b.S: blake2b.S:18: Error: no such instruction: `bhs blake2b_blocks_neon_use128'
blake2b.S: blake2b.S:19: Error: too many memory references for `mov'
blake2b.S: blake2b.S:21: Error: no such instruction: `ldr r6,[r0,'
blake2b.S: blake2b.S:22: Error: no such instruction: `ldr r7,[r0,'
blake2b.S: blake2b.S:23: Error: too many memory references for `and'
blake2b.S: blake2b.S:24: Error: no such instruction: `beq blake2b_blocks_neon_nocopymessage'
blake2b.S: blake2b.S:25: Error: expecting operand after ','; got nothing
blake2b.S: blake2b.S:26: Error: no such instruction: `beq blake2b_blocks_neon_nocopymessage'
blake2b.S: blake2b.S:27: Error: no such instruction: `veor q0,q0,q0'
blake2b.S: blake2b.S:28: Error: no such instruction: `veor q1,q1,q1'
blake2b.S: blake2b.S:29: Error: no such instruction: `vst1.64 {q0,q1},[sp,:256]!'
blake2b.S: blake2b.S:30: Error: no such instruction: `vst1.64 {q0,q1},[sp,:256]!'
blake2b.S: ...

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

Compiler output

Implementation: crypto_hash/blake2b/moon/armv6/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:5: Error: no such architecture: `armv5'
blake2b.S: blake2b.S:34: Error: no such instruction: `stmfd sp!,{r4-r12,r14}'
blake2b.S: blake2b.S:35: Error: too many memory references for `sub'
blake2b.S: blake2b.S:36: Error: expecting operand after ','; got nothing
blake2b.S: blake2b.S:37: Error: expecting operand after ','; got nothing
blake2b.S: blake2b.S:38: Error: no such instruction: `bhs blake2b_blocks_armv6_use128'
blake2b.S: blake2b.S:39: Error: too many memory references for `mov'
blake2b.S: blake2b.S:41: Error: too many memory references for `mov'
blake2b.S: blake2b.S:42: Error: invalid char '[' beginning operand 2 `[sp'
blake2b.S: blake2b.S:43: Error: invalid char '[' beginning operand 2 `[sp'
blake2b.S: blake2b.S:44: Error: invalid char '[' beginning operand 2 `[sp'
blake2b.S: blake2b.S:45: Error: invalid char '[' beginning operand 2 `[sp'
blake2b.S: blake2b.S:46: Error: no such instruction: `ldr r4,[r0,'
blake2b.S: blake2b.S:47: Error: no such instruction: `ldr r5,[r0,'
blake2b.S: blake2b.S:48: Error: too many memory references for `and'
blake2b.S: blake2b.S:49: Error: no such instruction: `beq blake2b_blocks_armv6_nocopymessage'
blake2b.S: blake2b.S:50: Error: expecting operand after ','; got nothing
blake2b.S: blake2b.S:51: Error: no such instruction: `beq blake2b_blocks_armv6_nocopymessage'
blake2b.S: blake2b.S:52: Error: no such instruction: `eor r4,r4,r4'
blake2b.S: blake2b.S:53: Error: no such instruction: `eor r5,r5,r5'
blake2b.S: blake2b.S:54: Error: no such instruction: `eor r6,r6,r6'
blake2b.S: blake2b.S:55: Error: no such instruction: `eor r7,r7,r7'
blake2b.S: blake2b.S:56: Error: no such instruction: `eor r8,r8,r8'
blake2b.S: blake2b.S:57: Error: no such instruction: `eor r9,r9,r9'
blake2b.S: ...

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

Compiler output

Implementation: crypto_hash/blake2b/moon/avx2/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:9: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:10: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:11: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:14: Error: incorrect register `%ecx' used with `q' suffix
blake2b.S: blake2b.S:15: Error: incorrect register `%eax' used with `q' suffix
blake2b.S: blake2b.S:248: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:249: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:250: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:252: Error: invalid instruction suffix for `pop'

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

Compiler output

Implementation: crypto_hash/blake2b/moon/ssse3/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:9: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:10: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:11: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:16: Error: incorrect register `%ebx' used with `q' suffix
blake2b.S: blake2b.S:19: Error: incorrect register `%ebx' used with `q' suffix
blake2b.S: blake2b.S:1566: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:1567: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:1568: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:1570: Error: invalid instruction suffix for `pop'

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

Compiler output

Implementation: crypto_hash/blake2b/moon/avx/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:9: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:10: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:11: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:16: Error: incorrect register `%ecx' used with `q' suffix
blake2b.S: blake2b.S:19: Error: incorrect register `%ecx' used with `q' suffix
blake2b.S: blake2b.S:927: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:928: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:929: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:931: Error: invalid instruction suffix for `pop'

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

Compiler output

Implementation: crypto_hash/blake2b/moon/sse2/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:9: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:10: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:11: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:16: Error: incorrect register `%esi' used with `q' suffix
blake2b.S: blake2b.S:1966: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:1967: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:1968: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:1970: Error: invalid instruction suffix for `pop'

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

Compiler output

Implementation: crypto_hash/blake2b/moon/xop/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:8: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:9: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:11: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:12: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:13: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:14: Error: incorrect register `%ebx' used with `q' suffix
blake2b.S: blake2b.S:15: Error: invalid instruction suffix for `push'
blake2b.S: blake2b.S:287: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:288: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:289: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:290: Error: invalid instruction suffix for `pop'
blake2b.S: blake2b.S:291: Error: invalid instruction suffix for `pop'

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-1
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:11:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/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: error: called from here
blake2b.c: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:11:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/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:56:8: error: called from here
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:11:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1357:1: error: inlining failed in call to always_inline '_mm256_setr_epi8': target specific option mismatch
blake2b.c: _mm256_setr_epi8 (char __q31, char __q30, char __q29, char __q28,
blake2b.c: ^
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/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: error: called from here
blake2b.c: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/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: error: called from here
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1357:1: error: inlining failed in call to always_inline '_mm256_setr_epi8': target specific option mismatch
blake2b.c: _mm256_setr_epi8 (char __q31, char __q30, char __q29, char __q28,
blake2b.c: ^
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/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: error: called from here
blake2b.c: ymm1 = _mm256_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL, 0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
blake2b.c: ^
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/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: error: called from here
blake2b.c: ymm0 = _mm256_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL, 0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^
blake2b.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:41:0,
blake2b.c: from blake2b.c:12:
blake2b.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avxintrin.h:1357:1: error: inlining failed in call to always_inline '_mm256_setr_epi8': target specific option mismatch
blake2b.c: _mm256_setr_epi8 (char __q31, char __q30, char __q29, char __q28,
blake2b.c: ^
blake2b.c: ...

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

Compiler output

Implementation: crypto_hash/blake2b/ymm
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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:205: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: m2 = _mm256_loadu_si256((__m256i*)(in + 64));
blake2b.c: ^
blake2b.c: blake2b.c:206: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: m3 = _mm256_loadu_si256((__m256i*)(in + 96));
blake2b.c: ^
blake2b.c: blake2b.c:225: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*)(buffer + 00));
blake2b.c: ^
blake2b.c: blake2b.c:226: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*)(buffer + 32));
blake2b.c: ^
blake2b.c: blake2b.c:227: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: m2 = _mm256_loadu_si256((__m256i*)(buffer + 64));
blake2b.c: ^
blake2b.c: ...

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