Implementation notes: amd64, utrecht, crypto_hash/keccakc448

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: keccakc448
TimeImplementationCompilerBenchmark dateSUPERCOP version
18351x86_64_asmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
18369x86_64_asmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
18387x86_64_asmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18657opt64lcu24gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18666x86_64_asmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
18846opt64lcu6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
20889x86_64_shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
20889x86_64_shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
20988x86_64_shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
21366x86_64_shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
21528opt64u6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
21690opt64lcu24shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
23211simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
23652inplacegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
23760opt64lcu24gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
23850opt64lcu24gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
24309opt64lcu6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
24336opt64lcu6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
25011opt64lcu24gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
26001opt64lcu24shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
26010opt64lcu24shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
26775opt64lcu24shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
27036opt64lcu6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
28296sseu2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
28422sseu2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
29025sseu2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
29664sseu2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
30195inplacegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
30591inplacegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
31257opt64u6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
31284opt64u6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
31599simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
32067simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
32400simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
32706inplacegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
33597opt64u6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
33912mmxu1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
34443mmxu1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
34641mmxu1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
36279mmxu1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
47178opt32biT-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
50994opt32bi-s2lcu4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
59175opt32bi-rvku2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
63234compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
64728opt32bi-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
66078opt32biT-s2lcu4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
66393opt32biT-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
67500opt32biT-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
70110opt32bi-s2lcu4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
70587opt32bi-s2lcu4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
75591opt32bi-rvku2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
80919opt32bi-rvku2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
83322opt32bi-rvku2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
100008compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
100683compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
120393compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
178713compact8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
191943compact8gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
199638compact8gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
563247compact8gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731

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: KeccakF-1600-opt64.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c:185:5: error: incompatible type for argument 2 of '_mm_xor_si128'
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.8/include/xmmintrin.h:1246:0,
KeccakF-1600-opt64.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:34,
KeccakF-1600-opt64.c: from KeccakF-1600-opt64.c:74:
KeccakF-1600-opt64.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:1264:1: note: expected '__m128i' but argument is of type 'int'
KeccakF-1600-opt64.c: _mm_xor_si128 (__m128i __A, __m128i __B)
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c:185:5: error: incompatible type for argument 2 of '_mm_xor_si128'
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.8/include/xmmintrin.h:1246:0,
KeccakF-1600-opt64.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:34,
KeccakF-1600-opt64.c: from KeccakF-1600-opt64.c:74:
KeccakF-1600-opt64.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:1264:1: note: expected '__m128i' but argument is of type 'int'
KeccakF-1600-opt64.c: _mm_xor_si128 (__m128i __A, __m128i __B)
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c:185:5: error: can't convert between vector values of different size
KeccakF-1600-opt64.c: rounds
KeccakF-1600-opt64.c: ^
KeccakF-1600-opt64.c: KeccakF-1600-opt64.c:185:5: error: incompatible type for argument 2 of '_mm_xor_si128'
KeccakF-1600-opt64.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/xmmintrin.h:1246:0,
KeccakF-1600-opt64.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:34,
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