Implementation notes: amd64, pluton1mn, crypto_hash/bmw256

Computer: pluton1mn
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: bmw256
TimeImplementationCompilerBenchmark dateSUPERCOP version
14518core_i7_45nm/x86-64/sse4_v1icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
14518core_i7_45nm/x86-64/sse4_v1icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
14616core_2_45nm/x86-64/sse4_v1icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
14616core_2_45nm/x86-64/sse4_v1icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
15302core_2_65nm/x86-64/ssse3_v1icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
15302core_2_65nm/x86-64/ssse3_v1icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
15316amd_k10/x86-64/sse2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
15372amd_k10/x86-64/sse2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
15372opt29_v5_ssse3_asm64icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
15386opt29_v5_ssse3_asm64icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
15442amd_k10/x86-64/sse2icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
15456amd_k10/x86-64/sse2icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
15484amd_k10/x86-64/sse2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
15526amd_k10/x86-64/sse2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
15932core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
15960core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
15960core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
16016core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
16282core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
16310core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
16366core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
16548core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
16590core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
16618core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
16716core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
16744opt29_v5_ssse3_asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
16744opt29_v5_ssse3_asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
16758opt29_v5_ssse3_asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
16828opt29_v5_ssse3_asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
16926opt31ssse3_asm64icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
16926opt31ssse3_asm64icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17066optabegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
17080optbbegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
17360optc03icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17388optc03icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
17416optabeicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17444optbbeicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17458optc01icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
17486optc02icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17486optc04icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17570optc04icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
17598optc04gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
17696optc01icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
17724optc04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
17780optc01gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
17864optc02icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
17892optabeicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
17920optbbeicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
17948optbbegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
17962optc04gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
17976optbbegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
17990optabegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
17990optc02gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
18004opt31ssse3_asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18018opt31ssse3_asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
18018opt31ssse3_asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
18018optabegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
18032optc03gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
18102optc02gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
18116optc02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18144opt31ssse3_asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
18158optc01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18172optc01gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
18186optc03gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18200optc03gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
18214optbbegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18214optc01gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
18228optabegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18284optbgbegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
18368optbgbegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
18620optbgbegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
18928optbgbegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
18928sphlib-smallicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
18956optbgbeicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
19124optbgbeicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
19138sphlib-smallicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
20132sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
20258sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
20356sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
20552sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
20678sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
20902sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
20902optc04gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
21098sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
21294optc03gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
21518sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
21938optc02gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
22120amd_k8/x86-64/noSSEgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
22120core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
22120amd_k8/x86-64/noSSEgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
22134amd_k8/x86-64/noSSEgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
22134amd_k8/x86-64/noSSEicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
22134amd_k8/x86-64/noSSEicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
22204amd_k8/x86-64/noSSEgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
23968sphlibicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
24066sphlibicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
24108reficc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
24500reficc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
38290refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
38388refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
39074refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
78358refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731

Compiler output

Implementation: crypto_hash/bmw256/optc31ssse3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
Compress256_sse_31.c: Compress256_sse_31.c: In function 'Compress256':
Compress256_sse_31.c: Compress256_sse_31.c:374:18: warning: passing argument 1 of '_mm_store_si128' from incompatible pointer type [-Wincompatible-pointer-types]
Compress256_sse_31.c: _mm_store_si128(&p256[00], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/pmmintrin.h:31:0,
Compress256_sse_31.c: from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/tmmintrin.h:31,
Compress256_sse_31.c: from Compress256_sse_31.c:12:
Compress256_sse_31.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/emmintrin.h:708:1: note: expected '__vector(2) long long int *' but argument is of type 'u_int32_t * {aka unsigned int *}'
Compress256_sse_31.c: _mm_store_si128 (__m128i *__P, __m128i __B)
Compress256_sse_31.c: ^~~~~~~~~~~~~~~
Compress256_sse_31.c: Compress256_sse_31.c:377:28: warning: passing argument 1 of '_mm_load_si128' from incompatible pointer type [-Wincompatible-pointer-types]
Compress256_sse_31.c: copyTemp = _mm_load_si128(&hashState256(state)->gt;DoublePipe[ 4]);
Compress256_sse_31.c: ^
Compress256_sse_31.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/pmmintrin.h:31:0,
Compress256_sse_31.c: from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/tmmintrin.h:31,
Compress256_sse_31.c: from Compress256_sse_31.c:12:
Compress256_sse_31.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/emmintrin.h:690:1: note: expected 'const __vector(2) long long int *' but argument is of type 'u_int32_t * {aka unsigned int *}'
Compress256_sse_31.c: _mm_load_si128 (__m128i const *__P)
Compress256_sse_31.c: ^~~~~~~~~~~~~~
Compress256_sse_31.c: Compress256_sse_31.c:378:18: warning: passing argument 1 of '_mm_store_si128' from incompatible pointer type [-Wincompatible-pointer-types]
Compress256_sse_31.c: _mm_store_si128(&p256[04], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/pmmintrin.h:31:0,
Compress256_sse_31.c: from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/tmmintrin.h:31,
Compress256_sse_31.c: from Compress256_sse_31.c:12:
Compress256_sse_31.c: ...

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

Compiler output

Implementation: crypto_hash/bmw256/opt31ssse3_asm64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
wrapper.c: wrapper.c:37:0: warning: "crypto_hash_BYTES" redefined
wrapper.c: #define crypto_hash_BYTES 32
wrapper.c:
wrapper.c: In file included from wrapper.c:20:0:
wrapper.c: crypto_hash.h:7:0: note: this is the location of the previous definition
wrapper.c: #define crypto_hash_BYTES crypto_hash_bmw256_BYTES
wrapper.c:
wrapper.c: wrapper.c:39:8: warning: type defaults to 'int' in declaration of 'Compress256' [-Wimplicit-int]
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ^~~~~~~~~~~
wrapper.c: wrapper.c: In function 'crypto_hash_bmw256_opt31ssse3_asm64':
wrapper.c: wrapper.c:238:34: warning: passing argument 3 of 'Compress256' from incompatible pointer type [-Wincompatible-pointer-types]
wrapper.c: Compress256(data32, data32 +16, CONST32final-4); // TODO: This is a HACK...
wrapper.c: ^~~~~~~~~~~~
wrapper.c: wrapper.c:39:8: note: expected 'hashState * {aka struct gt; *}' but argument is of type 'u_int32_t * {aka unsigned int *}'
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ^~~~~~~~~~~

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

Compiler output

Implementation: crypto_hash/bmw256/optc31ssse3
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
Compress256_sse_31.c: Compress256_sse_31.c(374): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "union __m128i *"
Compress256_sse_31.c: _mm_store_si128(&p256[00], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c:
Compress256_sse_31.c: Compress256_sse_31.c(377): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "const union __m128i *"
Compress256_sse_31.c: copyTemp = _mm_load_si128(&hashState256(state)->gt;DoublePipe[ 4]);
Compress256_sse_31.c: ^
Compress256_sse_31.c:
Compress256_sse_31.c: Compress256_sse_31.c(378): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "union __m128i *"
Compress256_sse_31.c: _mm_store_si128(&p256[04], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c:
Compress256_sse_31.c: Compress256_sse_31.c(379): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "const union __m128i *"
Compress256_sse_31.c: copyTemp = _mm_load_si128(&hashState256(state)->gt;DoublePipe[ 8]);
Compress256_sse_31.c: ^
Compress256_sse_31.c:
Compress256_sse_31.c: Compress256_sse_31.c(380): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "union __m128i *"
Compress256_sse_31.c: _mm_store_si128(&p256[ 8], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c:
Compress256_sse_31.c: Compress256_sse_31.c(381): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "const union __m128i *"
Compress256_sse_31.c: copyTemp = _mm_load_si128(&hashState256(state)->gt;DoublePipe[12]);
Compress256_sse_31.c: ^
Compress256_sse_31.c:
Compress256_sse_31.c: Compress256_sse_31.c(382): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "union __m128i *"
Compress256_sse_31.c: ...

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

Compiler output

Implementation: crypto_hash/bmw256/opt31ssse3_asm64
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
wrapper.c: wrapper.c(37): warning #47: incompatible redefinition of macro "crypto_hash_BYTES" (declared at line 7 of "crypto_hash.h")
wrapper.c: #define crypto_hash_BYTES 32
wrapper.c: ^
wrapper.c:
wrapper.c: wrapper.c(238): warning #167: argument of type "u_int32_t={unsigned int} *" is incompatible with parameter of type "hashState *"
wrapper.c: Compress256(data32, data32 +16, CONST32final-4); // TODO: This is a HACK...
wrapper.c: ^
wrapper.c:

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