Implementation notes: amd64, pluton1mn, crypto_hash/keccakc448

Computer: pluton1mn
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: keccakc448
TimeImplementationCompilerBenchmark dateSUPERCOP version
22764opt64u6icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
23856inplacegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
23954opt64u6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
24178inplacegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
24178opt64u6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
24290inplaceicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
24486simpleicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
24584opt64u6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
24626opt64u6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
24654simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
24766inplacegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
24962simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
25004inplacegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
25158simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
25382simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
25410opt64u6icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
25760opt64lcu24icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
26068opt64lcu6icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
26516opt64lcu24gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
26656inplaceicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
26950opt64lcu24gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
27006opt64lcu24gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
27062opt64lcu24gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
27160opt64lcu6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
27188simpleicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
27258opt64lcu6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
27440opt64lcu6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
27538opt64lcu6icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
27580opt64lcu6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
28112opt64lcu24icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
32046x86_64_asmicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
32046x86_64_asmicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
32312x86_64_asmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
32368x86_64_asmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
32452x86_64_asmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
32480x86_64_asmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
34944sseu2icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
34986sseu2icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
42588sseu2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
42616sseu2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
43764sseu2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
43932sseu2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
48790mmxu1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
50064mmxu1icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
50414mmxu1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
50750mmxu1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
51394mmxu1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
55048mmxu1icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
59752opt32bi-rvku2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
60396opt32bi-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
61222opt32bi-rvku2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
61838opt32biT-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
63826opt32bi-rvku2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
64218opt32biT-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
64316opt32bi-rvku2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
65044opt32biT-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
65338opt32biT-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
65954opt32bi-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
68936opt32bi-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
69384opt32bi-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
69608compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
83454compacticc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
84994compacticc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
105756opt64lcu24shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
108374opt64lcu24shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
108626opt64lcu24shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
110068x86_64_shldicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
110110x86_64_shldicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
110362x86_64_shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
110404x86_64_shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
110418x86_64_shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
110418x86_64_shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
111692opt64lcu24shldicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
111804opt64lcu24shldicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
115318opt64lcu24shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
141722compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
148792compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
170730compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
199360compact8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
259868compact8gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
270802compact8gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
286146opt32bi-rvku2icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
298424opt32biT-s2lcu4icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
314776opt32biT-s2lcu4icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
315518compact8gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
317744opt32bi-s2lcu4icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
324016opt32bi-rvku2icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
332010opt32bi-s2lcu4icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731

Compiler output

Implementation: crypto_hash/keccakc448/inplace32bi
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv inplace32bi
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv inplace32bi
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv inplace32bi
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv inplace32bi

Compiler output

Implementation: crypto_hash/keccakc448/simple32bi
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv simple32bi
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv simple32bi
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv simple32bi
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv simple32bi

Compiler output

Implementation: crypto_hash/keccakc448/xopu24
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakF-1600-opt64.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/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/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/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/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/x86intrin.h:54:0,
KeccakF-1600-opt64.c: from KeccakF-1600-opt64.c:74:
KeccakF-1600-opt64.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/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: In file included from KeccakF-1600-opt64.c:130:0:
KeccakF-1600-opt64.c: ...

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

Compiler output

Implementation: crypto_hash/keccakc448/inplace32bi
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
Keccak-inplace32BI.c: Keccak-inplace32BI.c(73): error: #error directive: "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: ^
Keccak-inplace32BI.c:
Keccak-inplace32BI.c: compilation aborted for Keccak-inplace32BI.c (code 2)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer inplace32bi
icc -xMIC-AVX512 -O3 -fomit-frame-pointer inplace32bi

Compiler output

Implementation: crypto_hash/keccakc448/simple32bi
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
Keccak-simple32BI.c: Keccak-simple32BI.c(73): error: #error directive: "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: ^
Keccak-simple32BI.c:
Keccak-simple32BI.c: compilation aborted for Keccak-simple32BI.c (code 2)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer simple32bi
icc -xMIC-AVX512 -O3 -fomit-frame-pointer simple32bi

Compiler output

Implementation: crypto_hash/keccakc448/xopu24
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): warning #266: function "_mm_roti_epi64" declared implicitly
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): error: argument of type "int" is incompatible with parameter of type "union __m128i"
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): error: argument of type "int" is incompatible with parameter of type "union __m128i"
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): error: argument of type "int" is incompatible with parameter of type "union __m128i"
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): warning #266: function "_mm_rot_epi64" declared implicitly
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): error: a value of type "int" cannot be assigned to an entity of type "V128"
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c:
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c(185): error: a value of type "int" cannot be assigned to an entity of type "V128"
KeccakF-1600-opt64.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer xopu24
icc -xMIC-AVX512 -O3 -fomit-frame-pointer xopu24