Implementation notes: amd64, tueisecgern, crypto_hash/blake2s

Computer: tueisecgern
Architecture: amd64
CPU ID: GenuineIntel-000306f2-bfebfbff
SUPERCOP version: 20160724
Operation: crypto_hash
Primitive: blake2s
TimeImplementationCompilerBenchmark dateSUPERCOP version
7262avxiccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
7262avxiccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
7271avxiccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
7391xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
7427xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
7431xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
7648avxiccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
7654moon/avx/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
7658moon/avx/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
7676moon/ssse3/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
7679moon/avx/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
7992xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
9286regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
10006moon/avx/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
10052moon/ssse3/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
10071moon/ssse3/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
10182moon/ssse3/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
10758moon/sse2/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
10850moon/sse2/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
10887moon/sse2/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
11433moon/sse2/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
12328refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
14523regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
16051regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
16912regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
17768refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
20629refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
20749refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718

Test failure

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

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/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