Implementation notes: amd64, utrecht, crypto_hash/blake2s

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake2s
TimeImplementationCompilerBenchmark dateSUPERCOP version
13635regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
13671regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
13716moon/ssse3/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
13725moon/ssse3/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
13743moon/ssse3/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
13815regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
14256regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
14292xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
15534xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
15534xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
17280refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
17370xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
17865refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
17874refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18675moon/sse2/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18747moon/sse2/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
18801moon/sse2/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
18801moon/sse2/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
20565moon/ssse3/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
20997refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731

Test failure

Implementation: crypto_hash/blake2s/avxicc
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111

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

Compiler output

Implementation: crypto_hash/blake2s/moon/armv6/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2s.S: blake2s.S: Assembler messages:
blake2s.S: blake2s.S:5: Error: no such architecture: `armv5'
blake2s.S: blake2s.S:8: Error: no such instruction: `stmfd sp!,{r4-r12,r14}'
blake2s.S: blake2s.S:9: Error: too many memory references for `mov'
blake2s.S: blake2s.S:10: Error: too many memory references for `sub'
blake2s.S: blake2s.S:11: Error: too many memory references for `and'
blake2s.S: blake2s.S:12: Error: invalid char '[' beginning operand 2 `[sp'
blake2s.S: blake2s.S:13: Error: expecting operand after ','; got nothing
blake2s.S: blake2s.S:14: Error: expecting operand after ','; got nothing
blake2s.S: blake2s.S:15: Error: no such instruction: `bhs blake2s_blocks_armv6_use64'
blake2s.S: blake2s.S:16: Error: too many memory references for `mov'
blake2s.S: blake2s.S:18: Error: invalid char '[' beginning operand 2 `[sp'
blake2s.S: blake2s.S:19: Error: invalid char '[' beginning operand 2 `[sp'
blake2s.S: blake2s.S:20: Error: invalid char '[' beginning operand 2 `[sp'
blake2s.S: blake2s.S:21: Error: invalid char '[' beginning operand 2 `[sp'
blake2s.S: blake2s.S:22: Error: no such instruction: `ldr r6,[r0,'
blake2s.S: blake2s.S:23: Error: no such instruction: `tst r6,r6'
blake2s.S: blake2s.S:24: Error: no such instruction: `beq blake2s_blocks_armv6_nocopymessage'
blake2s.S: blake2s.S:25: Error: expecting operand after ','; got nothing
blake2s.S: blake2s.S:26: Error: no such instruction: `beq blake2s_blocks_armv6_nocopymessage'
blake2s.S: blake2s.S:27: Error: too many memory references for `mov'
blake2s.S: blake2s.S:28: Error: no such instruction: `eor r4,r4'
blake2s.S: blake2s.S:29: Error: no such instruction: `eor r5,r5'
blake2s.S: blake2s.S:30: Error: no such instruction: `eor r6,r6'
blake2s.S: blake2s.S:31: Error: no such instruction: `eor r7,r7'
blake2s.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/blake2s/moon/sse2/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2s.S: blake2s.S: Assembler messages:
blake2s.S: blake2s.S:6: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:9: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:10: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:11: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:13: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:14: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:15: Error: incorrect register `%ecx' used with `q' suffix
blake2s.S: blake2s.S:629: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:630: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:631: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:633: 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/blake2s/moon/ssse3/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2s.S: blake2s.S: Assembler messages:
blake2s.S: blake2s.S:6: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:9: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:10: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:11: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:14: Error: incorrect register `%esi' used with `q' suffix
blake2s.S: blake2s.S:21: Error: incorrect register `%esi' used with `q' suffix
blake2s.S: blake2s.S:612: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:613: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:614: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:616: 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/blake2s/moon/xop/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2s.S: blake2s.S: Assembler messages:
blake2s.S: blake2s.S:6: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:9: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:10: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:11: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:15: Error: incorrect register `%ebx' used with `q' suffix
blake2s.S: blake2s.S:253: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:254: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:255: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:256: 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/blake2s/moon/avx/32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2s.S: blake2s.S: Assembler messages:
blake2s.S: blake2s.S:6: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:9: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:10: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:11: Error: invalid instruction suffix for `push'
blake2s.S: blake2s.S:24: Error: incorrect register `%ebx' used with `q' suffix
blake2s.S: blake2s.S:37: Error: incorrect register `%ebx' used with `q' suffix
blake2s.S: blake2s.S:279: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:280: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:281: Error: invalid instruction suffix for `pop'
blake2s.S: blake2s.S:282: 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/blake2s/regs
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
blake2s.c: blake2s.c: In function 'crypto_hash_blake2s_regs':
blake2s.c: blake2s.c:796:5: warning: large integer implicitly truncated to unsigned type [-Woverflow]
blake2s.c: v14 = ~0x1F83D9ABUL;
blake2s.c: ^

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