Implementation notes: amd64, par, crypto_hash/keccakc448

Computer: par
Architecture: amd64
CPU ID: GenuineIntel-000406c3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: keccakc448
TimeImplementationCompilerBenchmark dateSUPERCOP version
34400opt64lcu24gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
34620opt64lcu24gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
34660opt64lcu24gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
34680opt64lcu24gcc -march=native -mcpu=native -Os2016121420161026
34720opt64lcu6gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
34760x86_64_asmgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
34760x86_64_asmgcc -march=native -mcpu=native -O32016121420161026
34800x86_64_asmgcc -march=native -mcpu=native -O22016121420161026
34880x86_64_asmgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
34940x86_64_asmgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
34960x86_64_asmgcc -march=native -mcpu=native -Os2016121420161026
34980opt64lcu6gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
35340opt64lcu6gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
35700opt64lcu6gcc -march=native -mcpu=native -Os2016121420161026
36180opt64lcu6gcc -march=native -mcpu=native -O22016121420161026
36360opt64lcu24gcc -march=native -mcpu=native -O22016121420161026
36360opt64lcu24gcc -march=native -mcpu=native -O32016121420161026
36860opt64lcu6gcc -march=native -mcpu=native -O32016121420161026
37900opt64u6gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
38260opt64u6gcc -march=native -mcpu=native -Os2016121420161026
38580opt64u6gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
38660inplacegcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
38680simplegcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
38680inplacegcc -march=native -mcpu=native -Os2016121420161026
38840simplegcc -march=native -mcpu=native -Os2016121420161026
39100simplegcc -funroll-loops -march=native -mcpu=native -O22016121420161026
39540inplacegcc -funroll-loops -march=native -mcpu=native -O32016121420161026
39600simplegcc -march=native -mcpu=native -O22016121420161026
39620inplacegcc -funroll-loops -march=native -mcpu=native -O22016121420161026
40000opt64u6gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
40320inplacegcc -march=native -mcpu=native -O32016121420161026
40420opt64u6gcc -march=native -mcpu=native -O22016121420161026
40760simplegcc -funroll-loops -march=native -mcpu=native -O32016121420161026
41220opt64u6gcc -march=native -mcpu=native -O32016121420161026
41320inplacegcc -march=native -mcpu=native -O22016121420161026
41780simplegcc -march=native -mcpu=native -O32016121420161026
49200sseu2gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
50240sseu2gcc -march=native -mcpu=native -Os2016121420161026
51260sseu2gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
52400sseu2gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
54000sseu2gcc -march=native -mcpu=native -O22016121420161026
54400sseu2gcc -march=native -mcpu=native -O32016121420161026
58160mmxu1gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
58160mmxu1gcc -march=native -mcpu=native -Os2016121420161026
59360mmxu1gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
59680mmxu1gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
64000mmxu1gcc -march=native -mcpu=native -O32016121420161026
64060mmxu1gcc -march=native -mcpu=native -O22016121420161026
64080compactgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
69580compactgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
76840opt32bi-s2lcu4gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
80320opt32biT-s2lcu4gcc -march=native -mcpu=native -Os2016121420161026
80620opt32biT-s2lcu4gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
80740opt32bi-s2lcu4gcc -march=native -mcpu=native -O32016121420161026
81660opt32biT-s2lcu4gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
82660opt32bi-s2lcu4gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
83300opt32bi-s2lcu4gcc -march=native -mcpu=native -Os2016121420161026
83640opt32biT-s2lcu4gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
84460opt32bi-s2lcu4gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
84980opt32biT-s2lcu4gcc -march=native -mcpu=native -O32016121420161026
85360opt32biT-s2lcu4gcc -march=native -mcpu=native -O22016121420161026
87460compactgcc -march=native -mcpu=native -O32016121420161026
88000opt32bi-rvku2gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
88360opt32bi-s2lcu4gcc -march=native -mcpu=native -O22016121420161026
88840opt32bi-rvku2gcc -march=native -mcpu=native -Os2016121420161026
90300opt32bi-rvku2gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
91340opt32bi-rvku2gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
94620opt32bi-rvku2gcc -march=native -mcpu=native -O22016121420161026
94800opt32bi-rvku2gcc -march=native -mcpu=native -O32016121420161026
110040opt64lcu24shldgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
110040opt64lcu24shldgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
110140opt64lcu24shldgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
110540opt64lcu24shldgcc -march=native -mcpu=native -Os2016121420161026
110580x86_64_shldgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
110600x86_64_shldgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
110620x86_64_shldgcc -march=native -mcpu=native -O22016121420161026
110620x86_64_shldgcc -march=native -mcpu=native -O32016121420161026
110740x86_64_shldgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
110740x86_64_shldgcc -march=native -mcpu=native -Os2016121420161026
111940opt64lcu24shldgcc -march=native -mcpu=native -O22016121420161026
111960opt64lcu24shldgcc -march=native -mcpu=native -O32016121420161026
157160compactgcc -march=native -mcpu=native -Os2016121420161026
159000compactgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
164140compactgcc -march=native -mcpu=native -O22016121420161026
240080compact8gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
259140compact8gcc -march=native -mcpu=native -O32016121420161026
279880compact8gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
325100compact8gcc -march=native -mcpu=native -O22016121420161026
360380compact8gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
370760compact8gcc -march=native -mcpu=native -Os2016121420161026

Compiler output

Implementation: crypto_hash/keccakc448/compact
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
Keccak-compact.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 compact
gcc -funroll-loops -march=native -mcpu=native -O3 compact
gcc -funroll-loops -march=native -mcpu=native -Os compact
gcc -march=native -mcpu=native -O2 compact
gcc -march=native -mcpu=native -O3 compact
gcc -march=native -mcpu=native -Os compact

Compiler output

Implementation: crypto_hash/keccakc448/compact8
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
Keccak-compact8.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 compact8
gcc -funroll-loops -march=native -mcpu=native -O3 compact8
gcc -funroll-loops -march=native -mcpu=native -Os compact8
gcc -march=native -mcpu=native -O2 compact8
gcc -march=native -mcpu=native -O3 compact8
gcc -march=native -mcpu=native -Os compact8

Compiler output

Implementation: crypto_hash/keccakc448/inplace
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
Keccak-inplace.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 inplace
gcc -funroll-loops -march=native -mcpu=native -O3 inplace
gcc -funroll-loops -march=native -mcpu=native -Os inplace
gcc -march=native -mcpu=native -O2 inplace
gcc -march=native -mcpu=native -O3 inplace
gcc -march=native -mcpu=native -Os inplace

Compiler output

Implementation: crypto_hash/keccakc448/inplace32bi
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
Keccak-inplace32BI.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
Keccak-inplace32BI.c: Keccak-inplace32BI.c: In function 'crypto_hash_keccakc448_inplace32bi':
Keccak-inplace32BI.c: Keccak-inplace32BI.c:73:6: error: #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-inplace32BI.c: #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-inplace32BI.c: ^~~~~

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

Compiler output

Implementation: crypto_hash/keccakc448/simple
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
Keccak-simple.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 simple
gcc -funroll-loops -march=native -mcpu=native -O3 simple
gcc -funroll-loops -march=native -mcpu=native -Os simple
gcc -march=native -mcpu=native -O2 simple
gcc -march=native -mcpu=native -O3 simple
gcc -march=native -mcpu=native -Os simple

Compiler output

Implementation: crypto_hash/keccakc448/simple32bi
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
Keccak-simple32BI.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
Keccak-simple32BI.c: Keccak-simple32BI.c: In function 'crypto_hash_keccakc448_simple32bi':
Keccak-simple32BI.c: Keccak-simple32BI.c:73:6: error: #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-simple32BI.c: #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-simple32BI.c: ^~~~~

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

Compiler output

Implementation: crypto_hash/keccakc448/opt32bi-rvku2
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
KeccakF-1600-opt32.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakSponge.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
hash.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: 18, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 opt32bi-rvku2 opt32bi-s2lcu4 opt32biT-s2lcu4
gcc -funroll-loops -march=native -mcpu=native -O3 opt32bi-rvku2 opt32bi-s2lcu4 opt32biT-s2lcu4
gcc -funroll-loops -march=native -mcpu=native -Os opt32bi-rvku2 opt32bi-s2lcu4 opt32biT-s2lcu4
gcc -march=native -mcpu=native -O2 opt32bi-rvku2 opt32bi-s2lcu4 opt32biT-s2lcu4
gcc -march=native -mcpu=native -O3 opt32bi-rvku2 opt32bi-s2lcu4 opt32biT-s2lcu4
gcc -march=native -mcpu=native -Os opt32bi-rvku2 opt32bi-s2lcu4 opt32biT-s2lcu4

Compiler output

Implementation: crypto_hash/keccakc448/xopu24
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
KeccakF-1600-opt64.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakF-1600-opt64.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:54:0,
KeccakF-1600-opt64.c: from KeccakF-1600-opt64.c:74:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-opt64.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xopintrin.h:266:1: error: inlining failed in call to always_inline '_mm_roti_epi64': target specific option mismatch
KeccakF-1600-opt64.c: _mm_roti_epi64(__m128i __A, const int __B)
KeccakF-1600-opt64.c: ^~~~~~~~~~~~~~
KeccakF-1600-opt64.c: In file included from KeccakF-1600-opt64.c:130:0:
KeccakF-1600-opt64.c: KeccakF-1600-xop.macros:103:11: note: called from here
KeccakF-1600-opt64.c: Bsusa = ROL6464same(Bsusa, 2); \
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-xop.macros:123:36: note: in expansion of macro 'thetaRhoPiChiIotaPrepareTheta'
KeccakF-1600-opt64.c: #define thetaRhoPiChiIota(i, A, E) thetaRhoPiChiIotaPrepareTheta(i, A, E)
KeccakF-1600-opt64.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakF-1600-opt64.c: KeccakF-1600-unrolling.macros:40:5: note: in expansion of macro 'thetaRhoPiChiIota'
KeccakF-1600-opt64.c: thetaRhoPiChiIota(23, E, A) \
KeccakF-1600-opt64.c: ^~~~~~~~~~~~~~~~~
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c:185:5: note: in expansion of macro 'rounds'
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^~~~~~
KeccakF-1600-opt64.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:54:0,
KeccakF-1600-opt64.c: from KeccakF-1600-opt64.c:74:
KeccakF-1600-opt64.c: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/xopintrin.h:239:1: error: inlining failed in call to always_inline '_mm_rot_epi64': target specific option mismatch
KeccakF-1600-opt64.c: _mm_rot_epi64(__m128i __A, __m128i __B)
KeccakF-1600-opt64.c: ^~~~~~~~~~~~~
KeccakF-1600-opt64.c: ...

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

Compiler output

Implementation: crypto_hash/keccakc448/mmxu1
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
KeccakF-1600-opt64.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakSponge.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
hash.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: 36, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 mmxu1 opt64lcu24 opt64lcu24shld opt64lcu6 opt64u6 sseu2
gcc -funroll-loops -march=native -mcpu=native -O3 mmxu1 opt64lcu24 opt64lcu24shld opt64lcu6 opt64u6 sseu2
gcc -funroll-loops -march=native -mcpu=native -Os mmxu1 opt64lcu24 opt64lcu24shld opt64lcu6 opt64u6 sseu2
gcc -march=native -mcpu=native -O2 mmxu1 opt64lcu24 opt64lcu24shld opt64lcu6 opt64u6 sseu2
gcc -march=native -mcpu=native -O3 mmxu1 opt64lcu24 opt64lcu24shld opt64lcu6 opt64u6 sseu2
gcc -march=native -mcpu=native -Os mmxu1 opt64lcu24 opt64lcu24shld opt64lcu6 opt64u6 sseu2

Compiler output

Implementation: crypto_hash/keccakc448/x86_64_asm
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
KeccakF-1600-x86-64-asm.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakSponge.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakF-1600-x86-64-gas.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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 x86_64_asm
gcc -funroll-loops -march=native -mcpu=native -O3 x86_64_asm
gcc -funroll-loops -march=native -mcpu=native -Os x86_64_asm
gcc -march=native -mcpu=native -O2 x86_64_asm
gcc -march=native -mcpu=native -O3 x86_64_asm
gcc -march=native -mcpu=native -Os x86_64_asm

Compiler output

Implementation: crypto_hash/keccakc448/x86_64_shld
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
KeccakF-1600-x86-64-asm.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakSponge.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
hash.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
KeccakF-1600-x86-64-shld-gas.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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 x86_64_shld
gcc -funroll-loops -march=native -mcpu=native -O3 x86_64_shld
gcc -funroll-loops -march=native -mcpu=native -Os x86_64_shld
gcc -march=native -mcpu=native -O2 x86_64_shld
gcc -march=native -mcpu=native -O3 x86_64_shld
gcc -march=native -mcpu=native -Os x86_64_shld