Implementation notes: amd64, tueisecgern, crypto_hash/bmw256

Computer: tueisecgern
Architecture: amd64
CPU ID: GenuineIntel-000306f2-bfebfbff
SUPERCOP version: 20160724
Operation: crypto_hash
Primitive: bmw256
TimeImplementationCompilerBenchmark dateSUPERCOP version
7124core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
7415core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
7427core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
7621amd_k10/x86-64/sse2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
7682opt31ssse3_asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
7728opt31ssse3_asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
7854opt31ssse3_asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
9289amd_k8/x86-64/noSSEgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
9298amd_k8/x86-64/noSSEgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
10626optc01gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
10807optc04gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
10835optc03gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
11037core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
11279sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
11365optc04gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
11436optbbegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
11438optbbegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
11497sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
11767opt29_v5_ssse3_asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
11941optc03gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
12163amd_k10/x86-64/sse2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
12187sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
12190core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
12211optc02gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
12309opt29_v5_ssse3_asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
12512core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
12690core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
12773core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
12798amd_k10/x86-64/sse2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
12855core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
13015sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
13046core_2_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
13242amd_k10/x86-64/sse2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
13294core_2_65nm/x86-64/ssse3_v1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
13365opt29_v5_ssse3_asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
13429opt29_v5_ssse3_asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
13524core_i7_45nm/x86-64/sse4_v1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
15149opt31ssse3_asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
16624optc01gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
19804amd_k8/x86-64/noSSEgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
20007amd_k8/x86-64/noSSEgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
20261optbgbegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
20933sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
20976optbbegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
21016optabegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
21141optabegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
21323optbbegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
21353optabegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
22037optc04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
22386optabegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
22632optc01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
22835optc01gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
23028optc04gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
23212optbgbegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
23279optc02gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
23543optc03gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
23567optbgbegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
23662optbgbegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
24478sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
25141optc02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
25159optc02gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
26321sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
26757optc03gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
29044sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718
30976refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072220160718
32120refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072220160718
38830refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072220160718
53473refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072220160718

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:2: warning: passing argument 1 of '_mm_store_si128' from incompatible pointer type [enabled by default]
Compress256_sse_31.c: _mm_store_si128(&p256[00], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/pmmintrin.h:35:0,
Compress256_sse_31.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/tmmintrin.h:35,
Compress256_sse_31.c: from Compress256_sse_31.c:12:
Compress256_sse_31.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:694:1: note: expected '__vector(2) long long int *' but argument is of type 'u_int32_t *'
Compress256_sse_31.c: _mm_store_si128 (__m128i *__P, __m128i __B)
Compress256_sse_31.c: ^
Compress256_sse_31.c: Compress256_sse_31.c:377:2: warning: passing argument 1 of '_mm_load_si128' from incompatible pointer type [enabled by default]
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/lib/gcc/x86_64-linux-gnu/4.8/include/pmmintrin.h:35:0,
Compress256_sse_31.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/tmmintrin.h:35,
Compress256_sse_31.c: from Compress256_sse_31.c:12:
Compress256_sse_31.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:676:1: note: expected 'const __vector(2) long long int *' but argument is of type 'u_int32_t *'
Compress256_sse_31.c: _mm_load_si128 (__m128i const *__P)
Compress256_sse_31.c: ^
Compress256_sse_31.c: Compress256_sse_31.c:378:2: warning: passing argument 1 of '_mm_store_si128' from incompatible pointer type [enabled by default]
Compress256_sse_31.c: _mm_store_si128(&p256[04], copyTemp);
Compress256_sse_31.c: ^
Compress256_sse_31.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/pmmintrin.h:35:0,
Compress256_sse_31.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/tmmintrin.h:35,
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 [enabled by default]
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: In function 'crypto_hash_bmw256_opt31ssse3_asm64':
wrapper.c: wrapper.c:238:2: warning: passing argument 3 of 'Compress256' from incompatible pointer type [enabled by default]
wrapper.c: Compress256(data32, data32 +16, CONST32final-4); // TODO: This is a HACK...
wrapper.c: ^
wrapper.c: wrapper.c:39:8: note: expected 'struct hashState *' but argument is of type 'u_int32_t *'
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