Implementation notes: amd64, h4atom, crypto_hash/bmw512

Computer: h4atom
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: bmw512
TimeImplementationCompilerBenchmark dateSUPERCOP version
13920optabeclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
13928optbbeclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
14248optc02clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
14280optc01clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
14496opt008_asm64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
14520opt008_asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
14528opt008_asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
14544opt008_asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
14768opt008_asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
15296optbgbeclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
15800optc04gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
15808sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
15864optc04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
15984optc04clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
16072optc03clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
16136optbbegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
16152optabegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
16376optc03gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
16384optc03gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
16416optbbegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
16416optc01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
16416optc02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
16424optbbegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
16424optc01gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
16432optc02gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
16464optabegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
16496optabegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
16528optc02gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
16536optc01gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
17248optbgbegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
17272optbgbegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
18592sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
18648optc04gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
18664sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
18792optc03gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
18840optbgbegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
19144optc04gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
19224optbbegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
19240optbgbegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
19256optabegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
19616optc02gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
19624optc01gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
19856optc03gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
21768sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
22064sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
24792sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
25296sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
27768sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
29872sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
32848sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
36920refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
37376refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
38048refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
43400refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
92616refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806

Compiler output

Implementation: crypto_hash/bmw512/optc01
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
BlueMidnightWish.c: BlueMidnightWish.c:1326:86: warning: '&' within '^' [-Wbitwise-op-parentheses]
BlueMidnightWish.c: hashState256(state)->gt;LastPart[LastByte] = hashState256(state)->gt;LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: BlueMidnightWish.c:1326:86: note: place parentheses around the '&' expression to silence this warning
BlueMidnightWish.c: hashState256(state)->gt;LastPart[LastByte] = hashState256(state)->gt;LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: BlueMidnightWish.c:1360:86: warning: '&' within '^' [-Wbitwise-op-parentheses]
BlueMidnightWish.c: hashState512(state)->gt;LastPart[LastByte] = hashState512(state)->gt;LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: BlueMidnightWish.c:1360:86: note: place parentheses around the '&' expression to silence this warning
BlueMidnightWish.c: hashState512(state)->gt;LastPart[LastByte] = hashState512(state)->gt;LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optc01 optc02

Compiler output

Implementation: crypto_hash/bmw512/optx86sse2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
BlueMidnightWish.c: BlueMidnightWish.c:390:44: warning: incompatible pointer types passing 'u_int64_t *' (aka 'unsigned long *') to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[00], _mm_load_si128(&hashState512(state)->gt;DoublePipe[0]));
BlueMidnightWish.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/emmintrin.h:1106:31: note: passing argument to parameter '__p' here
BlueMidnightWish.c: _mm_load_si128(__m128i const *__p)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:390:18: warning: incompatible pointer types passing 'u_int64_t *' (aka 'unsigned long *') to parameter of type '__m128i *' [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[00], _mm_load_si128(&hashState512(state)->gt;DoublePipe[0]));
BlueMidnightWish.c: ^~~~~~~~~
BlueMidnightWish.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/emmintrin.h:1226:26: note: passing argument to parameter '__p' here
BlueMidnightWish.c: _mm_store_si128(__m128i *__p, __m128i __b)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:391:44: warning: incompatible pointer types passing 'u_int64_t *' (aka 'unsigned long *') to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[02], _mm_load_si128(&hashState512(state)->gt;DoublePipe[2]));
BlueMidnightWish.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/emmintrin.h:1106:31: note: passing argument to parameter '__p' here
BlueMidnightWish.c: _mm_load_si128(__m128i const *__p)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:391:18: warning: incompatible pointer types passing 'u_int64_t *' (aka 'unsigned long *') to parameter of type '__m128i *' [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[02], _mm_load_si128(&hashState512(state)->gt;DoublePipe[2]));
BlueMidnightWish.c: ^~~~~~~~~
BlueMidnightWish.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/emmintrin.h:1226:26: note: passing argument to parameter '__p' here
BlueMidnightWish.c: _mm_store_si128(__m128i *__p, __m128i __b)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:392:44: warning: incompatible pointer types passing 'u_int64_t *' (aka 'unsigned long *') to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
BlueMidnightWish.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optx86sse2

Compiler output

Implementation: crypto_hash/bmw512/optc03
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
BlueMidnightWish.c: BlueMidnightWish.c:688:84: warning: '&' within '^' [-Wbitwise-op-parentheses]
BlueMidnightWish.c: hashState512(state)->gt;LastPart[LastByte] = hashState512(state)->gt;LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: BlueMidnightWish.c:688:84: note: place parentheses around the '&' expression to silence this warning
BlueMidnightWish.c: hashState512(state)->gt;LastPart[LastByte] = hashState512(state)->gt;LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optc03

Compiler output

Implementation: crypto_hash/bmw512/optc04
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
BlueMidnightWish.c: BlueMidnightWish.c:988:84: warning: '&' within '^' [-Wbitwise-op-parentheses]
BlueMidnightWish.c: hashState512_(state).LastPart[LastByte] = hashState512_(state).LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: BlueMidnightWish.c:988:84: note: place parentheses around the '&' expression to silence this warning
BlueMidnightWish.c: hashState512_(state).LastPart[LastByte] = hashState512_(state).LastPart[LastByte] & (0xff BlueMidnightWish.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BlueMidnightWish.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optc04

Compiler output

Implementation: crypto_hash/bmw512/opt008_asm64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
update.c: update.c:83:84: warning: '&' within '^' [-Wbitwise-op-parentheses]
update.c: hashState512_(state).LastPart[LastByte] = hashState512_(state).LastPart[LastByte] & (0xff update.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
update.c: update.c:83:84: note: place parentheses around the '&' expression to silence this warning
update.c: hashState512_(state).LastPart[LastByte] = hashState512_(state).LastPart[LastByte] & (0xff update.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
update.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments opt008_asm64

Compiler output

Implementation: crypto_hash/bmw512/optx86sse2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
BlueMidnightWish.c: BlueMidnightWish.c: In function 'Compress512':
BlueMidnightWish.c: BlueMidnightWish.c:390:44: warning: passing argument 1 of '_mm_load_si128' from incompatible pointer type [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[00], _mm_load_si128(&hashState512(state)->gt;DoublePipe[0]));
BlueMidnightWish.c: ^
BlueMidnightWish.c: In file included from BlueMidnightWish.c:12:0:
BlueMidnightWish.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:690:1: note: expected 'const __vector(2) long long int *' but argument is of type 'u_int64_t * {aka long unsigned int *}'
BlueMidnightWish.c: _mm_load_si128 (__m128i const *__P)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:390:18: warning: passing argument 1 of '_mm_store_si128' from incompatible pointer type [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[00], _mm_load_si128(&hashState512(state)->gt;DoublePipe[0]));
BlueMidnightWish.c: ^
BlueMidnightWish.c: In file included from BlueMidnightWish.c:12:0:
BlueMidnightWish.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:708:1: note: expected '__vector(2) long long int *' but argument is of type 'u_int64_t * {aka long unsigned int *}'
BlueMidnightWish.c: _mm_store_si128 (__m128i *__P, __m128i __B)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:391:44: warning: passing argument 1 of '_mm_load_si128' from incompatible pointer type [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[02], _mm_load_si128(&hashState512(state)->gt;DoublePipe[2]));
BlueMidnightWish.c: ^
BlueMidnightWish.c: In file included from BlueMidnightWish.c:12:0:
BlueMidnightWish.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:690:1: note: expected 'const __vector(2) long long int *' but argument is of type 'u_int64_t * {aka long unsigned int *}'
BlueMidnightWish.c: _mm_load_si128 (__m128i const *__P)
BlueMidnightWish.c: ^
BlueMidnightWish.c: BlueMidnightWish.c:391:18: warning: passing argument 1 of '_mm_store_si128' from incompatible pointer type [-Wincompatible-pointer-types]
BlueMidnightWish.c: _mm_store_si128(&p512[02], _mm_load_si128(&hashState512(state)->gt;DoublePipe[2]));
BlueMidnightWish.c: ^
BlueMidnightWish.c: ...

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