Implementation notes: amd64, slide, crypto_hash/keccakc768

Computer: slide
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: keccakc768
TimeImplementationCompilerBenchmark dateSUPERCOP version
18308inplacegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
18328inplacegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
18548inplacegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
18692simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
18740opt64u6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
18800simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
19012simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
19048opt64u6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
19076simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
19308opt64u6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
19324opt64u6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
19540inplacegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
20404opt64lcu24shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
20464opt64lcu24gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
20844x86_64_shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
20900x86_64_shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
20988opt64lcu6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
21052opt64lcu24gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
21064opt64lcu24gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
21112x86_64_shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
21272opt64lcu24gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
21300opt64lcu6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
21332opt64lcu6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
21368opt64lcu6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
21628opt64lcu24shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
21632opt64lcu24shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
21884x86_64_shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
22296x86_64_asmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
22300x86_64_asmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
22336x86_64_asmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
22508x86_64_asmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
22804opt64lcu24shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
26820sseu2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
26896sseu2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
26992sseu2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
27220sseu2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
39596mmxu1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
42612mmxu1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
42648mmxu1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
43868mmxu1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
44396opt32bi-rvku2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
44432opt32bi-rvku2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
44516simple32bigcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
44668simple32bigcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
44812simple32bigcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
44976opt32bi-rvku2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
45340simple32bigcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
45416opt32bi-rvku2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
49288opt32biT-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
49488inplace32bigcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
49800compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
50156opt32bi-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
50796inplace32bigcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
51516inplace32bigcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
51544opt32biT-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
51728opt32bi-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
52300opt32biT-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
52936opt32bi-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
52980inplace32bigcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
53004opt32bi-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
53060opt32biT-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
95636compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
100784compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
107344compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
198536compact8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
204276compact8gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
213944compact8gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
292732compact8gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806

Compiler output

Implementation: crypto_hash/keccakc768/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