Implementation notes: aarch64, supercoplxc, crypto_hash/groestl512

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: groestl512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
15464039916 0 053241 896 760sphlibgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
15472042324 0 055673 896 760sphlib-adaptedgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
15664038948 0 051753 896 744sphlibgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
15832042396 0 054369 896 760sphlib-adaptedgcc_-O3_-fomit-frame-pointer2019090120190816
15896040012 0 051961 896 760sphlibgcc_-O3_-fomit-frame-pointer2019090120190816
15912038932 0 049657 896 744sphlibgcc_-O2_-fomit-frame-pointer2019090120190816
17432039880 0 052742 800 768sphlibclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
18128044572 0 057385 896 744sphlib-adaptedgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
18128040980 0 053873 896 744sphlib-adaptedgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
18376036164 0 049049 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
18568036996 0 050297 896 760sphlibgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
18592040172 0 053481 896 760sphlib-adaptedgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
18624035708 0 045641 880 736sphlibgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
18624035708 0 045641 880 736sphlibgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
18664044396 0 055121 896 744sphlib-adaptedgcc_-O2_-fomit-frame-pointer2019090120190816
19456038928 0 048873 880 736sphlib-adaptedgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
19512038928 0 048873 880 736sphlib-adaptedgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
19536016228 0 028193 896 760sphlib-smallgcc_-O3_-fomit-frame-pointer2019090120190816
19688016196 0 029537 896 760sphlib-smallgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
19848015740 0 028553 896 744sphlib-smallgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
20000043448 0 056310 800 768sphlib-adaptedclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
20032015220 0 025953 896 744sphlib-smallgcc_-O2_-fomit-frame-pointer2019090120190816
20208015376 0 028142 800 768sphlib-smallclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
20312037044 0 048985 896 760sphlibgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
20592035796 0 046457 896 744sphlibgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
20976040876 0 051553 896 744sphlib-adaptedgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
23016040252 0 052201 896 760sphlib-adaptedgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
23040015932 0 028825 896 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
23112016292 0 029609 896 760sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
23368040864 0 053726 800 768sphlibclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
23400040864 0 053678 800 768sphlibclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
23440040864 0 053726 800 768sphlibclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
23480014908 0 024841 880 736sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
23488014908 0 024841 880 736sphlib-smallgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
23760043728 0 056590 800 768sphlib-adaptedclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
23784043728 0 056590 800 768sphlib-adaptedclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
23808043728 0 056590 800 768sphlib-adaptedclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
23896043728 0 056542 800 768sphlib-adaptedclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
24240015512 0 028230 800 768sphlib-smallclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
24240015512 0 028278 800 768sphlib-smallclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
24248015512 0 028278 800 768sphlib-smallclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
24256015512 0 028278 800 768sphlib-smallclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
24480035724 0 045593 880 736sphlibgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
24488035724 0 045593 880 736sphlibgcc_-Os_-fomit-frame-pointer2019090120190816
24824038932 0 048817 880 736sphlib-adaptedgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
24856038932 0 048817 880 736sphlib-adaptedgcc_-Os_-fomit-frame-pointer2019090120190816
25856036764 0 047449 896 744sphlibgcc_-O_-fomit-frame-pointer2019090120190816
25856036764 0 047449 896 744sphlibgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
26008040152 0 050841 896 744sphlib-adaptedgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
26016040152 0 050841 896 744sphlib-adaptedgcc_-O_-fomit-frame-pointer2019090120190816
26256015228 0 025897 896 744sphlib-smallgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
26304038920 0 052825 896 744sphlibgcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
26312038920 0 052825 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
26552042460 0 056377 896 744sphlib-adaptedgcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
26648042460 0 056377 896 744sphlib-adaptedgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
27672040864 0 053726 800 768sphlibclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
28080016308 0 028265 896 760sphlib-smallgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
36192028373 0 041849 912 760opt32gcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
36392027377 0 040240 904 744opt32gcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
36408014904 0 024777 880 736sphlib-smallgcc_-Os_-fomit-frame-pointer2019090120190816
36408014904 0 024777 880 736sphlib-smallgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
36736027037 0 043249 912 760opt32gcc_-O3_-fomit-frame-pointer2019090120190816
37224024833 0 035584 904 744opt32gcc_-O2_-fomit-frame-pointer2019090120190816
37752028317 0 041769 912 760opt32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
38104027553 0 040496 904 744opt32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
38264024405 0 034352 888 736opt32gcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
38360024405 0 034352 888 736opt32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
39376029985 0 043108 824 768opt32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
39392029985 0 043108 824 768opt32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
39408029941 0 043012 824 768opt32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
39408029985 0 043108 824 768opt32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
43008029837 0 042956 824 768opt32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
47864017804 0 031713 896 744sphlib-smallgcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
47864017804 0 031713 896 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
48136016128 0 026825 896 744sphlib-smallgcc_-O_-fomit-frame-pointer2019090120190816
48136016128 0 026825 896 744sphlib-smallgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
54440026877 0 043065 912 760opt32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
54936024345 0 034224 888 736opt32gcc_-Os_-fomit-frame-pointer2019090120190816
54984024345 0 034224 888 736opt32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
55088024729 0 035432 904 744opt32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
64656057240 0 074217 880 744sphlibcc2019090120190816
64912057240 0 074217 880 744sphlibgcc2019090120190816
65264027521 0 041464 904 744opt32gcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
65288024901 0 035624 904 744opt32gcc_-O_-fomit-frame-pointer2019090120190816
65288024901 0 035624 904 744opt32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
65304027521 0 041464 904 744opt32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
65560057240 0 074217 880 744sphlibgcc_-funroll-loops2019090120190816
68296062728 0 079713 880 744sphlib-adaptedgcc_-funroll-loops2019090120190816
68360062728 0 079713 880 744sphlib-adaptedgcc2019090120190816
68368062728 0 079713 880 744sphlib-adaptedcc2019090120190816
7581605792 0 018496 888 74432bit-bytesliced-c-smallgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
7657606600 0 019841 896 76032bit-bytesliced-c-smallgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
7677606608 0 019809 896 76032bit-bytesliced-c-smallgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
7800805664 0 018296 888 74432bit-bytesliced-c-smallgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
7872804424 0 016289 896 76032bit-bytesliced-c-smallgcc_-O3_-fomit-frame-pointer2019090120190816
8418404492 0 017374 800 76832bit-bytesliced-c-smallclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
8430404492 0 017374 800 76832bit-bytesliced-c-smallclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
8432804492 0 017374 800 76832bit-bytesliced-c-smallclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
8436804516 0 017342 800 76832bit-bytesliced-c-smallclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
8608804316 0 017198 800 76832bit-bytesliced-c-smallclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
9919204416 0 016265 896 76032bit-bytesliced-c-smallgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
128272028132 0 045121 880 744sphlib-smallgcc2019090120190816
128304028132 0 045121 880 744sphlib-smallcc2019090120190816
128328028132 0 045121 880 744sphlib-smallgcc_-funroll-loops2019090120190816
13785605400 0 019152 888 74432bit-bytesliced-c-smallgcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
13785605400 0 019152 888 74432bit-bytesliced-c-smallgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
19352002200 0 012696 888 74432bit-bytesliced-c-smallgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
19392002192 0 012744 888 74432bit-bytesliced-c-smallgcc_-O2_-fomit-frame-pointer2019090120190816
19422401936 0 011688 872 73632bit-bytesliced-c-smallgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
19432801936 0 011688 872 73632bit-bytesliced-c-smallgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
20319201888 0 011576 872 73632bit-bytesliced-c-smallgcc_-Os_-fomit-frame-pointer2019090120190816
20319201888 0 011576 872 73632bit-bytesliced-c-smallgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
228696049549 0 062440 888 744opt32cc2019090120190816
228824049549 0 062440 888 744opt32gcc_-funroll-loops2019090120190816
228952049549 0 062440 888 744opt32gcc2019090120190816
23769602532 0 013064 888 74432bit-bytesliced-c-smallgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
23898402532 0 013064 888 74432bit-bytesliced-c-smallgcc_-O_-fomit-frame-pointer2019090120190816
115014404048 0 016744 872 74432bit-bytesliced-c-smallgcc2019090120190816
115421604048 0 016744 872 74432bit-bytesliced-c-smallgcc_-funroll-loops2019090120190816
116380004048 0 016744 872 74432bit-bytesliced-c-smallcc2019090120190816

Compiler output

Implementation: mmx
Security model: unknown
Compiler: cc
hash.c: hash.c:897:2: error: #error "MMX instructions must be enabled"
hash.c: #error "MMX instructions must be enabled"
hash.c: ^~~~~

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
cc mmx
gcc mmx
gcc -O2 -fomit-frame-pointer mmx
gcc -O3 -fomit-frame-pointer mmx
gcc -O -fomit-frame-pointer mmx
gcc -Os -fomit-frame-pointer mmx
gcc -fno-schedule-insns -O2 -fomit-frame-pointer mmx
gcc -fno-schedule-insns -O3 -fomit-frame-pointer mmx
gcc -fno-schedule-insns -O -fomit-frame-pointer mmx
gcc -fno-schedule-insns -Os -fomit-frame-pointer mmx
gcc -funroll-loops mmx
gcc -funroll-loops -O2 -fomit-frame-pointer mmx
gcc -funroll-loops -O3 -fomit-frame-pointer mmx
gcc -funroll-loops -O -fomit-frame-pointer mmx
gcc -funroll-loops -Os -fomit-frame-pointer mmx
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer mmx
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer mmx
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer mmx
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer mmx

Compiler output

Implementation: mmx
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
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: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments mmx
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments mmx
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments mmx
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments mmx
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mmx

Compiler output

Implementation: opt64
Security model: unknown
Compiler: cc
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: ^
try.c: /usr/bin/ld: crypto_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: 7, namely:
CompilerImplementations
cc opt64
gcc opt64
gcc -Os -fomit-frame-pointer opt64
gcc -fno-schedule-insns -Os -fomit-frame-pointer opt64
gcc -funroll-loops opt64
gcc -funroll-loops -Os -fomit-frame-pointer opt64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer opt64

Compiler output

Implementation: opt64
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -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: /usr/bin/ld: crypto_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: /usr/bin/ld: crypto_hash_groestl512.a(hash.o): in function `Update':
try.c: 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: 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: crypto_hash_groestl512.a(hash.o): in function `Final':
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: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/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: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments opt64
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments opt64
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments opt64
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments opt64

Compiler output

Implementation: opt64
Security model: unknown
Compiler: clang -mcpu=native -mfpu=neon -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: /usr/bin/ld: crypto_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: /usr/bin/ld: crypto_hash_groestl512.a(hash.o): in function `Update':
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: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o): in function `Final':
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: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/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 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments opt64

Compiler output

Implementation: opt64
Security model: unknown
Compiler: gcc -O2 -fomit-frame-pointer
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: ^
try.c: /usr/bin/ld: crypto_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: 4, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer opt64
gcc -O -fomit-frame-pointer opt64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer opt64
gcc -fno-schedule-insns -O -fomit-frame-pointer opt64

Compiler output

Implementation: opt64
Security model: unknown
Compiler: gcc -O3 -fomit-frame-pointer
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: ^
try.c: /usr/bin/ld: crypto_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: crypto_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 `F512'
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: crypto_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: 2, namely:
CompilerImplementations
gcc -O3 -fomit-frame-pointer opt64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer opt64

Compiler output

Implementation: opt64
Security model: unknown
Compiler: gcc -funroll-loops -O2 -fomit-frame-pointer
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: ^
try.c: /usr/bin/ld: crypto_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 `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 `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o):hash.c:(.text+0x...): more undefined references to `F1024' follow
try.c: /usr/bin/ld: crypto_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 `F512'
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: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o):hash.c:(.text+0x...): more undefined references to `F512' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -funroll-loops -O2 -fomit-frame-pointer opt64
gcc -funroll-loops -O -fomit-frame-pointer opt64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer opt64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer opt64

Compiler output

Implementation: opt64
Security model: unknown
Compiler: gcc -funroll-loops -O3 -fomit-frame-pointer
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: ^
try.c: /usr/bin/ld: crypto_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 `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 `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o):hash.c:(.text+0x...): more undefined references to `F1024' follow
try.c: /usr/bin/ld: crypto_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 `F512'
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: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o):hash.c:(.text+0x...): more undefined references to `F512' follow
try.c: /usr/bin/ld: crypto_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 `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 `F1024'
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o):hash.c:(.text+0x...): more undefined references to `F1024' follow
try.c: /usr/bin/ld: crypto_hash_groestl512.a(hash.o): in function `Update':
try.c: 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: hash.c:(.text+0x...): undefined reference to `F512'
try.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -funroll-loops -O3 -fomit-frame-pointer opt64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer opt64