Implementation notes: amd64, slide, crypto_hash/keccakc256

Computer: slide
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: keccakc256
TimeImplementationCompilerBenchmark dateSUPERCOP version
12420inplacegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
12516inplacegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
12688inplacegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
12704simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
12740simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
12748opt64u6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
12760simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
12836opt64u6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
12868simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
12876opt64u6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
12900opt64u6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
13296inplacegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
13564opt64lcu24shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
13648opt64lcu24gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
13980opt64lcu6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
14044x86_64_shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14060x86_64_shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
14084x86_64_shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
14112x86_64_shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
14128opt64lcu6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
14136opt64lcu24gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14136opt64lcu24gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
14152opt64lcu6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14332opt64lcu6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
14544opt64lcu24shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
14588opt64lcu24shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14600opt64lcu24shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
14772opt64lcu24gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
14984x86_64_asmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14988x86_64_asmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
15012x86_64_asmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
15124x86_64_asmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
18044sseu2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
18128sseu2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
18200sseu2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
18264sseu2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
26604mmxu1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
28396mmxu1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
28544mmxu1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
29380mmxu1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
30524simple32bigcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
30552opt32bi-rvku2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
31928opt32bi-rvku2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
31988opt32bi-rvku2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
31992opt32bi-rvku2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
32132simple32bigcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
32284simple32bigcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
32536simple32bigcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
34272opt32biT-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
35056inplace32bigcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
35312inplace32bigcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
35416opt32bi-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
35484opt32biT-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
35568opt32biT-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
35588opt32bi-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
36312inplace32bigcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
36360opt32biT-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
37172opt32bi-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
37360compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
37396opt32bi-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
37732inplace32bigcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
63348compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
67220compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
71524compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
132348compact8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
136084compact8gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
142680compact8gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
193632compact8gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806

Compiler output

Implementation: crypto_hash/keccakc256/xopu24
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakF-1600-opt64.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:52: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-linux-gnu/4.9/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: KeccakF-1600-opt64.c:90:33: error: called from here
KeccakF-1600-opt64.c: #define XOR128(a, b) _mm_xor_si128(a, b)
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c: KeccakF-1600-xop.macros:40:11: note: in expansion of macro 'XOR128'
KeccakF-1600-opt64.c: Dei = XOR128(Cae, ROL6464same(Cio, 1)); \
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c: KeccakF-1600-xop.macros:53:5: note: in expansion of macro 'computeD'
KeccakF-1600-opt64.c: computeD \
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c: KeccakF-1600-unrolling.macros:17:5: note: in expansion of macro 'thetaRhoPiChiIotaPrepareTheta'
KeccakF-1600-opt64.c: thetaRhoPiChiIotaPrepareTheta( 0, A, E) \
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-linux-gnu/4.9/include/x86intrin.h:52:0,
KeccakF-1600-opt64.c: from KeccakF-1600-opt64.c:74:
KeccakF-1600-opt64.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/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: ...

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