Implementation notes: amd64, slide, crypto_hash/keccakc448

Computer: slide
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: keccakc448
TimeImplementationCompilerBenchmark dateSUPERCOP version
13556inplacegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
13652inplacegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
13704x86_64_shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
13740x86_64_shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
13780inplacegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
13840simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
13932simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
14000opt64u6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
14044opt64u6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
14060simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
14076simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14144opt64u6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
14176opt64u6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
14352inplacegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
15000opt64lcu24gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
15016opt64lcu24shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
15320opt64lcu6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
15412x86_64_shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
15524x86_64_shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
15528opt64lcu6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
15568opt64lcu24gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
15600opt64lcu6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
15620opt64lcu24gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
15688opt64lcu24gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
15792opt64lcu6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
16192opt64lcu24shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
16192opt64lcu24shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
16220opt64lcu24shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
16420x86_64_asmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
16428x86_64_asmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
16568x86_64_asmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
16680x86_64_asmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
17550sseu2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
19760sseu2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
19804sseu2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
19848sseu2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
29176mmxu1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
31348mmxu1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
32064opt32bi-rvku2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
32208mmxu1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
32384mmxu1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
34128opt32bi-rvku2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
34612opt32bi-rvku2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
34624opt32bi-rvku2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
35955opt32biT-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
36964opt32bi-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
37744opt32biT-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
38064opt32biT-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
38284opt32bi-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
39464opt32biT-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
40060opt32bi-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
40692opt32bi-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
42104compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
67784compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
71392compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
78748compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
145724compact8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
149984compact8gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
157052compact8gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
213152compact8gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806

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/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