Implementation notes: amd64, waldorf, crypto_hash/groestl256

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_hash
Primitive: groestl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
65588core2duogcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
67072opteron-unrolledgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
67740core2duogcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
68264opteronclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
68700opterongcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
68724opterongcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
69184opteron-unrolledgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
70492opteron-unrolledgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
71264opterongcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
71616core2duogcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
72208core2duoclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
72408opteron-unrolledgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
72596core2duogcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
73336sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
77612opterongcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
79036opteron-unrolledclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
79348sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
79924sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
80736sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
81920sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
84876sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
86644sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
87104vpermgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
87396sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
88248vpermgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
88648vperm-intrgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
89192opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
93260opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
94976vpermgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
95420opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
96196vperm-intrgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
96952opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
97380vperm-intrgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
99228vpermgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
102384vperm-intrgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
105420mmxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
106536vperm-intrclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
107264mmxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
108196mmxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
108760mmxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
113936sphlib-adaptedclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
123024sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
123536sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
126116sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
127804sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
138312sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
143084sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
178272opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
182864opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
194028mmxclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
199524opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
201164opt32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
206376opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
26148832bit-2ktableclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
29914832bit-2ktablegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
31042832bit-2ktablegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
31907632bit-2ktablegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
31955632bit-2ktablegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
35721632bit-bytesliced-c-fastgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
37486832bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
39786032bit-bytesliced-c-fastclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
44570432bit-bytesliced-c-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
45297632bit-bytesliced-c-fastgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
48905232bit-bytesliced-c-fastgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
51036032bit-bytesliced-c-fastgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
5886368bit_cclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
71661632bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
7271928bit_cgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
74292832bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
7667208bit_cgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
7977008bit_cgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
10259728bit_cgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
109753632bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715

Test failure

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

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

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: In file included from ./groestl-intr-aes.h:11:
hash.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
hash.c: # error "AES/PCLMUL instructions not enabled"
hash.c: ^
hash.c: In file included from hash.c:28:
hash.c: ./groestl-intr-aes.h:421:3: warning: implicit declaration of function '_mm_aesenclast_si128' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: ROUNDS_P_Q();
hash.c: ^
hash.c: ./groestl-intr-aes.h:218:3: note: expanded from macro 'ROUNDS_P_Q'
hash.c: ROUND(0, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:195:8: note: expanded from macro 'ROUND'
hash.c: a0 = _mm_aesenclast_si128(a0, b0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:421:3: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
hash.c: ROUNDS_P_Q();
hash.c: ^~~~~~~~~~~~
hash.c: ./groestl-intr-aes.h:218:3: note: expanded from macro 'ROUNDS_P_Q'
hash.c: ROUND(0, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: ./groestl-intr-aes.h:195:6: note: expanded from macro 'ROUND'
hash.c: a0 = _mm_aesenclast_si128(a0, b0);\
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: ./groestl-intr-aes.h:421:3: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
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/avx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:9:
hash.c: In file included from ./groestl-asm-avx.h:10:
hash.c: ./hash.h:26:17: warning: redefinition of typedef 'uint_8t' is a C11 feature [-Wtypedef-redefinition]
hash.c: typedef uint8_t u8;
hash.c: ^
hash.c: ./brg_types.h:225:12: note: expanded from macro 'u8'
hash.c: #define u8 uint_8t
hash.c: ^
hash.c: ./brg_types.h:61:28: note: previous definition is here
hash.c: typedef unsigned char uint_8t;
hash.c: ^
hash.c: In file included from hash.c:9:
hash.c: In file included from ./groestl-asm-avx.h:10:
hash.c: ./hash.h:27:18: warning: redefinition of typedef 'uint_32t' is a C11 feature [-Wtypedef-redefinition]
hash.c: typedef uint32_t u32;
hash.c: ^
hash.c: ./brg_types.h:226:13: note: expanded from macro 'u32'
hash.c: #define u32 uint_32t
hash.c: ^
hash.c: ./brg_types.h:80:27: note: previous definition is here
hash.c: typedef unsigned int uint_32t;
hash.c: ^
hash.c: In file included from hash.c:9:
hash.c: In file included from ./groestl-asm-avx.h:10:
hash.c: ./hash.h:28:18: warning: redefinition of typedef 'uint_64t' is a C11 feature [-Wtypedef-redefinition]
hash.c: ...

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

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: In file included from ./groestl-intr-avx.h:11:
hash.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
hash.c: # error "AES/PCLMUL instructions not enabled"
hash.c: ^
hash.c: In file included from hash.c:9:
hash.c: In file included from ./groestl-intr-avx.h:13:
hash.c: ./hash.h:26:17: warning: redefinition of typedef 'uint_8t' is a C11 feature [-Wtypedef-redefinition]
hash.c: typedef uint8_t u8;
hash.c: ^
hash.c: ./brg_types.h:225:12: note: expanded from macro 'u8'
hash.c: #define u8 uint_8t
hash.c: ^
hash.c: ./brg_types.h:61:28: note: previous definition is here
hash.c: typedef unsigned char uint_8t;
hash.c: ^
hash.c: In file included from hash.c:9:
hash.c: In file included from ./groestl-intr-avx.h:13:
hash.c: ./hash.h:27:18: warning: redefinition of typedef 'uint_32t' is a C11 feature [-Wtypedef-redefinition]
hash.c: typedef uint32_t u32;
hash.c: ^
hash.c: ./brg_types.h:226:13: note: expanded from macro 'u32'
hash.c: #define u32 uint_32t
hash.c: ^
hash.c: ./brg_types.h:80:27: note: previous definition is here
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-intr
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: 2 warnings generated.

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/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/aesni
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: hash.c:97:3: warning: while loop has empty body [-Wempty-body]
hash.c: SET_CONSTANTS();
hash.c: ^
hash.c: ./groestl-asm-aes.h:188:10: note: expanded from macro 'SET_CONSTANTS'
hash.c: }while(0);
hash.c: ^
hash.c: hash.c:97:3: note: put the semicolon on a separate line to silence this warning
hash.c: ./groestl-asm-aes.h:188:10: note: expanded from macro 'SET_CONSTANTS'
hash.c: }while(0);
hash.c: ^
hash.c: ./groestl-asm-aes.h:389:8: error: invalid operand for instruction
hash.c: asm ("movaps xmm12, [rdi+0*16]");
hash.c: ^
hash.c: gt;:1:16: note: instantiated into assembly here
hash.c: movaps xmm12, [rdi+0*16]
hash.c: ^~~~~~~~~~
hash.c: In file included from hash.c:13:
hash.c: ./groestl-asm-aes.h:390:8: error: invalid operand for instruction
hash.c: asm ("movaps xmm13, [rdi+1*16]");
hash.c: ...

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

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: ...
try.c: crypto_hash_groestl256.a(hash.o): In function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: crypto_hash_groestl256.a(hash.o): In function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: crypto_hash_groestl256.a(hash.o): In function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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 groestl-intr-aes.h:11:0,
hash.c: from hash.c:28:
hash.c: groestl-intr-aes.h: In function 'TF512':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
hash.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: ^
hash.c: In file included from hash.c:28:0:
hash.c: groestl-intr-aes.h:195:8: error: called from here
hash.c: a0 = _mm_aesenclast_si128(a0, b0);\
hash.c: ^
hash.c: groestl-intr-aes.h:218:3: note: in expansion of macro 'ROUND'
hash.c: ROUND(0, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: groestl-intr-aes.h:421:3: note: in expansion of macro 'ROUNDS_P_Q'
hash.c: ROUNDS_P_Q();
hash.c: ^
hash.c: In file included from groestl-intr-aes.h:11:0,
hash.c: from hash.c:28:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
hash.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: ^
hash.c: In file included from hash.c:28:0:
hash.c: groestl-intr-aes.h:197:8: error: called from here
hash.c: a1 = _mm_aesenclast_si128(a1, b0);\
hash.c: ^
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/avx-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from groestl-intr-avx.h:11:0,
hash.c: from hash.c:9:
hash.c: groestl-intr-avx.h: In function 'TF512':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
hash.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: ^
hash.c: In file included from hash.c:9:0:
hash.c: groestl-intr-avx.h:202:8: error: called from here
hash.c: a0 = _mm_aesenclast_si128(a0, b7);\
hash.c: ^
hash.c: groestl-intr-avx.h:224:3: note: in expansion of macro 'ROUND'
hash.c: ROUND(0, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: groestl-intr-avx.h:403:3: note: in expansion of macro 'ROUNDS_P_Q'
hash.c: ROUNDS_P_Q();
hash.c: ^
hash.c: In file included from groestl-intr-avx.h:11:0,
hash.c: from hash.c:9:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
hash.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: ^
hash.c: In file included from hash.c:9:0:
hash.c: groestl-intr-avx.h:204:8: error: called from here
hash.c: a1 = _mm_aesenclast_si128(a1, b7);\
hash.c: ^
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/avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp/ccF1ESTG.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/ccF1ESTG.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp/cceQuMPW.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/cceQuMPW.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp/cczkiXDy.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/cczkiXDy.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp/ccKqZiMZ.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/ccKqZiMZ.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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