Implementation notes: x86, thoth, crypto_hash/blake2b

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake2b
TimeImplementationCompilerBenchmark dateSUPERCOP version
36540regsclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
38593refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
61167refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
62831refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
67030regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
70177refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
70491regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
70578regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
71670regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
71796refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724

Test failure

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

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

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/64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:7: error: register %rbp is only available in 64-bit mode
blake2b.S: pushq %rbp
blake2b.S: ^~~~
blake2b.S: blake2b.S:7:12: error: register %r10d is only available in 64-bit mode
blake2b.S: movl $128, %r10d
blake2b.S: ^~~~~
blake2b.S: blake2b.S:8:6: error: register %rsp is only available in 64-bit mode
blake2b.S: movq %rsp, %rbp
blake2b.S: ^~~~
blake2b.S: blake2b.S:9:7: error: register %r13 is only available in 64-bit mode
blake2b.S: pushq %r13
blake2b.S: ^~~~
blake2b.S: blake2b.S:10:7: error: register %r12 is only available in 64-bit mode
blake2b.S: pushq %r12
blake2b.S: ^~~~
blake2b.S: blake2b.S:11:7: error: register %rbx is only available in 64-bit mode
blake2b.S: pushq %rbx
blake2b.S: ^~~~
blake2b.S: blake2b.S:12:12: error: register %rsp is only available in 64-bit mode
blake2b.S: andq $-64, %rsp
blake2b.S: ^~~~
blake2b.S: blake2b.S:13:11: error: register %rsp is only available in 64-bit mode
blake2b.S: subq $72, %rsp
blake2b.S: ^~~~
blake2b.S: blake2b.S:14:12: error: register %rdx is only available in 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/64

Compiler output

Implementation: crypto_hash/blake2b/moon/avx/64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:7: error: register %rbp is only available in 64-bit mode
blake2b.S: pushq %rbp
blake2b.S: ^~~~
blake2b.S: blake2b.S:7:6: error: register %rsp is only available in 64-bit mode
blake2b.S: movq %rsp, %rbp
blake2b.S: ^~~~
blake2b.S: blake2b.S:8:12: error: register %rsp is only available in 64-bit mode
blake2b.S: andq $-64, %rsp
blake2b.S: ^~~~
blake2b.S: blake2b.S:9:7: error: register %r12 is only available in 64-bit mode
blake2b.S: pushq %r12
blake2b.S: ^~~~
blake2b.S: blake2b.S:10:7: error: register %r13 is only available in 64-bit mode
blake2b.S: pushq %r13
blake2b.S: ^~~~
blake2b.S: blake2b.S:11:7: error: register %r14 is only available in 64-bit mode
blake2b.S: pushq %r14
blake2b.S: ^~~~
blake2b.S: blake2b.S:12:7: error: register %r15 is only available in 64-bit mode
blake2b.S: pushq %r15
blake2b.S: ^~~~
blake2b.S: blake2b.S:13:7: error: register %rbx is only available in 64-bit mode
blake2b.S: pushq %rbx
blake2b.S: ^~~~
blake2b.S: blake2b.S:14:12: error: register %rsp is only available in 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/64

Compiler output

Implementation: crypto_hash/blake2b/moon/xop/64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.S: blake2b.S:6:7: error: register %rbp is only available in 64-bit mode
blake2b.S: pushq %rbp
blake2b.S: ^~~~
blake2b.S: blake2b.S:7:7: error: register %rbx is only available in 64-bit mode
blake2b.S: pushq %rbx
blake2b.S: ^~~~
blake2b.S: blake2b.S:8:7: error: register %r12 is only available in 64-bit mode
blake2b.S: pushq %r12
blake2b.S: ^~~~
blake2b.S: blake2b.S:9:12: error: register %r10d is only available in 64-bit mode
blake2b.S: movl $128, %r10d
blake2b.S: ^~~~~
blake2b.S: blake2b.S:10:6: error: register %rsp is only available in 64-bit mode
blake2b.S: movq %rsp, %rbp
blake2b.S: ^~~~
blake2b.S: blake2b.S:11:12: error: register %rsp is only available in 64-bit mode
blake2b.S: andq $-64, %rsp
blake2b.S: ^~~~
blake2b.S: blake2b.S:12:12: error: register %rsp is only available in 64-bit mode
blake2b.S: subq $128, %rsp
blake2b.S: ^~~~
blake2b.S: blake2b.S:13:12: error: register %rdx is only available in 64-bit mode
blake2b.S: cmpq $128, %rdx
blake2b.S: ^~~~
blake2b.S: blake2b.S:14:8: error: register %rdx is only available in 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/64

Compiler output

Implementation: crypto_hash/blake2b/avx2-1
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.c: In file included from blake2b.c:13:
blake2b.c: ./blake2-config.h:68:2: error: "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
blake2b.c: 1 error generated.

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: In file included from blake2b.c:14:
blake2b.c: ./blake2-config.h:68:2: error: "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
blake2b.c: 1 error generated.

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

Compiler output

Implementation: crypto_hash/blake2b/xmm
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.c: In file included from blake2b.c:6:
blake2b.c: ./blake2-config.h:68:2: error: "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
blake2b.c: 1 error generated.

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

Compiler output

Implementation: crypto_hash/blake2b/ymm
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.c: In file included from blake2b.c:6:
blake2b.c: ./blake2-config.h:68:2: error: "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
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: ...

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/avxicc
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
blake2b.s: blake2b.s:14:19: error: register %rsp is only available in 64-bit mode
blake2b.s: sub rsp, 552
blake2b.s: ^~~
blake2b.s: blake2b.s:14:19: error: ambiguous operand size for instruction 'sub'
blake2b.s: sub rsp, 552
blake2b.s: ^
blake2b.s: blake2b.s:16:19: error: register %r11d is only available in 64-bit mode
blake2b.s: xor r11d, r11d
blake2b.s: ^~~~
blake2b.s: blake2b.s:16:25: error: register %r11d is only available in 64-bit mode
blake2b.s: xor r11d, r11d
blake2b.s: ^~~~
blake2b.s: blake2b.s:16:9: error: invalid operand for instruction
blake2b.s: xor r11d, r11d
blake2b.s: ^
blake2b.s: blake2b.s:18:19: error: register %r9 is only available in 64-bit mode
blake2b.s: mov r9, rsi
blake2b.s: ^~
blake2b.s: blake2b.s:18:23: error: register %rsi is only available in 64-bit mode
blake2b.s: mov r9, rsi
blake2b.s: ^~~
blake2b.s: blake2b.s:18:9: error: invalid operand for instruction
blake2b.s: mov r9, rsi
blake2b.s: ^
blake2b.s: blake2b.s:19:58: 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/sse2/32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: crypto_hash_blake2b.a(blake2b.o): In function `_blake2b_blocks_sse2':
try.c: (.text+0x...): undefined reference to `blake2b_constants'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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/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/64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: bad register name `%rbp'
blake2b.S: blake2b.S:7: Error: bad register name `%r10d'
blake2b.S: blake2b.S:8: Error: bad register name `%rsp'
blake2b.S: blake2b.S:9: Error: bad register name `%r13'
blake2b.S: blake2b.S:10: Error: bad register name `%r12'
blake2b.S: blake2b.S:11: Error: bad register name `%rbx'
blake2b.S: blake2b.S:12: Error: bad register name `%rsp'
blake2b.S: blake2b.S:13: Error: bad register name `%rsp'
blake2b.S: blake2b.S:14: Error: bad register name `%rdx'
blake2b.S: blake2b.S:15: Error: bad register name `%rdx'
blake2b.S: blake2b.S:16: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:17: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:18: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:19: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:20: Error: bad register name `%rax'
blake2b.S: blake2b.S:21: Error: bad register name `%rax'
blake2b.S: blake2b.S:23: Error: bad register name `%rdx'
blake2b.S: blake2b.S:27: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:28: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:29: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:30: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:31: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:33: Error: bad register name `%rsi)'
blake2b.S: blake2b.S:34: Error: bad register name `%rsp)'
blake2b.S: ...

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

Compiler output

Implementation: crypto_hash/blake2b/moon/xop/64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: bad register name `%rbp'
blake2b.S: blake2b.S:7: Error: bad register name `%rbx'
blake2b.S: blake2b.S:8: Error: bad register name `%r12'
blake2b.S: blake2b.S:9: Error: bad register name `%r10d'
blake2b.S: blake2b.S:10: Error: bad register name `%rsp'
blake2b.S: blake2b.S:11: Error: bad register name `%rsp'
blake2b.S: blake2b.S:12: Error: bad register name `%rsp'
blake2b.S: blake2b.S:13: Error: bad register name `%rdx'
blake2b.S: blake2b.S:14: Error: bad register name `%rdx'
blake2b.S: blake2b.S:15: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:16: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:17: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:18: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:19: Error: bad register name `%rbx'
blake2b.S: blake2b.S:19: Error: bad register name `%rbx)'
blake2b.S: blake2b.S:20: Error: bad register name `%rbx)'
blake2b.S: blake2b.S:22: Error: bad register name `%rdx'
blake2b.S: blake2b.S:26: Error: bad register name `%rsi)'
blake2b.S: blake2b.S:27: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:28: Error: bad register name `%rsi'
blake2b.S: blake2b.S:29: Error: bad register name `%rax'
blake2b.S: blake2b.S:30: Error: bad register name `%rsp)'
blake2b.S: blake2b.S:31: Error: bad register name `%rsi)'
blake2b.S: blake2b.S:32: Error: bad register name `%rsp)'
blake2b.S: ...

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

Compiler output

Implementation: crypto_hash/blake2b/moon/avx/64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.S: blake2b.S: Assembler messages:
blake2b.S: blake2b.S:6: Error: bad register name `%rbp'
blake2b.S: blake2b.S:7: Error: bad register name `%rsp'
blake2b.S: blake2b.S:8: Error: bad register name `%rsp'
blake2b.S: blake2b.S:9: Error: bad register name `%r12'
blake2b.S: blake2b.S:10: Error: bad register name `%r13'
blake2b.S: blake2b.S:11: Error: bad register name `%r14'
blake2b.S: blake2b.S:12: Error: bad register name `%r15'
blake2b.S: blake2b.S:13: Error: bad register name `%rbx'
blake2b.S: blake2b.S:14: Error: bad register name `%rsp'
blake2b.S: blake2b.S:15: Error: bad register name `%r9'
blake2b.S: blake2b.S:15: Error: bad register name `%r9)'
blake2b.S: blake2b.S:16: Error: bad register name `%rax'
blake2b.S: blake2b.S:16: Error: bad register name `%rax)'
blake2b.S: blake2b.S:17: Error: bad register name `%rax)'
blake2b.S: blake2b.S:18: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:19: Error: bad register name `%rdx'
blake2b.S: blake2b.S:20: Error: bad register name `%r9)'
blake2b.S: blake2b.S:21: Error: bad register name `%r9d'
blake2b.S: blake2b.S:22: Error: bad register name `%rax)'
blake2b.S: blake2b.S:23: Error: bad register name `%rdx'
blake2b.S: blake2b.S:24: Error: bad register name `%r8)'
blake2b.S: blake2b.S:25: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:26: Error: bad register name `%rdi)'
blake2b.S: blake2b.S:27: Error: bad register name `%rdi)'
blake2b.S: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avx2-1
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.c: In file included from blake2b.c:13:0:
blake2b.c: blake2-config.h:68:2: error: #error "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
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 blake2b.c:15:0:
blake2b.c: blake2b-round.h:18:23: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
blake2b.c: #define STORE128(p,r) _mm_store_si128((__m128i *)(p), r)
blake2b.c: ^
blake2b.c: blake2b.c:155:26: note: in expansion of macro 'STORE128'
blake2b.c: if( inlen & 16 ) { STORE128( p + 00, LOADU128( in + 00 ) ); in += 16; p += 16; }
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: In file included from blake2b.c:14:0:
blake2b.c: blake2-config.h:68:2: error: #error "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
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: blake2b.c:64:24: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
blake2b.c: const __m256i m0 = _mm256_broadcastsi128_si256(LOADU128( in + 00 ));
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: In file included from blake2b.c:14:0:
blake2b.c: blake2-config.h:68:2: error: #error "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
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 blake2b.c:16:0:
blake2b.c: blake2b-round.h:87:10: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
blake2b.c: b0 = _mm256_i32gather_epi64((void *)msg, LOAD128(&indices[16*i + 0]), 8); \
blake2b.c: ^
blake2b.c: blake2b-round.h:100:23: note: in expansion of macro 'GATHER_ROUND'
blake2b.c: #define ROUNDS(msg) GATHER_ROUND(msg)
blake2b.c: ^
blake2b.c: blake2b.c:110:5: note: in expansion of macro 'ROUNDS'
blake2b.c: ROUNDS(in);
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/xmm
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.c: In file included from blake2b.c:6:0:
blake2b.c: blake2-config.h:68:2: error: #error "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
blake2b.c: blake2b.c: In function 'crypto_hash_blake2b_xmm':
blake2b.c: blake2b.c:34:8: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
blake2b.c: xmm0 = _mm_set_epi64x(0xBB67AE8584CAA73BULL, 0x6a09e667f3bcc908ULL ^ 0x0000000001010040ULL);
blake2b.c: ^

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

Compiler output

Implementation: crypto_hash/blake2b/ymm
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.c: In file included from blake2b.c:6:0:
blake2b.c: blake2-config.h:68:2: error: #error "This code requires at least SSE2."
blake2b.c: #error "This code requires at least SSE2."
blake2b.c: ^
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: ...

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

Compiler output

Implementation: crypto_hash/blake2b/avxicc
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2b.s: blake2b.s: Assembler messages:
blake2b.s: blake2b.s:14: Error: ambiguous operand size for `sub'
blake2b.s: blake2b.s:16: Error: too many memory references for `xor'
blake2b.s: blake2b.s:18: Error: too many memory references for `mov'
blake2b.s: blake2b.s:22: Error: too many memory references for `mov'
blake2b.s: blake2b.s:24: Error: too many memory references for `xor'
blake2b.s: blake2b.s:25: Error: too many memory references for `vmovdqu'
blake2b.s: blake2b.s:31: Error: too many memory references for `vmovdqu'
blake2b.s: blake2b.s:33: Error: ambiguous operand size for `cmp'
blake2b.s: blake2b.s:37: Error: too many memory references for `mov'
blake2b.s: blake2b.s:38: Error: too many memory references for `lea'
blake2b.s: blake2b.s:39: Error: ambiguous operand size for `sar'
blake2b.s: blake2b.s:41: Error: too many memory references for `mov'
blake2b.s: blake2b.s:42: Error: ambiguous operand size for `shr'
blake2b.s: blake2b.s:43: Error: too many memory references for `mov'
blake2b.s: blake2b.s:44: Error: too many memory references for `lea'
blake2b.s: blake2b.s:45: Error: ambiguous operand size for `sar'
blake2b.s: blake2b.s:46: Error: too many memory references for `mov'
blake2b.s: blake2b.s:49: Error: too many memory references for `vmovdqu'
blake2b.s: blake2b.s:50: Error: too many memory references for `vmovdqu'
blake2b.s: blake2b.s:51: Error: too many memory references for `vmovdqu'
blake2b.s: blake2b.s:54: Error: too many memory references for `vpunpcklqdq'
blake2b.s: blake2b.s:55: Error: too many memory references for `lea'
blake2b.s: blake2b.s:56: Error: operand size mismatch for `vpunpcklqdq'
blake2b.s: blake2b.s:60: Error: too many memory references for `vmovdqu'
blake2b.s: ...

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

Compiler output

Implementation: crypto_hash/blake2b/moon/sse2/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: crypto_hash_blake2b.a(blake2b.o): In function `blake2b_blocks_sse2':
try.c: (.text+0x...): undefined reference to `blake2b_constants'
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 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