Implementation notes: aarch64, jetsontx1, crypto_hash/mgrostl256

Computer: jetsontx1
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20180818
Operation: crypto_hash
Primitive: mgrostl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
112968opt-32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
116584opt-32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
119782opt-32clang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
121146opt-32clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
122395opt-32clang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
126404opt-32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
1467196refclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
1537388refclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
1559527refclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
2048980refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
2144143refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
2340029refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818

Compiler output

Implementation: crypto_hash/mgrostl256/opt-64
Compiler: clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c:239: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:238: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:240: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:238: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:241: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:238: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:242: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:238:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv opt-64
clang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv opt-64
clang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv opt-64

Compiler output

Implementation: crypto_hash/mgrostl256/opt-64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c:242: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:241: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:240: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:239: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: crypto_hash_mgrostl256.a(hash.o): In function `Transform':
try.c: 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 opt-64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv opt-64

Compiler output

Implementation: crypto_hash/mgrostl256/opt-64
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
hash.c: hash.c:242: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:241: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:240: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:239: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: crypto_hash_mgrostl256.a(hash.o): In function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: crypto_hash_mgrostl256.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 `F512'
try.c: crypto_hash_mgrostl256.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 `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 opt-64