Implementation notes: aarch64, jetsontx1, crypto_hash/groestl256

Computer: jetsontx1
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20180818
Operation: crypto_hash
Primitive: groestl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
41546sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
42086sphlib-smallclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
42361sphlib-smallclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
42838sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
42848sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
44298sphlib-smallclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
44694sphlib-adaptedclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
44750sphlibclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
46781sphlib-adaptedclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
48433sphlib-adaptedclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
50197sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
52229sphlibclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
55243sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
60021sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
62106sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
68826sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
74465sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
88684sphlibclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
12766532bit-2ktablegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
13219532bit-2ktablegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
13682232bit-2ktablegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
137251opt32clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
137329opt32clang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
137454opt32clang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
139238opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
142755opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
143048opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
14744432bit-2ktableclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
14790032bit-2ktableclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
14797132bit-2ktableclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
17740732bit-bytesliced-c-fastclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
17743132bit-bytesliced-c-fastclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
18537132bit-bytesliced-c-fastgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
23123832bit-bytesliced-c-fastgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
2545908bit_cgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
25575832bit-bytesliced-c-fastclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
25580432bit-bytesliced-c-smallclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
25665932bit-bytesliced-c-smallclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
2577588bit_cclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
26627432bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018101320180818
2685598bit_cgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
2693608bit_cclang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv2018101320180818
2693638bit_cclang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv2018101320180818
2712908bit_cgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
27149832bit-bytesliced-c-fastgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818
39172132bit-bytesliced-c-smallclang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv2018101320180818
46987432bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018101320180818
51122632bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018101320180818

Compiler output

Implementation: crypto_hash/groestl256/vperm-intr
Compiler: clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:34:
hash.c: In file included from ./groestl-intr-vperm.h:13:
hash.c: In file included from /usr/lib/llvm-6.0/lib/clang/6.0.0/include/tmmintrin.h:27:
hash.c: In file included from /usr/lib/llvm-6.0/lib/clang/6.0.0/include/pmmintrin.h:27:
hash.c: In file included from /usr/lib/llvm-6.0/lib/clang/6.0.0/include/emmintrin.h:27:
hash.c: In file included from /usr/lib/llvm-6.0/lib/clang/6.0.0/include/xmmintrin.h:27:
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl256/opt64
Compiler: clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv
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: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang-6.0 -mcpu=cortex-a57 -O2 -fomit-frame-pointer -fwrapv opt64
clang-6.0 -mcpu=cortex-a57 -O3 -fomit-frame-pointer -fwrapv opt64
clang-6.0 -mcpu=cortex-a57 -Os -fomit-frame-pointer -fwrapv 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:
hash.c: groestl-intr-vperm.h:13:10: 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: 3, 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 -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: ^
try.c: crypto_hash_groestl256.a(hash.o): In function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
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 -O2 -fomit-frame-pointer -fwrapv opt64

Compiler output

Implementation: crypto_hash/groestl256/opt64
Compiler: gcc -march=native -mtune=native -O3 -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: ^
try.c: crypto_hash_groestl256.a(hash.o): In function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: crypto_hash_groestl256.a(hash.o): In function `Update':
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: hash.c:(.text+0x...): undefined reference to `F512'
try.c: crypto_hash_groestl256.a(hash.o): In function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
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 `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 opt64

Compiler output

Implementation: crypto_hash/groestl256/opt64
Compiler: gcc -march=native -mtune=native -Os -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: ^
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: 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 opt64