Implementation notes: amd64, slide, crypto_hash/blake2s

Computer: slide
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake2s
TimeImplementationCompilerBenchmark dateSUPERCOP version
8208avxiccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
8208avxiccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
8216avxiccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
8216avxiccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
8352xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
8400xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
8404xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
8404xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
8648moon/avx/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
8656moon/ssse3/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
8660moon/avx/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
8664moon/avx/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
8676moon/ssse3/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
8676moon/ssse3/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
8684moon/avx/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
8692moon/ssse3/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
9774regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
10096moon/sse2/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
10112moon/sse2/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
10112moon/sse2/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
10128moon/sse2/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
10224regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
10344regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
10372regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
12495refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
12548refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
12908refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
13580refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806

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:11: 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