Implementation notes: armeabi, tinker, crypto_hash/groestl512

Computer: tinker
Microarchitecture: armeabi; Cortex-A17 (410fc0d1)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: groestl512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
21566150838 0 057449 376 744T:sphlib-adaptedgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
22422822745 0 030504 388 744T:opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
22446920461 0 027189 384 744T:opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
22514324509 0 033217 392 752T:opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
22538423117 0 031089 392 752T:opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
22925748890 0 055493 376 744T:sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
24278457350 0 065065 384 744T:sphlib-adaptedgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
25066654234 0 061941 384 744T:sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
29274130357 0 040964 424 752T:opt32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
30474874584 0 084986 412 752T:sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
32318477896 0 088306 412 752T:sphlib-adaptedclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
33336067008 0 075605 384 752T:sphlib-adaptedgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
33754465368 0 073229 384 752T:sphlib-adaptedgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
34163062672 0 070525 384 752T:sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
34168164040 0 072629 384 752T:sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
42511529716 0 040126 412 752T:sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
4270546252 0 016802 412 752T:32bit-bytesliced-c-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
43515722710 0 030417 384 744T:sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
46594320738 0 027341 376 744T:sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
47505324932 0 032789 384 752T:sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
48427825280 0 033873 384 752T:sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
5912485044 0 013645 384 752T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
8197381784 0 09649 384 752T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
9626111384 0 07997 376 744T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
12487742152 0 09824 380 744T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107

Test failure

Implementation: T:neon-table
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon-table

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
groestl.c: groestl.c:294:5: error: symbol 'T0up' is already defined
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:45:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T0up: "\
groestl.c: ^
groestl.c: <inline asm>:3:2: note: instantiated into assembly here
groestl.c: T0up:
groestl.c: ^
groestl.c: groestl.c:294:5: error: symbol 'T0dn' is already defined
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:302:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T0dn: "\
groestl.c: ^
groestl.c: <inline asm>:260:2: note: instantiated into assembly here
groestl.c: T0dn:
groestl.c: ^
groestl.c: groestl.c:294:5: error: symbol 'T1up' is already defined
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:559:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T1up: "\
groestl.c: ^
groestl.c: <inline asm>:517:2: note: instantiated into assembly here
groestl.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:arm32

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/ccycUs1F.s: Assembler messages:
groestl.c: /tmp/ccycUs1F.s:3052: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccycUs1F.s:3878: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccycUs1F.s:5677: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccycUs1F.s:7303: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccycUs1F.s:8300: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccycUs1F.s:10099: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/ccKYXess.s: Assembler messages:
groestl.c: /tmp/ccKYXess.s:3106: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccKYXess.s:3932: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccKYXess.s:5796: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccKYXess.s:7422: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccKYXess.s:8503: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccKYXess.s:10260: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/ccEhXs1q.s: Assembler messages:
groestl.c: /tmp/ccEhXs1q.s:3055: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccEhXs1q.s:3881: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccEhXs1q.s:5675: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccEhXs1q.s:7301: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccEhXs1q.s:8284: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccEhXs1q.s:10066: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/cc3TfcRc.s: Assembler messages:
groestl.c: /tmp/cc3TfcRc.s:3045: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cc3TfcRc.s:3871: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cc3TfcRc.s:5627: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cc3TfcRc.s:7253: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cc3TfcRc.s:8996: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cc3TfcRc.s:9961: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:mmx
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:897:2: error: "MMX instructions must be enabled"
hash.c: #error "MMX instructions must be enabled"
hash.c: ^
hash.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mmx

Compiler output

Implementation: T:mmx
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:897:2: error: #error "MMX instructions must be enabled"
hash.c: 897 | #error "MMX instructions must be enabled"
hash.c: | ^~~~~

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

Compiler output

Implementation: T:neon-table
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:46:5: warning: the pointer incremented by 274877906880 refers past the last possible element for an array in 32-bit address space containing 8-bit (1-byte) elements (max possible 4294967296 elements) [-Warray-bounds]
hash.c: in += 0x3fffffffc0ULL;
hash.c: ^ ~~~~~~~~~~~~~~~
hash.c: hash.c:30:37: note: array 'in' declared here
hash.c: int crypto_hash(unsigned char *out, const unsigned char *in, unsigned long long inlen)
hash.c: ^
hash.c: hash.c:24:5: warning: inline asm clobber list contains reserved registers: D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31 [-Winline-asm]
hash.c: COMPRESS(ctx, ctx + STATEBYTES, input);
hash.c: ^
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ^
hash.c: hash.c:24:5: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ^
hash.c: hash.c:24:5: warning: inline asm clobber list contains reserved registers: D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31 [-Winline-asm]
hash.c: COMPRESS(ctx, ctx + STATEBYTES, input);
hash.c: ^
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ^
hash.c: hash.c:24:5: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon-table

Compiler output

Implementation: T:neon-table
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from hash.c:17:
hash.c: hash.c: In function ‘loopcompress’:
hash.c: groestl_asm_compress.h:12:3: error: ‘asm’ operand has impossible constraints
hash.c: 12 | asm volatile (\
hash.c: | ^~~
hash.c: hash.c:24:5: note: in expansion of macro ‘COMPRESS’
hash.c: 24 | COMPRESS(ctx, ctx + STATEBYTES, input);
hash.c: | ^~~~~~~~

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

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: /usr/bin/arm-linux-gnueabihf-ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: libcrypto_hash_groestl512.a(hash.o): in function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: libcrypto_hash_groestl512.a(hash.o): in function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: 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 -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:194:14: warning: ‘inP’ is static but declared in inline function ‘F1024’ which is not static
hash.c: 194 | 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: 193 | 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: 192 | 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: 191 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:194:14: warning: ‘inP’ is static but declared in inline function ‘F1024’ which is not static
hash.c: 194 | 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: 193 | 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: 192 | 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: 191 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
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 -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:194:14: warning: ‘inP’ is static but declared in inline function ‘F1024’ which is not static
hash.c: 194 | 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: 193 | 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: 192 | 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: 191 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
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 -fPIC -fPIE T:opt64