Implementation notes: aarch64, lionheart30, crypto_hash/groestl512

Computer: lionheart30
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: groestl512
TimeImplementationCompilerBenchmark dateSUPERCOP version
66315sphlib-adaptedclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
66831sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
68727sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
69005sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
76666sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
83807sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
85348sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
87887opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
88461opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
92282opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
98187sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
102079sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
110354sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
110642opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
113736sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
115050sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
117062sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
119519sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
134697sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
208125opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
209845opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
210100opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
242322opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
249299opt32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
45960132bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
68819632bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
70346532bit-bytesliced-c-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
75542432bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
111059232bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806

Compiler output

Implementation: crypto_hash/groestl512/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_groestl512.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_groestl512.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_groestl512.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/groestl512/mmx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -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: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mmx

Compiler output

Implementation: crypto_hash/groestl512/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

Compiler output

Implementation: crypto_hash/groestl512/mmx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv mmx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv mmx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv mmx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv mmx