Implementation notes: x86, thoth, crypto_hash/blake256

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake256
TimeImplementationCompilerBenchmark dateSUPERCOP version
38483sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
38524sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
38540bswapgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
38572regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
38614sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
39584sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
40403sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
40785bswapgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
40818regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
40826bswapgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
40882regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
41048regsclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
41549bswapclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
44398bswapgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
47535regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
47785sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
55555refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
55867sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
57134refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
60768sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
62464refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
63555sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
66476sandyclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
69513sandygcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
69562sandygcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
71370sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
73816sandygcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
76462refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
77190sandygcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
79871refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_hash/blake256/sse41-2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:2:
hash.c: ./blake256.h:105:15: warning: '_mm_roti_epi32' macro redefined [-Wmacro-redefined]
hash.c: #define _mm_roti_epi32(r, c) ((8==-c) ? _mm_shuffle_epi8(r,r8) : ( (16==-c) ? _mm_shuffle_epi8(r,r16) : _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-c) )) ) )
hash.c: ^
hash.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/xopintrin.h:246:9: note: previous definition is here
hash.c: #define _mm_roti_epi32(A, N) __extension__ ({ \
hash.c: ^
hash.c: hash.c:149:3: error: always_inline function '_mm_store_si128' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[0]), _mm_set_epi32(0xA54FF53A,0x3C6EF372,0xBB67AE85,0x6A09E667));
hash.c: ^
hash.c: hash.c:149:41: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[0]), _mm_set_epi32(0xA54FF53A,0x3C6EF372,0xBB67AE85,0x6A09E667));
hash.c: ^
hash.c: hash.c:150:3: error: always_inline function '_mm_store_si128' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[4]), _mm_set_epi32(0x5BE0CD19,0x1F83D9AB,0x9B05688C,0x510E527F));
hash.c: ^
hash.c: hash.c:150:41: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[4]), _mm_set_epi32(0x5BE0CD19,0x1F83D9AB,0x9B05688C,0x510E527F));
hash.c: ^
hash.c: hash.c:58:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to32 = _mm_set_epi8(12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3);
hash.c: ^
hash.c: hash.c:59:22: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r8 = _mm_set_epi8(12,15,14,13,8,11,10,9,4,7,6,5,0,3,2,1);
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake256/sse2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:107:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[0] = LOADU(datablock + 0);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:108:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[1] = LOADU(datablock + 16);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:109:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[2] = LOADU(datablock + 32);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:110:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[3] = LOADU(datablock + 48);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:112:3: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'blake256_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/blake256/sse2-2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:112:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[0] = LOADU(datablock + 0);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:113:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[1] = LOADU(datablock + 16);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:114:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[2] = LOADU(datablock + 32);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:115:15: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[3] = LOADU(datablock + 48);
hash.c: ^
hash.c: hash.c:24:19: note: expanded from macro 'LOADU'
hash.c: #define LOADU(p) _mm_loadu_si128( (__m128i *)(p) )
hash.c: ^
hash.c: hash.c:117:3: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'blake256_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-2

Compiler output

Implementation: crypto_hash/blake256/xop
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:149:3: error: always_inline function '_mm_store_si128' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[0]), _mm_set_epi32(0xA54FF53A,0x3C6EF372,0xBB67AE85,0x6A09E667));
hash.c: ^
hash.c: hash.c:149:41: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[0]), _mm_set_epi32(0xA54FF53A,0x3C6EF372,0xBB67AE85,0x6A09E667));
hash.c: ^
hash.c: hash.c:150:3: error: always_inline function '_mm_store_si128' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[4]), _mm_set_epi32(0x5BE0CD19,0x1F83D9AB,0x9B05688C,0x510E527F));
hash.c: ^
hash.c: hash.c:150:41: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'blake256_init' that is compiled without support for 'sse2'
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[4]), _mm_set_epi32(0x5BE0CD19,0x1F83D9AB,0x9B05688C,0x510E527F));
hash.c: ^
hash.c: hash.c:58:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to32 = _mm_set_epi8(12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3);
hash.c: ^
hash.c: hash.c:59:22: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r8 = _mm_set_epi8(12,15,14,13,8,11,10,9,4,7,6,5,0,3,2,1);
hash.c: ^
hash.c: hash.c:60:23: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r16 = _mm_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
hash.c: ^
hash.c: hash.c:93:22: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: const __m128i m0 = _mm_shuffle_epi8(LOADU(datablock + 00), u8to32);
hash.c: ^
hash.c: hash.c:93:39: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_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/blake256/sse41
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:70:22: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r8 = _mm_set_epi8(12,15,14,13,8,11,10,9,4,7,6,5,0,3,2,1);
hash.c: ^
hash.c: hash.c:71:23: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r16 = _mm_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
hash.c: ^
hash.c: hash.c:101:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to32 = _mm_set_epi8(12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3);
hash.c: ^
hash.c: hash.c:104:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: m0 = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to32);
hash.c: ^
hash.c: hash.c:104:24: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m0 = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to32);
hash.c: ^
hash.c: hash.c:105:8: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: m1 = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to32);
hash.c: ^
hash.c: hash.c:105:25: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m1 = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to32);
hash.c: ^
hash.c: hash.c:106:8: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: m2 = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 32)), u8to32);
hash.c: ^
hash.c: hash.c:106:25: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_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 sse41

Compiler output

Implementation: crypto_hash/blake256/ssse3
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:70:22: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r8 = _mm_set_epi8(12,15,14,13,8,11,10,9,4,7,6,5,0,3,2,1);
hash.c: ^
hash.c: hash.c:71:23: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i r16 = _mm_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
hash.c: ^
hash.c: hash.c:72:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: const __m128i u8to32 = _mm_set_epi8(12, 13, 14, 15, 8, 9, 10, 11, 4, 5, 6, 7, 0, 1, 2, 3);
hash.c: ^
hash.c: hash.c:105:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: m.u128[0] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to32);
hash.c: ^
hash.c: hash.c:105:32: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[0] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 00)), u8to32);
hash.c: ^
hash.c: hash.c:106:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: m.u128[1] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to32);
hash.c: ^
hash.c: hash.c:106:32: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse2'
hash.c: m.u128[1] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 16)), u8to32);
hash.c: ^
hash.c: hash.c:107:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'blake256_compress' that is compiled without support for 'sse3'
hash.c: m.u128[2] = _mm_shuffle_epi8(_mm_loadu_si128((__m128i*)(datablock + 32)), u8to32);
hash.c: ^
hash.c: hash.c:107:32: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'blake256_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 ssse3

Compiler output

Implementation: crypto_hash/blake256/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-mmxhack

Compiler output

Implementation: crypto_hash/blake256/sse2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake256_compress':
hash.c: hash.c:107: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:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:121:8: error: called from here
hash.c: row3 = _mm_set_epi32(0x03707344, 0x13198A2E, 0x85A308D3, 0x243F6A88);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:119:8: error: called from here
hash.c: row2 = _mm_set_epi32(state->gt;h[ 7], state->gt;h[ 6],
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:117:8: error: called from here
hash.c: row1 = _mm_set_epi32(state->gt;h[ 3], state->gt;h[ 2],
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/blake256/sse2-2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake256_compress':
hash.c: hash.c:112: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:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:126:8: error: called from here
hash.c: row3 = _mm_set_epi32(0x03707344, 0x13198A2E, 0x85A308D3, 0x243F6A88);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:124:8: error: called from here
hash.c: row2 = _mm_set_epi32(state->gt;h[ 7], state->gt;h[ 6],
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:122:8: error: called from here
hash.c: row1 = _mm_set_epi32(state->gt;h[ 3], state->gt;h[ 2],
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake256/sse41
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake256_compress':
hash.c: hash.c:70:17: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: const __m128i r8 = _mm_set_epi8(12,15,14,13,8,11,10,9,4,7,6,5,0,3,2,1);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:113:8: error: called from here
hash.c: row3 = _mm_set_epi32(0x03707344, 0x13198A2E, 0x85A308D3, 0x243F6A88);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:111:8: error: called from here
hash.c: row2 = _mm_set_epi32(state->gt;h[ 7], state->gt;h[ 6],
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:109:8: error: called from here
hash.c: row1 = _mm_set_epi32(state->gt;h[ 3], state->gt;h[ 2],
hash.c: ^
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/blake256/ssse3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake256_compress':
hash.c: hash.c:70:17: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: const __m128i r8 = _mm_set_epi8(12,15,14,13,8,11,10,9,4,7,6,5,0,3,2,1);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:114:8: error: called from here
hash.c: row3 = _mm_set_epi32(0x03707344, 0x13198A2E, 0x85A308D3, 0x243F6A88);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:112:8: error: called from here
hash.c: row2 = _mm_set_epi32(state->gt;h[ 7], state->gt;h[ 6],
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:110:8: error: called from here
hash.c: row1 = _mm_set_epi32(state->gt;h[ 3], state->gt;h[ 2],
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/blake256/sse41-2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'blake256_init':
hash.c: hash.c:149:3: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[0]), _mm_set_epi32(0xA54FF53A,0x3C6EF372,0xBB67AE85,0x6A09E667));
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 blake256.h:7,
hash.c: from hash.c:2:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:708:1: error: inlining failed in call to always_inline '_mm_store_si128': target specific option mismatch
hash.c: _mm_store_si128 (__m128i *__P, __m128i __B)
hash.c: ^
hash.c: hash.c:150:3: error: called from here
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[4]), _mm_set_epi32(0x5BE0CD19,0x1F83D9AB,0x9B05688C,0x510E527F));
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 blake256.h:7,
hash.c: from hash.c:2:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '_mm_set_epi32': target specific option mismatch
hash.c: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
hash.c: ^
hash.c: hash.c:150:3: error: called from here
hash.c: _mm_store_si128((__m128i*)(&S->gt;h[4]), _mm_set_epi32(0x5BE0CD19,0x1F83D9AB,0x9B05688C,0x510E527F));
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:1249:0,
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake256/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-mmxhack
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv vect128 vect128-mmxhack
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv vect128 vect128-mmxhack
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv vect128 vect128-mmxhack