Implementation notes: amd64, utrecht, crypto_hash/blake512

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake512
TimeImplementationCompilerBenchmark dateSUPERCOP version
13185bswapgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
13743bswapgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
13842bswapgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
14058bswapgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
14634sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
14715sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
14733sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
15210regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
15957regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
16047regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
16326sandygcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
16353regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
16632sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
16812sandygcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
17064sandygcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
17352vect128gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
17460vect128gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
17775vect128gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
17991vect128gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18036vect128-inplacegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
18207vect128-inplacegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
18261sandygcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18504vect128-inplacegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
18783vect128-inplacegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18945sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
19782refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
20106sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
20115sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
20871refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
21762refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
22464sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
22887sse2sgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
22968sse2sgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
23112refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
23526sse2sgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
23760sse2sgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
24003ssse3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
24021ssse3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
24408ssse3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
24696ssse3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
31041sse2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
31158sse2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
31509sse2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
33255sse2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731

Test failure

Implementation: crypto_hash/blake512/avxicc
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111

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

Compiler output

Implementation: crypto_hash/blake512/sse41
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:8:0:
hash.c: hash.c: In function 'blake512_compress':
hash.c: rounds.h:131:4: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: t2 = _mm_blend_epi16(m1, m6, 0xF0); \
hash.c: ^
hash.c: rounds.h:861:3: note: in expansion of macro 'LOAD_MSG_2_2'
hash.c: LOAD_MSG_ ##r ##_2(b0, b1); \
hash.c: ^
hash.c: hash.c:119:3: note: in expansion of macro 'ROUND'
hash.c: ROUND( 2);
hash.c: ^
hash.c: rounds.h:140:4: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: t0 = _mm_blend_epi16(m5, m1, 0xF0); \
hash.c: ^
hash.c: rounds.h:864:3: note: in expansion of macro 'LOAD_MSG_2_3'
hash.c: LOAD_MSG_ ##r ##_3(b0, b1); \
hash.c: ^
hash.c: hash.c:119:3: note: in expansion of macro 'ROUND'
hash.c: ROUND( 2);
hash.c: ^
hash.c: rounds.h:188:4: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: t0 = _mm_blend_epi16(m1, m2, 0xF0); \
hash.c: ^
hash.c: rounds.h:864:3: note: in expansion of macro 'LOAD_MSG_3_3'
hash.c: LOAD_MSG_ ##r ##_3(b0, b1); \
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake512_compress':
hash.c: hash.c:81:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m0 = BSWAP64(m0);
hash.c: ^
hash.c: hash.c:82:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m1 = BSWAP64(m1);
hash.c: ^
hash.c: hash.c:83:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m2 = BSWAP64(m2);
hash.c: ^
hash.c: hash.c:84:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m3 = BSWAP64(m3);
hash.c: ^
hash.c: hash.c:85:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m4 = BSWAP64(m4);
hash.c: ^
hash.c: hash.c:86:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m5 = BSWAP64(m5);
hash.c: ^
hash.c: hash.c:87:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m6 = BSWAP64(m6);
hash.c: ^
hash.c: hash.c:88:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m7 = BSWAP64(m7);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop-2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake512_compress':
hash.c: hash.c:92:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[0] = BSWAP64(m.u128[0]);
hash.c: ^
hash.c: hash.c:93:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[1] = BSWAP64(m.u128[1]);
hash.c: ^
hash.c: hash.c:94:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[2] = BSWAP64(m.u128[2]);
hash.c: ^
hash.c: hash.c:95:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[3] = BSWAP64(m.u128[3]);
hash.c: ^
hash.c: hash.c:96:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[4] = BSWAP64(m.u128[4]);
hash.c: ^
hash.c: hash.c:97:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[5] = BSWAP64(m.u128[5]);
hash.c: ^
hash.c: hash.c:98:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[6] = BSWAP64(m.u128[6]);
hash.c: ^
hash.c: hash.c:99:13: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: m.u128[7] = BSWAP64(m.u128[7]);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128-xop
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
vector.c: In file included from vector.c:7:0:
vector.c: vector.c: In function 'round512':
vector.c: vector.h:38:18: error: incompatible types when initializing type 'v64' using type 'int'
vector.c: #define V3264(x) (x)
vector.c: ^
vector.c: vector.h:202:18: note: in expansion of macro 'V3264'
vector.c: #define V864(x) V3264((V1632(V816(x))))
vector.c: ^
vector.c: vector.h:153:22: note: in expansion of macro 'V864'
vector.c: #define v64_lswap(x) V864(vector_shuffle(V648(x), v64_swap_endianness.v8))
vector.c: ^
vector.c: vector.c:646:13: note: in expansion of macro 'v64_lswap'
vector.c: v64 mm0 = v64_lswap(MM[0]), mm1 = v64_lswap(MM[1]);
vector.c: ^
vector.c: vector.h:38:18: error: incompatible types when initializing type 'v64' using type 'int'
vector.c: #define V3264(x) (x)
vector.c: ^
vector.c: vector.h:202:18: note: in expansion of macro 'V3264'
vector.c: #define V864(x) V3264((V1632(V816(x))))
vector.c: ^
vector.c: vector.h:153:22: note: in expansion of macro 'V864'
vector.c: #define v64_lswap(x) V864(vector_shuffle(V648(x), v64_swap_endianness.v8))
vector.c: ^
vector.c: vector.c:646:37: note: in expansion of macro 'v64_lswap'
vector.c: v64 mm0 = v64_lswap(MM[0]), mm1 = v64_lswap(MM[1]);
vector.c: ...

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