Implementation notes: x86, thoth, crypto_hash/blake512

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake512
TimeImplementationCompilerBenchmark dateSUPERCOP version
63878bswapclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
65136regsclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
83473refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
87243sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
87516sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
99019bswapgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
99026bswapgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
99049regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
99453regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
103665bswapgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
105465bswapgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
105688regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
106356regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
123131sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
126449sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
132658sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
133009sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
134255refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
136299sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
136820sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
139407refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
142687sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
145192refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
146082sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
147470refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_hash/blake512/sse41
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:8:
hash.c: ./rounds.h:8:10: warning: '_mm_roti_epi64' macro redefined [-Wmacro-redefined]
hash.c: #define _mm_roti_epi64(x, c) \
hash.c: ^
hash.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/xopintrin.h:249:9: note: previous definition is here
hash.c: #define _mm_roti_epi64(A, N) __extension__ ({ \
hash.c: ^
hash.c: hash.c:152:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[0] = _mm_set_epi64x(0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL);
hash.c: ^
hash.c: hash.c:153:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[1] = _mm_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL);
hash.c: ^
hash.c: hash.c:154:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[2] = _mm_set_epi64x(0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
hash.c: ^
hash.c: hash.c:155:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[3] = _mm_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL);
hash.c: ^
hash.c: hash.c:65:23: error: always_inline function '_mm_setr_epi8' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r16 = _mm_setr_epi8(2,3,4,5,6,7,0,1,10,11,12,13,14,15,8,9);
hash.c: ^
hash.c: hash.c:66:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to64 = _mm_set_epi8(8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop-2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:124:3: warning: implicit declaration of function '_mm_extract_epi64' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: ROUND( 0);
hash.c: ^
hash.c: ./rounds.h:828:3: note: expanded from macro 'ROUND'
hash.c: DIAGONALIZE(row1l,row2l,row3l,row4l,row1hl,row1hh,row2hl,row2hh,row3hl,row3hh,row4hl,row4hh); \
hash.c: ^
hash.c: ./rounds.h:778:11: note: expanded from macro 'DIAGONALIZE'
hash.c: row4hl = _mm_extract_epi64(row4l, 1); \
hash.c: ^
hash.c: hash.c:124:3: warning: implicit declaration of function '_mm_cvtsi64_si128' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: ./rounds.h:828:3: note: expanded from macro 'ROUND'
hash.c: DIAGONALIZE(row1l,row2l,row3l,row4l,row1hl,row1hh,row2hl,row2hh,row3hl,row3hh,row4hl,row4hh); \
hash.c: ^
hash.c: ./rounds.h:780:11: note: expanded from macro 'DIAGONALIZE'
hash.c: t0 = _mm_cvtsi64_si128(u1); \
hash.c: ^
hash.c: hash.c:124:3: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
hash.c: ROUND( 0);
hash.c: ^~~~~~~~~
hash.c: ./rounds.h:828:3: note: expanded from macro 'ROUND'
hash.c: DIAGONALIZE(row1l,row2l,row3l,row4l,row1hl,row1hh,row2hl,row2hh,row3hl,row3hh,row4hl,row4hh); \
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: ./rounds.h:780:9: note: expanded from macro 'DIAGONALIZE'
hash.c: t0 = _mm_cvtsi64_si128(u1); \
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/sse2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:125:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[0] = LOADU(datablock + 0);
hash.c: ^
hash.c: hash.c:29:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:126:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[1] = LOADU(datablock + 16);
hash.c: ^
hash.c: hash.c:29:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:127:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[2] = LOADU(datablock + 32);
hash.c: ^
hash.c: hash.c:29:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:128:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[3] = LOADU(datablock + 48);
hash.c: ^
hash.c: hash.c:29:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:129:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/sse2s
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:128:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[0] = LOADU(datablock + 0);
hash.c: ^
hash.c: hash.c:31:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:129:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[1] = LOADU(datablock + 16);
hash.c: ^
hash.c: hash.c:31:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:130:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[2] = LOADU(datablock + 32);
hash.c: ^
hash.c: hash.c:31:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:131:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[3] = LOADU(datablock + 48);
hash.c: ^
hash.c: hash.c:31:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:132:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:152:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[0] = _mm_set_epi64x(0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL);
hash.c: ^
hash.c: hash.c:153:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[1] = _mm_set_epi64x(0xA54FF53A5F1D36F1ULL, 0x3C6EF372FE94F82BULL);
hash.c: ^
hash.c: hash.c:154:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[2] = _mm_set_epi64x(0x9B05688C2B3E6C1FULL, 0x510E527FADE682D1ULL);
hash.c: ^
hash.c: hash.c:155:13: error: always_inline function '_mm_set_epi64x' requires target feature 'sse2', but would be inlined into function 'blake512_init' that is compiled without support for 'sse2'
hash.c: S->gt;h[3] = _mm_set_epi64x(0x5BE0CD19137E2179ULL, 0x1F83D9ABFB41BD6BULL);
hash.c: ^
hash.c: hash.c:65:23: error: always_inline function '_mm_setr_epi8' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r16 = _mm_setr_epi8(2,3,4,5,6,7,0,1,10,11,12,13,14,15,8,9);
hash.c: ^
hash.c: hash.c:66:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to64 = _mm_set_epi8(8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7);
hash.c: ^
hash.c: hash.c:72:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m0 = _mm_loadu_si128((__m128i*)(datablock + 0));
hash.c: ^
hash.c: hash.c:73:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m1 = _mm_loadu_si128((__m128i*)(datablock + 16));
hash.c: ^
hash.c: hash.c:74:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/ssse3
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:82:23: error: always_inline function '_mm_setr_epi8' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r16 = _mm_setr_epi8(2,3,4,5,6,7,0,1,10,11,12,13,14,15,8,9);
hash.c: ^
hash.c: hash.c:83:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to64 = _mm_set_epi8(8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7);
hash.c: ^
hash.c: hash.c:141:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse3'
hash.c: m.u128[0] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to64);
hash.c: ^
hash.c: hash.c:141:32: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[0] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to64);
hash.c: ^
hash.c: hash.c:142:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse3'
hash.c: m.u128[1] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to64);
hash.c: ^
hash.c: hash.c:142:32: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[1] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to64);
hash.c: ^
hash.c: hash.c:143:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse3'
hash.c: m.u128[2] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 32)), u8to64);
hash.c: ^
hash.c: hash.c:143:32: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse2'
hash.c: m.u128[2] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 32)), u8to64);
hash.c: ^
hash.c: hash.c:144:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake512_compress' that is compiled without support for 'sse3'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
vector.c: In file included from vector.c:7:
vector.c: ./vector.h:968:2: error: "I don't know how to vectorize on this architecture."
vector.c: #error "I don't know how to vectorize on this architecture."
vector.c: ^
vector.c: ./vector.h:982:3: error: unknown type name 'v16'
vector.c: v16 v16;
vector.c: ^
vector.c: ./vector.h:987:3: error: unknown type name 'v8'
vector.c: v8 v8;
vector.c: ^
vector.c: ./vector.h:992:3: error: unknown type name 'v32'; did you mean 'u32'?
vector.c: v32 v;
vector.c: ^~~
vector.c: u32
vector.c: ./compat.h:29:18: note: 'u32' declared here
vector.c: typedef uint32_t u32;
vector.c: ^
vector.c: In file included from vector.c:7:
vector.c: ./vector.h:997:3: error: unknown type name 'v64'; did you mean 'u64'?
vector.c: v64 v;
vector.c: ^~~
vector.c: u64
vector.c: ./compat.h:34:28: note: 'u64' declared here
vector.c: typedef unsigned long long u64;
vector.c: ^
vector.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/xop-2
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:778:11: warning: implicit declaration of function '_mm_extract_epi64' [-Wimplicit-function-declaration]
hash.c: row4hl = _mm_extract_epi64(row4l, 1); \
hash.c: ^
hash.c: rounds.h:828:3: note: in expansion of macro 'DIAGONALIZE'
hash.c: DIAGONALIZE(row1l,row2l,row3l,row4l,row1hl,row1hh,row2hl,row2hh,row3hl,row3hh,row4hl,row4hh); \
hash.c: ^
hash.c: hash.c:124:3: note: in expansion of macro 'ROUND'
hash.c: ROUND( 0);
hash.c: ^
hash.c: rounds.h:780:11: warning: implicit declaration of function '_mm_cvtsi64_si128' [-Wimplicit-function-declaration]
hash.c: t0 = _mm_cvtsi64_si128(u1); \
hash.c: ^
hash.c: rounds.h:828:3: note: in expansion of macro 'DIAGONALIZE'
hash.c: DIAGONALIZE(row1l,row2l,row3l,row4l,row1hl,row1hh,row2hl,row2hh,row3hl,row3hh,row4hl,row4hh); \
hash.c: ^
hash.c: hash.c:124:3: note: in expansion of macro 'ROUND'
hash.c: ROUND( 0);
hash.c: ^
hash.c: rounds.h:780:9: error: incompatible types when assigning to type '__m128i {aka __vector(2) long long int}' from type 'int'
hash.c: t0 = _mm_cvtsi64_si128(u1); \
hash.c: ^
hash.c: rounds.h:828:3: note: in expansion of macro 'DIAGONALIZE'
hash.c: DIAGONALIZE(row1l,row2l,row3l,row4l,row1hl,row1hh,row2hl,row2hh,row3hl,row3hh,row4hl,row4hh); \
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/sse2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake512_compress':
hash.c: hash.c:125:13: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: m.u128[0] = LOADU(datablock + 0);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:149:9: error: called from here
hash.c: row3a = _mm_set_epi64((__m64)0x13198A2E03707344ULL,
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:147:9: error: called from here
hash.c: row3b = _mm_set_epi64((__m64)0x082EFA98EC4E6C89ULL,
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:146:9: error: called from here
hash.c: row2a = _mm_set_epi64((__m64)state->gt;h[5],(__m64)state->gt;h[4]);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/sse2s
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake512_compress':
hash.c: hash.c:128:13: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: m.u128[0] = LOADU(datablock + 0);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:152:9: error: called from here
hash.c: row3a = _mm_set_epi64((__m64)0x13198A2E03707344ULL,
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:150:9: error: called from here
hash.c: row3b = _mm_set_epi64((__m64)0x082EFA98EC4E6C89ULL,
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:149:9: error: called from here
hash.c: row2a = _mm_set_epi64((__m64)state->gt;h[5],(__m64)state->gt;h[4]);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/ssse3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake512_compress':
hash.c: hash.c:82:17: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: const __m128i r16 = _mm_setr_epi8(2,3,4,5,6,7,0,1,10,11,12,13,14,15,8,9);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:157:9: error: called from here
hash.c: row3a = _mm_set_epi64((__m64)0x13198A2E03707344ULL,
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:155:9: error: called from here
hash.c: row3b = _mm_set_epi64((__m64)0x082EFA98EC4E6C89ULL,
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:591:1: error: inlining failed in call to always_inline '_mm_set_epi64': target specific option mismatch
hash.c: _mm_set_epi64 (__m64 __q1, __m64 __q0)
hash.c: ^
hash.c: hash.c:154:9: error: called from here
hash.c: row2a = _mm_set_epi64((__m64)state->gt;h[5],(__m64)state->gt;h[4]);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/sse41
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake512_init':
hash.c: hash.c:152:11: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: S->gt;h[0] = _mm_set_epi64x(0xBB67AE8584CAA73BULL, 0x6A09E667F3BCC908ULL);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:1249:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31,
hash.c: from hash.c:5:
hash.c: hash.c: In function 'blake512_compress':
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1286:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
hash.c: _mm_xor_si128 (__m128i __A, __m128i __B)
hash.c: ^
hash.c: hash.c:144:17: error: called from here
hash.c: state->gt;h[3] = _mm_xor_si128(row2h, state->gt;h[3]);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:1249:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31,
hash.c: from hash.c:5:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1286:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
hash.c: _mm_xor_si128 (__m128i __A, __m128i __B)
hash.c: ^
hash.c: hash.c:143:17: error: called from here
hash.c: state->gt;h[2] = _mm_xor_si128(row2l, state->gt;h[2]);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:1249:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/x86intrin.h:31,
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
vector.c: In file included from vector.c:7:0:
vector.c: vector.h:968:2: error: #error "I don't know how to vectorize on this architecture."
vector.c: #error "I don't know how to vectorize on this architecture."
vector.c: ^
vector.c: vector.h:982:3: error: unknown type name 'v16'
vector.c: v16 v16;
vector.c: ^
vector.c: vector.h:987:3: error: unknown type name 'v8'
vector.c: v8 v8;
vector.c: ^
vector.c: vector.h:992:3: error: unknown type name 'v32'
vector.c: v32 v;
vector.c: ^
vector.c: vector.h:997:3: error: unknown type name 'v64'
vector.c: v64 v;
vector.c: ^
vector.c: vector.c:62:30: warning: implicit declaration of function 'CV' [-Wimplicit-function-declaration]
vector.c: static const union cv v128 = CV(128);
vector.c: ^
vector.c: vector.c:62:30: error: invalid initializer
vector.c: vector.c:63:30: error: invalid initializer
vector.c: static const union cv v255 = CV(255);
vector.c: ^
vector.c: vector.c:64:30: error: invalid initializer
vector.c: static const union cv v257 = CV(257);
vector.c: ...

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