Implementation notes: x86, thoth, crypto_hash/shavite3256

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: shavite3256
TimeImplementationCompilerBenchmark dateSUPERCOP version
51519low-memgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
53545new-aes-roundgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
53586no-saltgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
53615sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
53687sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
57725sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
57906sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
62030sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
62734sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
64706low-memgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
64744new-aes-roundgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
64758no-saltgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
65375sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
66180sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
68562low-memgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
69004lower-memgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
69527no-saltgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
69620new-aes-roundgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
71822no-saltgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
71939new-aes-roundgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
72924low-memgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
77022lower-memgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
79736lower-memgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
80876sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
81852sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
84114lower-memgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
2365958-bitgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
2708058-bitgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
6376588-bitgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
6999718-bitgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_hash/shavite3256/8-bit
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
SHAvite3.c: In file included from SHAvite3.c:11:
SHAvite3.c: In file included from ./portable.h:127:
SHAvite3.c: In file included from /usr/include/string.h:627:
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:151:45: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "=m" ( *(struct { __extension__ char __x[__n]; } *)__dest)
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:153:44: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "m" ( *(struct { __extension__ char __x[__n]; } *)__src)
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:177:40: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "=m" ( *(struct { __extension__ char __x[__n]; } *)__dest)
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:179:39: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "m" ( *(struct { __extension__ char __x[__n]; } *)__src));
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:188:40: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "=m" ( *(struct { __extension__ char __x[__n]; } *)__dest)
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:191:39: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "m" ( *(struct { __extension__ char __x[__n]; } *)__src));
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:216:44: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: "m" ( *(struct { __extension__ char __x[__n]; } *)__s1),
SHAvite3.c: ^
SHAvite3.c: /usr/include/i386-linux-gnu/bits/string.h:217:44: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
SHAvite3.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments 8-bit low-mem lower-mem new-aes-round no-salt

Compiler output

Implementation: crypto_hash/shavite3256/aes-instruct
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:4:
hash.c: In file included from ./SHA3api_ref.h:17:
hash.c: ./compress.h:99:9: error: invalid operand for instruction
hash.c: asm ("movaps xmm0, [SHAVITE_PTXT]");
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm0, [SHAVITE_PTXT]
hash.c: ^~~~~~~~~~~~~~
hash.c: In file included from hash.c:4:
hash.c: In file included from ./SHA3api_ref.h:17:
hash.c: ./compress.h:100:9: error: invalid operand for instruction
hash.c: asm ("movaps xmm1, [SHAVITE_PTXT+16]");
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm1, [SHAVITE_PTXT+16]
hash.c: ^~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:4:
hash.c: In file included from ./SHA3api_ref.h:17:
hash.c: ./compress.h:101:9: error: invalid operand for instruction
hash.c: asm ("movaps xmm3, [SHAVITE_CNTS]");
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm3, [SHAVITE_CNTS]
hash.c: ^~~~~~~~~~~~~~
hash.c: In file included from hash.c:4:
hash.c: ...

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

Compiler output

Implementation: crypto_hash/shavite3256/aes-instruct
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: compress.h: Assembler messages:
hash.c: compress.h:106: Error: too many memory references for `movaps'
hash.c: compress.h:107: Error: too many memory references for `movaps'
hash.c: compress.h:108: Error: too many memory references for `movaps'
hash.c: compress.h:109: Error: too many memory references for `movaps'
hash.c: compress.h:114: Error: too many memory references for `movaps'
hash.c: compress.h:115: Error: too many memory references for `movaps'
hash.c: compress.h:116: Error: too many memory references for `movaps'
hash.c: compress.h:117: Error: too many memory references for `movaps'
hash.c: compress.h:119: Error: too many memory references for `pshufb'
hash.c: compress.h:120: Error: too many memory references for `pshufb'
hash.c: compress.h:121: Error: too many memory references for `pshufb'
hash.c: compress.h:122: Error: too many memory references for `pshufb'
hash.c: compress.h:123: Error: operand size mismatch for `aesenc'
hash.c: compress.h:124: Error: operand size mismatch for `aesenc'
hash.c: compress.h:125: Error: operand size mismatch for `aesenc'
hash.c: compress.h:126: Error: operand size mismatch for `aesenc'
hash.c: compress.h:128: Error: operand size mismatch for `pxor'
hash.c: compress.h:129: Error: operand size mismatch for `pxor'
hash.c: compress.h:131: Error: too many memory references for `pxor'
hash.c: compress.h:132: Error: too many memory references for `pxor'
hash.c: compress.h:133: Error: too many memory references for `pxor'
hash.c: compress.h:134: Error: too many memory references for `pxor'
hash.c: compress.h:140: Error: operand size mismatch for `pxor'
hash.c: compress.h:141: Error: too many memory references for `aesenc'
hash.c: ...

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