Implementation notes: amd64, par, crypto_hash/blake2s

Computer: par
Architecture: amd64
CPU ID: GenuineIntel-000406c3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: blake2s
TimeImplementationCompilerBenchmark dateSUPERCOP version
17820moon/sse2/64gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
17820moon/sse2/64gcc -march=native -mcpu=native -O22016121420161026
17840moon/sse2/64gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
17840moon/sse2/64gcc -march=native -mcpu=native -O32016121420161026
18060moon/sse2/64gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
18260moon/sse2/64gcc -march=native -mcpu=native -Os2016121420161026
19440xmmgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
19500xmmgcc -march=native -mcpu=native -Os2016121420161026
20080moon/ssse3/64gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
20080moon/ssse3/64gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
20080moon/ssse3/64gcc -march=native -mcpu=native -O22016121420161026
20080moon/ssse3/64gcc -march=native -mcpu=native -O32016121420161026
20180moon/ssse3/64gcc -march=native -mcpu=native -Os2016121420161026
20200moon/ssse3/64gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
20620xmmgcc -march=native -mcpu=native -O22016121420161026
20620xmmgcc -march=native -mcpu=native -O32016121420161026
20860xmmgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
20860xmmgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
21660regsgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
21780regsgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
21780regsgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
21840regsgcc -march=native -mcpu=native -Os2016121420161026
21900regsgcc -march=native -mcpu=native -O32016121420161026
21920regsgcc -march=native -mcpu=native -O22016121420161026
24600refgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
24680refgcc -march=native -mcpu=native -O32016121420161026
24900refgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
26720refgcc -march=native -mcpu=native -O22016121420161026
28920refgcc -march=native -mcpu=native -Os2016121420161026
28940refgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026

Test failure

Implementation: crypto_hash/blake2s/avxicc
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
error 111

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 avxicc moon/avx/64 moon/xop/64
gcc -funroll-loops -march=native -mcpu=native -O3 avxicc moon/avx/64 moon/xop/64
gcc -funroll-loops -march=native -mcpu=native -Os avxicc moon/avx/64 moon/xop/64
gcc -march=native -mcpu=native -O2 avxicc moon/avx/64 moon/xop/64
gcc -march=native -mcpu=native -O3 avxicc moon/avx/64 moon/xop/64
gcc -march=native -mcpu=native -Os avxicc moon/avx/64 moon/xop/64

Compiler output

Implementation: crypto_hash/blake2s/ref
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
blake2s-ref.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 ref
gcc -funroll-loops -march=native -mcpu=native -O3 ref
gcc -funroll-loops -march=native -mcpu=native -Os ref
gcc -march=native -mcpu=native -O2 ref
gcc -march=native -mcpu=native -O3 ref
gcc -march=native -mcpu=native -Os ref

Compiler output

Implementation: crypto_hash/blake2s/regs
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
blake2s.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.c: blake2s.c: In function 'crypto_hash_blake2s_regs':
blake2s.c: blake2s.c:796:11: warning: large integer implicitly truncated to unsigned type [-Woverflow]
blake2s.c: v14 = ~0x1F83D9ABUL;
blake2s.c: ^
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 regs
gcc -funroll-loops -march=native -mcpu=native -O3 regs
gcc -funroll-loops -march=native -mcpu=native -Os regs
gcc -march=native -mcpu=native -O2 regs
gcc -march=native -mcpu=native -O3 regs
gcc -march=native -mcpu=native -Os regs

Compiler output

Implementation: crypto_hash/blake2s/xmm
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
blake2s.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 xmm
gcc -funroll-loops -march=native -mcpu=native -O3 xmm
gcc -funroll-loops -march=native -mcpu=native -Os xmm
gcc -march=native -mcpu=native -O2 xmm
gcc -march=native -mcpu=native -O3 xmm
gcc -march=native -mcpu=native -Os xmm

Compiler output

Implementation: crypto_hash/blake2s/avxicc
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
blake2s.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 avxicc
gcc -funroll-loops -march=native -mcpu=native -O3 avxicc
gcc -funroll-loops -march=native -mcpu=native -Os avxicc
gcc -march=native -mcpu=native -O2 avxicc
gcc -march=native -mcpu=native -O3 avxicc
gcc -march=native -mcpu=native -Os avxicc

Compiler output

Implementation: crypto_hash/blake2s/moon/armv6/32
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
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: ...

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/armv6/32
gcc -funroll-loops -march=native -mcpu=native -O3 moon/armv6/32
gcc -funroll-loops -march=native -mcpu=native -Os moon/armv6/32
gcc -march=native -mcpu=native -O2 moon/armv6/32
gcc -march=native -mcpu=native -O3 moon/armv6/32
gcc -march=native -mcpu=native -Os moon/armv6/32

Compiler output

Implementation: crypto_hash/blake2s/moon/sse2/32
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/sse2/32
gcc -funroll-loops -march=native -mcpu=native -O3 moon/sse2/32
gcc -funroll-loops -march=native -mcpu=native -Os moon/sse2/32
gcc -march=native -mcpu=native -O2 moon/sse2/32
gcc -march=native -mcpu=native -O3 moon/sse2/32
gcc -march=native -mcpu=native -Os moon/sse2/32

Compiler output

Implementation: crypto_hash/blake2s/moon/ssse3/32
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/ssse3/32
gcc -funroll-loops -march=native -mcpu=native -O3 moon/ssse3/32
gcc -funroll-loops -march=native -mcpu=native -Os moon/ssse3/32
gcc -march=native -mcpu=native -O2 moon/ssse3/32
gcc -march=native -mcpu=native -O3 moon/ssse3/32
gcc -march=native -mcpu=native -Os moon/ssse3/32

Compiler output

Implementation: crypto_hash/blake2s/moon/xop/32
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/xop/32
gcc -funroll-loops -march=native -mcpu=native -O3 moon/xop/32
gcc -funroll-loops -march=native -mcpu=native -Os moon/xop/32
gcc -march=native -mcpu=native -O2 moon/xop/32
gcc -march=native -mcpu=native -O3 moon/xop/32
gcc -march=native -mcpu=native -Os moon/xop/32

Compiler output

Implementation: crypto_hash/blake2s/moon/avx/32
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/avx/32
gcc -funroll-loops -march=native -mcpu=native -O3 moon/avx/32
gcc -funroll-loops -march=native -mcpu=native -Os moon/avx/32
gcc -march=native -mcpu=native -O2 moon/avx/32
gcc -march=native -mcpu=native -O3 moon/avx/32
gcc -march=native -mcpu=native -Os moon/avx/32

Compiler output

Implementation: crypto_hash/blake2s/moon/avx/64
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/avx/64 moon/xop/64
gcc -funroll-loops -march=native -mcpu=native -O3 moon/avx/64 moon/xop/64
gcc -funroll-loops -march=native -mcpu=native -Os moon/avx/64 moon/xop/64
gcc -march=native -mcpu=native -O2 moon/avx/64 moon/xop/64
gcc -march=native -mcpu=native -O3 moon/avx/64 moon/xop/64
gcc -march=native -mcpu=native -Os moon/avx/64 moon/xop/64

Compiler output

Implementation: crypto_hash/blake2s/moon/sse2/64
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
crypto_hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
blake2s.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 moon/sse2/64 moon/ssse3/64
gcc -funroll-loops -march=native -mcpu=native -O3 moon/sse2/64 moon/ssse3/64
gcc -funroll-loops -march=native -mcpu=native -Os moon/sse2/64 moon/ssse3/64
gcc -march=native -mcpu=native -O2 moon/sse2/64 moon/ssse3/64
gcc -march=native -mcpu=native -O3 moon/sse2/64 moon/ssse3/64
gcc -march=native -mcpu=native -Os moon/sse2/64 moon/ssse3/64