Implementation notes: x86, thoth, crypto_hash/shavite3512

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: shavite3512
TimeImplementationCompilerBenchmark dateSUPERCOP version
84342sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
87212sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
90895sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
96871sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
99569sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
100374sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
100994sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
101562no-saltgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
102704new-aes-roundgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
105858no-saltgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
106635new-aes-roundgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
107031sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
108988different-ordergcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
110973new-aes-roundgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
111093no-saltgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
112707different-ordergcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
113760no-saltgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
113850new-aes-roundgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
115905IntelL1Cachegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
120160IntelL1Cachegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
122461low-memgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
123404low-memgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
125962low-memgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
126681different-ordergcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
132252different-ordergcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
133706IntelL1Cachegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
133866sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
134924IntelL1Cachegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
135332sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
137148low-memgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
143073lower-memgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
154188lower-memgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
159234lower-memgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
160941lower-memgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
4450578-bitgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
5200278-bitgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
12283918-bitgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
13333658-bitgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_hash/shavite3512/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: 7, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments 8-bit IntelL1Cache different-order low-mem lower-mem new-aes-round no-salt

Compiler output

Implementation: crypto_hash/shavite3512/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:13:
hash.c: ./compress.h:140:9: error: invalid operand for instruction
hash.c: asm ("movaps xmm0, [SHAVITE512_PTXT]");
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm0, [SHAVITE512_PTXT]
hash.c: ^~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:4:
hash.c: In file included from ./SHA3api_ref.h:13:
hash.c: ./compress.h:141:9: error: invalid operand for instruction
hash.c: asm ("movaps xmm1, [SHAVITE512_PTXT+16]");
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm1, [SHAVITE512_PTXT+16]
hash.c: ^~~~~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:4:
hash.c: In file included from ./SHA3api_ref.h:13:
hash.c: ./compress.h:142:9: error: invalid operand for instruction
hash.c: asm ("movaps xmm2, [SHAVITE512_PTXT+32]");
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm2, [SHAVITE512_PTXT+32]
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/shavite3512/aes-instruct
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: compress.h: Assembler messages:
hash.c: compress.h:146: Error: too many memory references for `movaps'
hash.c: compress.h:147: Error: too many memory references for `movaps'
hash.c: compress.h:148: Error: too many memory references for `movaps'
hash.c: compress.h:149: Error: too many memory references for `movaps'
hash.c: compress.h:150: Error: too many memory references for `movaps'
hash.c: compress.h:151: Error: too many memory references for `movaps'
hash.c: compress.h:152: Error: too many memory references for `movaps'
hash.c: compress.h:153: Error: too many memory references for `movaps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: too many memory references for `shufps'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch for `aesenc'
hash.c: compress.h:160: Error: operand size mismatch 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