Implementation notes: amd64, wintermute, crypto_hash/bmw256

Computer: wintermute
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_hash
Primitive: bmw256
TimeImplementationCompilerBenchmark dateSUPERCOP version
7884core_i7_45nm/x86-64/sse4_v1clang -O3 -mavx2014050820140505
7884core_i7_45nm/x86-64/sse4_v1clang -O3 -mavx22014050820140505
7888core_i7_45nm/x86-64/sse4_v1clang -O32014050820140505
7904core_2_45nm/x86-64/sse4_v1clang -O32014050820140505
7904core_2_45nm/x86-64/sse4_v1clang -O3 -mavx22014050820140505
7912core_2_45nm/x86-64/sse4_v1clang -O3 -mavx2014050820140505
7932core_i7_45nm/x86-64/sse4_v1cc2014050820140505
7964core_2_45nm/x86-64/sse4_v1cc2014050820140505
8352core_2_65nm/x86-64/ssse3_v1clang -O3 -mavx22014050820140505
8368core_2_65nm/x86-64/ssse3_v1clang -O32014050820140505
8368core_2_65nm/x86-64/ssse3_v1clang -O3 -mavx2014050820140505
8388core_2_65nm/x86-64/ssse3_v1cc2014050820140505
8396opt29_v5_ssse3_asm64clang -O32014050820140505
8400opt29_v5_ssse3_asm64clang -O3 -mavx2014050820140505
8404opt29_v5_ssse3_asm64clang -O3 -mavx22014050820140505
8436opt29_v5_ssse3_asm64cc2014050820140505
8540amd_k10/x86-64/sse2clang -O32014050820140505
8548amd_k10/x86-64/sse2clang -O3 -mavx22014050820140505
8552amd_k10/x86-64/sse2clang -O3 -mavx2014050820140505
8584amd_k10/x86-64/sse2cc2014050820140505
8756opt31ssse3_asm64clang -O3 -mavx2014050820140505
8780opt31ssse3_asm64clang -O3 -mavx22014050820140505
10544amd_k8/x86-64/noSSEclang -O3 -mavx22014050820140505
10588amd_k8/x86-64/noSSEcc2014050820140505
10592amd_k8/x86-64/noSSEclang -O32014050820140505
10620amd_k8/x86-64/noSSEclang -O3 -mavx2014050820140505
12828optbgbeclang -O32014050820140505
13352optbgbeclang -O3 -mavx22014050820140505
13368optbgbeclang -O3 -mavx2014050820140505
13576optbbeclang -O3 -mavx2014050820140505
13604optbbeclang -O32014050820140505
13640optbbeclang -O3 -mavx22014050820140505
13652optabeclang -O3 -mavx2014050820140505
13656optc01clang -O3 -mavx22014050820140505
13672optc01clang -O3 -mavx2014050820140505
13672optabeclang -O3 -mavx22014050820140505
13676optabeclang -O32014050820140505
13728optc01clang -O32014050820140505
15040optc02clang -O32014050820140505
15040optc02clang -O3 -mavx2014050820140505
15080optc02clang -O3 -mavx22014050820140505
15160optc03clang -O3 -mavx22014050820140505
15220optc03clang -O32014050820140505
15244optc03clang -O3 -mavx2014050820140505
15408optc04clang -O3 -mavx22014050820140505
15448optc04clang -O32014050820140505
15448optc04clang -O3 -mavx2014050820140505
16248sphlibclang -O3 -mavx2014050820140505
16344sphlibclang -O32014050820140505
16356sphlibclang -O3 -mavx22014050820140505
19380sphlib-smallclang -O3 -mavx2014050820140505
19392sphlib-smallclang -O32014050820140505
19528sphlib-smallclang -O3 -mavx22014050820140505
21296optc01cc2014050820140505
21580optbbecc2014050820140505
21792optabecc2014050820140505
27908refclang -O3 -mavx2014050820140505
29516refclang -O3 -mavx22014050820140505
29740refclang -O32014050820140505
33184optbgbecc2014050820140505
33504optc03cc2014050820140505
34808optc02cc2014050820140505
39340optc04cc2014050820140505
58480sphlib-smallcc2014050820140505
87900refcc2014050820140505
118772sphlibcc2014050820140505

Compiler output

Implementation: crypto_hash/bmw256/amd_k10/x86-64/sse2
Compiler: cc
Compress256.s: cc: warning: argument unused during compilation: '-D SUPERCOP'
Compress256.s: cc: warning: argument unused during compilation: '-I .'
Compress256.s: cc: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
cc amd_k10/x86-64/sse2 core_2_45nm/x86-64/sse4_v1 core_2_65nm/x86-64/ssse3_v1 core_i7_45nm/x86-64/sse4_v1 opt29_v5_ssse3_asm64

Compiler output

Implementation: crypto_hash/bmw256/amd_k8/x86-64/noSSE
Compiler: cc
Compress256_icc.s: cc: warning: argument unused during compilation: '-D SUPERCOP'
Compress256_icc.s: cc: warning: argument unused during compilation: '-I .'
Compress256_icc.s: cc: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc amd_k8/x86-64/noSSE

Compiler output

Implementation: crypto_hash/bmw256/optc31ssse3
Compiler: cc
Compress256_sse_31.c: Compress256_sse_31.c:1572:2: error: "This version need SSSE3"
Compress256_sse_31.c: #error "This version need SSSE3"
Compress256_sse_31.c: ^
Compress256_sse_31.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
cc optc31ssse3
clang -O3 optc31ssse3

Compiler output

Implementation: crypto_hash/bmw256/opt31ssse3_asm64
Compiler: cc
wrapper.c: wrapper.c:25:2: error: "This version need SSSE3"
wrapper.c: #error "This version need SSSE3"
wrapper.c: ^
wrapper.c: wrapper.c:37:9: warning: 'crypto_hash_BYTES' macro redefined
wrapper.c: #define crypto_hash_BYTES 32
wrapper.c: ^
wrapper.c: ./crypto_hash.h:7:9: note: previous definition is here
wrapper.c: #define crypto_hash_BYTES crypto_hash_bmw256_BYTES
wrapper.c: ^
wrapper.c: wrapper.c:39:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ~~~~~~ ^
wrapper.c: wrapper.c:238:34: warning: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type 'hashState *' [-Wincompatible-pointer-types]
wrapper.c: Compress256(data32, data32 +16, CONST32final-4); // TODO: This is a HACK...
wrapper.c: ^~~~~~~~~~~~~~
wrapper.c: wrapper.c:39:73: note: passing argument to parameter 'state' here
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ^
wrapper.c: 3 warnings and 1 error generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
cc opt31ssse3_asm64
clang -O3 opt31ssse3_asm64

Compiler output

Implementation: crypto_hash/bmw256/amd_k10/x86-64/sse2
Compiler: clang -O3
Compress256.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256.s: clang: warning: argument unused during compilation: '-I .'
Compress256.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 amd_k10/x86-64/sse2 core_2_45nm/x86-64/sse4_v1 core_2_65nm/x86-64/ssse3_v1 core_i7_45nm/x86-64/sse4_v1 opt29_v5_ssse3_asm64

Compiler output

Implementation: crypto_hash/bmw256/amd_k8/x86-64/noSSE
Compiler: clang -O3
Compress256_icc.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256_icc.s: clang: warning: argument unused during compilation: '-I .'
Compress256_icc.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 amd_k8/x86-64/noSSE

Compiler output

Implementation: crypto_hash/bmw256/amd_k10/x86-64/sse2
Compiler: clang -O3 -mavx
Compress256.s: clang: warning: argument unused during compilation: '-mavx'
Compress256.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256.s: clang: warning: argument unused during compilation: '-I .'
Compress256.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -mavx amd_k10/x86-64/sse2 core_2_45nm/x86-64/sse4_v1 core_2_65nm/x86-64/ssse3_v1 core_i7_45nm/x86-64/sse4_v1 opt29_v5_ssse3_asm64

Compiler output

Implementation: crypto_hash/bmw256/amd_k8/x86-64/noSSE
Compiler: clang -O3 -mavx
Compress256_icc.s: clang: warning: argument unused during compilation: '-mavx'
Compress256_icc.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256_icc.s: clang: warning: argument unused during compilation: '-I .'
Compress256_icc.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -mavx amd_k8/x86-64/noSSE

Compiler output

Implementation: crypto_hash/bmw256/optc31ssse3
Compiler: clang -O3 -mavx
Compress256_sse_31.c: Compress256_sse_31.c:374:18: warning: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type '__m128i *' [-Wincompatible-pointer-types]
Compress256_sse_31.c: _mm_store_si128(&p256[00], copyTemp);
Compress256_sse_31.c: ^~~~~~~~~
Compress256_sse_31.c: /usr/include/clang/3.3/emmintrin.h:1169:26: note: passing argument to parameter '__p' here
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: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
Compress256_sse_31.c: copyTemp = _mm_load_si128(&hashState256(state)->gt;DoublePipe[ 4]);
Compress256_sse_31.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compress256_sse_31.c: /usr/include/clang/3.3/emmintrin.h:1055:31: note: passing argument to parameter '__p' here
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: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type '__m128i *' [-Wincompatible-pointer-types]
Compress256_sse_31.c: _mm_store_si128(&p256[04], copyTemp);
Compress256_sse_31.c: ^~~~~~~~~
Compress256_sse_31.c: /usr/include/clang/3.3/emmintrin.h:1169:26: note: passing argument to parameter '__p' here
Compress256_sse_31.c: _mm_store_si128(__m128i *__p, __m128i __b)
Compress256_sse_31.c: ^
Compress256_sse_31.c: Compress256_sse_31.c:379:28: warning: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
Compress256_sse_31.c: copyTemp = _mm_load_si128(&hashState256(state)->gt;DoublePipe[ 8]);
Compress256_sse_31.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compress256_sse_31.c: /usr/include/clang/3.3/emmintrin.h:1055:31: note: passing argument to parameter '__p' here
Compress256_sse_31.c: _mm_load_si128(__m128i const *__p)
Compress256_sse_31.c: ^
Compress256_sse_31.c: Compress256_sse_31.c:380:18: warning: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type '__m128i *' [-Wincompatible-pointer-types]
Compress256_sse_31.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -mavx optc31ssse3
clang -O3 -mavx2 optc31ssse3

Compiler output

Implementation: crypto_hash/bmw256/opt31ssse3_asm64
Compiler: clang -O3 -mavx
wrapper.c: wrapper.c:37:9: warning: 'crypto_hash_BYTES' macro redefined
wrapper.c: #define crypto_hash_BYTES 32
wrapper.c: ^
wrapper.c: ./crypto_hash.h:7:9: note: previous definition is here
wrapper.c: #define crypto_hash_BYTES crypto_hash_bmw256_BYTES
wrapper.c: ^
wrapper.c: wrapper.c:39:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ~~~~~~ ^
wrapper.c: wrapper.c:238:34: warning: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type 'hashState *' [-Wincompatible-pointer-types]
wrapper.c: Compress256(data32, data32 +16, CONST32final-4); // TODO: This is a HACK...
wrapper.c: ^~~~~~~~~~~~~~
wrapper.c: wrapper.c:39:73: note: passing argument to parameter 'state' here
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ^
wrapper.c: 3 warnings generated.
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-mavx'
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-I .'
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -mavx opt31ssse3_asm64

Compiler output

Implementation: crypto_hash/bmw256/amd_k10/x86-64/sse2
Compiler: clang -O3 -mavx2
Compress256.s: clang: warning: argument unused during compilation: '-mavx2'
Compress256.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256.s: clang: warning: argument unused during compilation: '-I .'
Compress256.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -mavx2 amd_k10/x86-64/sse2 core_2_45nm/x86-64/sse4_v1 core_2_65nm/x86-64/ssse3_v1 core_i7_45nm/x86-64/sse4_v1 opt29_v5_ssse3_asm64

Compiler output

Implementation: crypto_hash/bmw256/amd_k8/x86-64/noSSE
Compiler: clang -O3 -mavx2
Compress256_icc.s: clang: warning: argument unused during compilation: '-mavx2'
Compress256_icc.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256_icc.s: clang: warning: argument unused during compilation: '-I .'
Compress256_icc.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -mavx2 amd_k8/x86-64/noSSE

Compiler output

Implementation: crypto_hash/bmw256/opt31ssse3_asm64
Compiler: clang -O3 -mavx2
wrapper.c: wrapper.c:37:9: warning: 'crypto_hash_BYTES' macro redefined
wrapper.c: #define crypto_hash_BYTES 32
wrapper.c: ^
wrapper.c: ./crypto_hash.h:7:9: note: previous definition is here
wrapper.c: #define crypto_hash_BYTES crypto_hash_bmw256_BYTES
wrapper.c: ^
wrapper.c: wrapper.c:39:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ~~~~~~ ^
wrapper.c: wrapper.c:238:34: warning: incompatible pointer types passing 'u_int32_t *' (aka 'unsigned int *') to parameter of type 'hashState *' [-Wincompatible-pointer-types]
wrapper.c: Compress256(data32, data32 +16, CONST32final-4); // TODO: This is a HACK...
wrapper.c: ^~~~~~~~~~~~~~
wrapper.c: wrapper.c:39:73: note: passing argument to parameter 'state' here
wrapper.c: extern Compress256(u_int32_t *data32, u_int32_t *data32_end, hashState *state);
wrapper.c: ^
wrapper.c: 3 warnings generated.
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-mavx2'
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-I .'
Compress256_sse_31_O1.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -mavx2 opt31ssse3_asm64