Implementation notes: aarch64, lionheart30, crypto_hash/groestl256

Computer: lionheart30
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: groestl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
42114sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
42450sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
43090sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
43590sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
44899sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
45084sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
45839sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
46327sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
46612sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
50135sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
52969sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
57025opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
60041opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
63921sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
65364sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
69850opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
82614opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
82823sphlib-adaptedclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
111500sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
13118232bit-2ktablegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
13432832bit-2ktablegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
13775732bit-2ktablegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
139233opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
141483opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
143373opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
144011opt32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
14715432bit-2ktableclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
155512opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
16954332bit-2ktablegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
17525232bit-bytesliced-c-fastgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
23614532bit-bytesliced-c-fastgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
26737532bit-bytesliced-c-fastclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
2800178bit_cclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
28147532bit-bytesliced-c-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016082020160806
28281232bit-bytesliced-c-fastgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
29517832bit-bytesliced-c-fastgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
30553232bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
3109798bit_cgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016082020160806
3219628bit_cgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806
3638838bit_cgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
3942248bit_cgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
48906232bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016082020160806
55582132bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016082020160806
60045132bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016082020160806

Compiler output

Implementation: crypto_hash/groestl256/vperm-intr
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:34:
hash.c: In file included from ./groestl-intr-vperm.h:13:
hash.c: /usr/bin/../lib/clang/3.4/include/tmmintrin.h:28:2: error: "SSSE3 instruction set not enabled"
hash.c: #error "SSSE3 instruction set not enabled"
hash.c: ^
hash.c: In file included from hash.c:34:
hash.c: ./groestl-intr-vperm.h:17:1: error: unknown type name '__m128i'
hash.c: __m128i ROUND_CONST_Lx;
hash.c: ^
hash.c: ./groestl-intr-vperm.h:18:1: error: unknown type name '__m128i'
hash.c: __m128i ROUND_CONST_L0[ROUNDS512];
hash.c: ^
hash.c: ./groestl-intr-vperm.h:19:1: error: unknown type name '__m128i'
hash.c: __m128i ROUND_CONST_L7[ROUNDS512];
hash.c: ^
hash.c: ./groestl-intr-vperm.h:20:1: error: unknown type name '__m128i'
hash.c: __m128i ROUND_CONST_P[ROUNDS1024];
hash.c: ^
hash.c: ./groestl-intr-vperm.h:21:1: error: unknown type name '__m128i'
hash.c: __m128i ROUND_CONST_Q[ROUNDS1024];
hash.c: ^
hash.c: ./groestl-intr-vperm.h:22:1: error: unknown type name '__m128i'
hash.c: __m128i TRANSP_MASK;
hash.c: ^
hash.c: ./groestl-intr-vperm.h:23:1: error: unknown type name '__m128i'
hash.c: ...

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/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/vperm-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:34:0:
hash.c: groestl-intr-vperm.h:13:23: fatal error: tmmintrin.h: No such file or directory
hash.c: #include gt;
hash.c: ^
hash.c: compilation terminated.

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

Compiler output

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