Implementation notes: x86, thoth, crypto_hash/groestl256

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: groestl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
82668mmxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
87540mmxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
92625mmxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
98157mmxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
140149sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
143507sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
148482sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
169702sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
171552sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
173091sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
173656sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
182529sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
186571sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
189624sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
192040sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
197403sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
200733opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
205651sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
210987sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
215994sphlib-adaptedclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
218994opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
222810opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
246681opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
25680632bit-2ktablegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
257778opt32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
26280132bit-2ktableclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
266298opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
266676opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
267781opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
26846432bit-2ktablegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
26951432bit-2ktablegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
269686opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
28915032bit-2ktablegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
46858132bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
49915832bit-bytesliced-c-fastgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
50794032bit-bytesliced-c-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
53974632bit-bytesliced-c-fastclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
59529332bit-bytesliced-c-fastgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
62665132bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
6767968bit_cclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
70687832bit-bytesliced-c-fastgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
73546432bit-bytesliced-c-fastgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
7683338bit_cgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
7778258bit_cgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
8144748bit_cgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
8458598bit_cgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
86795032bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
87037232bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
1614708mmxclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724

Compiler output

Implementation: crypto_hash/groestl256/aesni-intr
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:28:
hash.c: ./groestl-intr-aes.h:368:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: ./groestl-intr-aes.h:240:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:368:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: ./groestl-intr-aes.h:241:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i1 = _mm_shuffle_epi8(i1, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:368:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: ./groestl-intr-aes.h:242:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i2 = _mm_shuffle_epi8(i2, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:368:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: ./groestl-intr-aes.h:243:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i3 = _mm_shuffle_epi8(i3, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:368:3: error: always_inline function '_mm_unpacklo_epi16' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: ./groestl-intr-aes.h:248:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i0 = _mm_unpacklo_epi16(i0, i1);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:368:3: error: always_inline function '_mm_unpackhi_epi16' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: ./groestl-intr-aes.h:249:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/vperm-intr
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:34:
hash.c: ./groestl-intr-vperm.h:650:3: error: always_inline function '_mm_andnot_si128' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: ./groestl-intr-vperm.h:633:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform(xmm0, xmm1, VPERM_IPT, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:116:3: note: expanded from macro 'VPERM_Transform'
hash.c: VPERM_Transform_No_Const(a0, a1, t0, t1, t2, t3, c0, c1, c2);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:77:8: note: expanded from macro 'VPERM_Transform_No_Const'
hash.c: t0 = _mm_andnot_si128(t0, a0);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:650:3: error: always_inline function '_mm_andnot_si128' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: ./groestl-intr-vperm.h:633:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform(xmm0, xmm1, VPERM_IPT, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:116:3: note: expanded from macro 'VPERM_Transform'
hash.c: VPERM_Transform_No_Const(a0, a1, t0, t1, t2, t3, c0, c1, c2);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:78:8: note: expanded from macro 'VPERM_Transform_No_Const'
hash.c: t1 = _mm_andnot_si128(t1, a1);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:650:3: error: always_inline function '_mm_srli_epi32' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: ./groestl-intr-vperm.h:633:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/avx-intr
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:9:
hash.c: ./groestl-intr-avx.h:353:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: ./groestl-intr-avx.h:246:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:353:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: ./groestl-intr-avx.h:247:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i1 = _mm_shuffle_epi8(i1, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:353:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: ./groestl-intr-avx.h:248:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i2 = _mm_shuffle_epi8(i2, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:353:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'sse3', but would be inlined into function 'INIT' that is compiled without support for 'sse3'
hash.c: ./groestl-intr-avx.h:249:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: i3 = _mm_shuffle_epi8(i3, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:353:3: error: always_inline function '_mm_unpackhi_epi16' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: ./groestl-intr-avx.h:251:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: o1 = _mm_unpackhi_epi16(i0, i1);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:353:3: error: always_inline function '_mm_unpacklo_epi16' requires target feature 'sse2', but would be inlined into function 'INIT' that is compiled without support for 'sse2'
hash.c: ./groestl-intr-avx.h:252:8: note: expanded from macro 'Matrix_Transpose_A'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/vperm
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:104:12: warning: comparison of array 'ctx->gt;chaining' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->gt;chaining == NULL || ctx->gt;buffer == NULL)
hash.c: ~~~~~^~~~~~~~ ~~~~
hash.c: hash.c:104:37: warning: comparison of array 'ctx->gt;buffer' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->gt;chaining == NULL || ctx->gt;buffer == NULL)
hash.c: ~~~~~^~~~~~ ~~~~
hash.c: In file included from hash.c:19:
hash.c: ./groestl-asm-vperm.h:705:3: error: invalid operand for instruction
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: ./groestl-asm-vperm.h:685:8: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: asm ("movaps xmm0, [ROUND_CONST_Lx]");\
hash.c: ^
hash.c: gt;:1:15: note: instantiated into assembly here
hash.c: movaps xmm0, [ROUND_CONST_Lx]
hash.c: ^~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:19:
hash.c: ./groestl-asm-vperm.h:705:3: error: invalid operand for instruction
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: ./groestl-asm-vperm.h:686:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform(0, 1, VPERM_IPT, 4, 5, 6, 7, 8, 9, 10);\
hash.c: ^
hash.c: ./groestl-asm-vperm.h:142:3: note: expanded from macro 'VPERM_Transform'
hash.c: VPERM_Transform_Set_Const(table, c0, c1, c2);\
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/opt64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:191:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:192:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:193:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:194:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/aesni-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:28:0:
hash.c: groestl-intr-aes.h: In function 'INIT':
hash.c: groestl-intr-aes.h:240:6: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: groestl-intr-aes.h:368:3: note: in expansion of macro 'Matrix_Transpose_A'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/smmintrin.h:32,
hash.c: from groestl-intr-aes.h:10,
hash.c: from hash.c:28:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:975:1: error: inlining failed in call to always_inline '_mm_unpackhi_epi32': target specific option mismatch
hash.c: _mm_unpackhi_epi32 (__m128i __A, __m128i __B)
hash.c: ^
hash.c: In file included from hash.c:28:0:
hash.c: groestl-intr-aes.h:264:8: error: called from here
hash.c: o3 = _mm_unpackhi_epi32(o3, t0);\
hash.c: ^
hash.c: groestl-intr-aes.h:368:3: note: in expansion of macro 'Matrix_Transpose_A'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/vperm-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:34:0:
hash.c: groestl-intr-vperm.h: In function 'INIT':
hash.c: groestl-intr-vperm.h:77:6: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: t0 = _mm_andnot_si128(t0, a0);\
hash.c: ^
hash.c: groestl-intr-vperm.h:116:3: note: in expansion of macro 'VPERM_Transform_No_Const'
hash.c: VPERM_Transform_No_Const(a0, a1, t0, t1, t2, t3, c0, c1, c2);\
hash.c: ^
hash.c: groestl-intr-vperm.h:633:3: note: in expansion of macro 'VPERM_Transform'
hash.c: VPERM_Transform(xmm0, xmm1, VPERM_IPT, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10);\
hash.c: ^
hash.c: groestl-intr-vperm.h:650:3: note: in expansion of macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: from groestl-intr-vperm.h:13,
hash.c: from hash.c:34:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:975:1: error: inlining failed in call to always_inline '_mm_unpackhi_epi32': target specific option mismatch
hash.c: _mm_unpackhi_epi32 (__m128i __A, __m128i __B)
hash.c: ^
hash.c: In file included from hash.c:34:0:
hash.c: groestl-intr-vperm.h:523:8: error: called from here
hash.c: o3 = _mm_unpackhi_epi32(o3, t0);\
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/avx-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:9:0:
hash.c: groestl-intr-avx.h: In function 'INIT':
hash.c: groestl-intr-avx.h:246:6: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: groestl-intr-avx.h:353:3: note: in expansion of macro 'Matrix_Transpose_A'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/smmintrin.h:32,
hash.c: from groestl-intr-avx.h:10,
hash.c: from hash.c:9:
hash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:999:1: error: inlining failed in call to always_inline '_mm_unpacklo_epi32': target specific option mismatch
hash.c: _mm_unpacklo_epi32 (__m128i __A, __m128i __B)
hash.c: ^
hash.c: In file included from hash.c:9:0:
hash.c: groestl-intr-avx.h:264:8: error: called from here
hash.c: o1 = _mm_unpacklo_epi32(o1, t0);\
hash.c: ^
hash.c: groestl-intr-avx.h:353:3: note: in expansion of macro 'Matrix_Transpose_A'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/vperm
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: groestl-asm-vperm.h: Assembler messages:
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:705: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:708: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:709: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:710: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:711: Error: too many memory references for `movaps'
hash.c: groestl-asm-vperm.h:715: Error: operand size mismatch for `pand'
hash.c: groestl-asm-vperm.h:715: Error: operand size mismatch for `pand'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/opt64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c:194:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:193:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:192:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:191:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^

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