Implementation notes: amd64, wintermute, crypto_hash/blake512

Computer: wintermute
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_hash
Primitive: blake512
TimeImplementationCompilerBenchmark dateSUPERCOP version
9816sse41clang -O3 -mavx2014050820140505
9824sse41clang -O3 -mavx22014050820140505
10132ssse3clang -O3 -mavx22014050820140505
10156ssse3clang -O3 -mavx2014050820140505
10724sse2sclang -O3 -mavx22014050820140505
10728sse2sclang -O3 -mavx2014050820140505
10764sse2sclang -O32014050820140505
11448sandyclang -O32014050820140505
11460sandyclang -O3 -mavx2014050820140505
11464sandyclang -O3 -mavx22014050820140505
12072bswapclang -O32014050820140505
12084bswapclang -O3 -mavx2014050820140505
12092bswapclang -O3 -mavx22014050820140505
12628sse2clang -O3 -mavx2014050820140505
12648sse2clang -O3 -mavx22014050820140505
12980sse2clang -O32014050820140505
13568regsclang -O3 -mavx22014050820140505
13580regsclang -O3 -mavx2014050820140505
13600regsclang -O32014050820140505
14772sphlibclang -O3 -mavx2014050820140505
14820sphlibclang -O3 -mavx22014050820140505
14828sphlibclang -O32014050820140505
17236sphlib-smallclang -O32014050820140505
17372sphlib-smallclang -O3 -mavx22014050820140505
17396sphlib-smallclang -O3 -mavx2014050820140505
22724refclang -O3 -mavx22014050820140505
22732refclang -O3 -mavx2014050820140505
23020refclang -O32014050820140505
57328sphlibcc2014050820140505
57888bswapcc2014050820140505
59784regscc2014050820140505
70268refcc2014050820140505
73340sphlib-smallcc2014050820140505
81216sandycc2014050820140505
139552sse2cc2014050820140505
164948sse2scc2014050820140505

Compiler output

Implementation: crypto_hash/blake512/ssse3
Compiler: cc
hash.c: In file included from hash.c:4:
hash.c: /usr/include/clang/3.3/tmmintrin.h:28:2: error: "SSSE3 instruction set not enabled"
hash.c: #error "SSSE3 instruction set not enabled"
hash.c: ^
hash.c: hash.c:141:15: warning: implicit declaration of function '_mm_shuffle_epi8' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: m.u128[0] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to64);
hash.c: ^
hash.c: hash.c:141:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[0] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to64);
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:142:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[1] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to64);
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:143:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[2] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 32)), u8to64);
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:144:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[3] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 48)), u8to64);
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:145:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[4] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 64)), u8to64);
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:146:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[5] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 80)), u8to64);
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop
Compiler: cc
hash.c: hash.c:81:8: warning: implicit declaration of function '_mm_perm_epi8' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: m0 = BSWAP64(m0);
hash.c: ^
hash.c: ./rounds.h:13:21: note: expanded from macro 'BSWAP64'
hash.c: #define BSWAP64(x) _mm_perm_epi8((x),(x),u8to64)
hash.c: ^
hash.c: hash.c:81:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m0 = BSWAP64(m0);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:82:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m1 = BSWAP64(m1);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:83:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m2 = BSWAP64(m2);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:84:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m3 = BSWAP64(m3);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:85:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m4 = BSWAP64(m4);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:86:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m5 = BSWAP64(m5);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:87:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
cc xop
clang -O3 xop
clang -O3 -mavx xop
clang -O3 -mavx2 xop

Compiler output

Implementation: crypto_hash/blake512/sse41
Compiler: cc
hash.c: hash.c:81:8: warning: implicit declaration of function '_mm_shuffle_epi8' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: m0 = BSWAP64(m0);
hash.c: ^
hash.c: ./rounds.h:6:21: note: expanded from macro 'BSWAP64'
hash.c: #define BSWAP64(x) _mm_shuffle_epi8((x), u8to64)
hash.c: ^
hash.c: hash.c:81:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m0 = BSWAP64(m0);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:82:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m1 = BSWAP64(m1);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:83:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m2 = BSWAP64(m2);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:84:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m3 = BSWAP64(m3);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:85:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m4 = BSWAP64(m4);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:86:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m5 = BSWAP64(m5);
hash.c: ^ ~~~~~~~~~~~
hash.c: hash.c:87:6: error: assigning to '__m128i' from incompatible type 'int'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop-2
Compiler: cc
hash.c: hash.c:92:15: warning: implicit declaration of function '_mm_perm_epi8' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: m.u128[0] = BSWAP64(m.u128[0]);
hash.c: ^
hash.c: ./rounds.h:15:21: note: expanded from macro 'BSWAP64'
hash.c: #define BSWAP64(x) _mm_perm_epi8((x),(x),u8to64)
hash.c: ^
hash.c: hash.c:92:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[0] = BSWAP64(m.u128[0]);
hash.c: ^ ~~~~~~~~~~~~~~~~~~
hash.c: hash.c:93:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[1] = BSWAP64(m.u128[1]);
hash.c: ^ ~~~~~~~~~~~~~~~~~~
hash.c: hash.c:94:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[2] = BSWAP64(m.u128[2]);
hash.c: ^ ~~~~~~~~~~~~~~~~~~
hash.c: hash.c:95:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[3] = BSWAP64(m.u128[3]);
hash.c: ^ ~~~~~~~~~~~~~~~~~~
hash.c: hash.c:96:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[4] = BSWAP64(m.u128[4]);
hash.c: ^ ~~~~~~~~~~~~~~~~~~
hash.c: hash.c:97:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: m.u128[5] = BSWAP64(m.u128[5]);
hash.c: ^ ~~~~~~~~~~~~~~~~~~
hash.c: hash.c:98:13: error: assigning to '__m128i' from incompatible type 'int'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/avxicc
Compiler: cc
hash.s: cc: warning: argument unused during compilation: '-D SUPERCOP'
hash.s: cc: warning: argument unused during compilation: '-I .'
hash.s: cc: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'
hash.s: hash.s:395828:58: error: unexpected token in argument list
hash.s: vmovdqu xmm0, XMMWORD PTR .L_2il0floatpacket.13[rip] #244.3
hash.s: ^
hash.s: hash.s:395830:58: error: unexpected token in argument list
hash.s: vmovdqu xmm1, XMMWORD PTR .L_2il0floatpacket.14[rip] #244.3
hash.s: ^
hash.s: hash.s:395831:58: error: unexpected token in argument list
hash.s: vmovdqu xmm2, XMMWORD PTR .L_2il0floatpacket.15[rip] #244.3
hash.s: ^
hash.s: hash.s:395832:58: error: unexpected token in argument list
hash.s: vmovdqu xmm3, XMMWORD PTR .L_2il0floatpacket.16[rip] #244.3
hash.s: ^
hash.s: hash.s:395915:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395927:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395933:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0+1 #246.3
hash.s: ^
hash.s: hash.s:395981:58: error: unexpected token in argument list
hash.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc avxicc

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: cc
vector.c: vector.c:4:10: fatal error: 'alloca.h' file not found
vector.c: #include gt;
vector.c: ^
vector.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
cc vect128 vect128-inplace vect128-xop
clang -O3 vect128 vect128-inplace vect128-xop
clang -O3 -mavx vect128 vect128-inplace vect128-xop
clang -O3 -mavx2 vect128 vect128-inplace vect128-xop

Compiler output

Implementation: crypto_hash/blake512/avxicc
Compiler: clang -O3
hash.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
hash.s: clang: warning: argument unused during compilation: '-I .'
hash.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'
hash.s: hash.s:395828:58: error: unexpected token in argument list
hash.s: vmovdqu xmm0, XMMWORD PTR .L_2il0floatpacket.13[rip] #244.3
hash.s: ^
hash.s: hash.s:395830:58: error: unexpected token in argument list
hash.s: vmovdqu xmm1, XMMWORD PTR .L_2il0floatpacket.14[rip] #244.3
hash.s: ^
hash.s: hash.s:395831:58: error: unexpected token in argument list
hash.s: vmovdqu xmm2, XMMWORD PTR .L_2il0floatpacket.15[rip] #244.3
hash.s: ^
hash.s: hash.s:395832:58: error: unexpected token in argument list
hash.s: vmovdqu xmm3, XMMWORD PTR .L_2il0floatpacket.16[rip] #244.3
hash.s: ^
hash.s: hash.s:395915:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395927:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395933:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0+1 #246.3
hash.s: ^
hash.s: hash.s:395981:58: error: unexpected token in argument list
hash.s: ...

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

Compiler output

Implementation: crypto_hash/blake512/avxicc
Compiler: clang -O3 -mavx
hash.s: clang: warning: argument unused during compilation: '-mavx'
hash.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
hash.s: clang: warning: argument unused during compilation: '-I .'
hash.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'
hash.s: hash.s:395828:58: error: unexpected token in argument list
hash.s: vmovdqu xmm0, XMMWORD PTR .L_2il0floatpacket.13[rip] #244.3
hash.s: ^
hash.s: hash.s:395830:58: error: unexpected token in argument list
hash.s: vmovdqu xmm1, XMMWORD PTR .L_2il0floatpacket.14[rip] #244.3
hash.s: ^
hash.s: hash.s:395831:58: error: unexpected token in argument list
hash.s: vmovdqu xmm2, XMMWORD PTR .L_2il0floatpacket.15[rip] #244.3
hash.s: ^
hash.s: hash.s:395832:58: error: unexpected token in argument list
hash.s: vmovdqu xmm3, XMMWORD PTR .L_2il0floatpacket.16[rip] #244.3
hash.s: ^
hash.s: hash.s:395915:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395927:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395933:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0+1 #246.3
hash.s: ^
hash.s: ...

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

Compiler output

Implementation: crypto_hash/blake512/avxicc
Compiler: clang -O3 -mavx2
hash.s: clang: warning: argument unused during compilation: '-mavx2'
hash.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
hash.s: clang: warning: argument unused during compilation: '-I .'
hash.s: clang: warning: argument unused during compilation: '-I /home/dch/tmp/supercop-20140505/supercop-data/wintermute/amd64/include'
hash.s: hash.s:395828:58: error: unexpected token in argument list
hash.s: vmovdqu xmm0, XMMWORD PTR .L_2il0floatpacket.13[rip] #244.3
hash.s: ^
hash.s: hash.s:395830:58: error: unexpected token in argument list
hash.s: vmovdqu xmm1, XMMWORD PTR .L_2il0floatpacket.14[rip] #244.3
hash.s: ^
hash.s: hash.s:395831:58: error: unexpected token in argument list
hash.s: vmovdqu xmm2, XMMWORD PTR .L_2il0floatpacket.15[rip] #244.3
hash.s: ^
hash.s: hash.s:395832:58: error: unexpected token in argument list
hash.s: vmovdqu xmm3, XMMWORD PTR .L_2il0floatpacket.16[rip] #244.3
hash.s: ^
hash.s: hash.s:395915:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395927:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0 #246.3
hash.s: ^
hash.s: hash.s:395933:31: error: unexpected token in argument list
hash.s: mov esi, offset flat: padding.0+1 #246.3
hash.s: ^
hash.s: ...

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