Implementation notes: armeabi, pi2, crypto_hash/groestl256

Computer: pi2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_hash
Primitive: groestl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
147823neon-tablegcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
148523neon-tableclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
148533neon-tablegcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
148775neon-tablegcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
152859neon-tablegcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
167405neon-bitslicegcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
167454neon-bitslicegcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
168484neon-bitsliceclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
169529neon-bitslicegcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
176941arm11gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
178475neon-bitslicegcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
183850arm11gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
184167arm11gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
212777arm11gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
213328arm11clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
214587arm32gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
223236arm32gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
245787opt32gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
248880arm32gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
265635opt32gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
329454sphlibgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
334095sphlib-adaptedgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
36803232bit-2ktablegcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
373194sphlib-adaptedgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
37796732bit-2ktablegcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
386383sphlib-smallclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
386550sphlib-smallgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
390619sphlib-smallgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
429798sphlib-adaptedgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
436847sphlibgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
43829632bit-2ktablegcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
442381sphlibgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
456596sphlib-smallgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
457216sphlib-adaptedgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
460202sphlibgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
478661sphlib-adaptedclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
481299sphlibclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
490679opt32gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
521649sphlib-smallgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
53363132bit-2ktableclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
54356532bit-2ktablegcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
543607opt32gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
553067opt32clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
645030opt64gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
67243832bit-bytesliced-c-fastgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
67870632bit-bytesliced-c-fastclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
6868408bit_cgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
72801432bit-bytesliced-c-fastgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
747747opt64gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
75037532bit-bytesliced-c-smallgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
7733748bit_cgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
77876432bit-bytesliced-c-smallclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
8132618bit_cgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
84048732bit-bytesliced-c-fastgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
8784248bit_cclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
94439232bit-bytesliced-c-fastgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
959038opt64gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
10566598bit_cgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
125723732bit-bytesliced-c-smallgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
1447798opt64gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
147553932bit-bytesliced-c-smallgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
151038032bit-bytesliced-c-smallgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731

Checksum failure

Implementation: crypto_hash/groestl256/arm32
Compiler: gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv
f079b87636261cf3c9ea6c0c0fa5429569bc7bd103f8d0f0bb23bd4ba5d49053
Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv arm32

Test failure

Implementation: crypto_hash/groestl256/thumb-asm-fast
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments thumb-asm-fast thumb-asm-small
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv thumb-asm-fast thumb-asm-small
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv thumb-asm-fast thumb-asm-small
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv thumb-asm-fast thumb-asm-small
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv thumb-asm-small

Test failure

Implementation: crypto_hash/groestl256/thumb-asm-fast
Compiler: gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv
error 142
sh: line 1: 17779 Alarm clock killafter 3600 ./try

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv thumb-asm-fast

Compiler output

Implementation: crypto_hash/groestl256/arm32
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
groestl.c: groestl.c:193:5: error: invalid symbol redefinition
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:45:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T0up: "\
groestl.c: ^
groestl.c: gt;:3:2: note: instantiated into assembly here
groestl.c: T0up:
groestl.c: ^
groestl.c: groestl.c:193:5: error: invalid symbol redefinition
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:302:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T0dn: "\
groestl.c: ^
groestl.c: gt;:260:2: note: instantiated into assembly here
groestl.c: T0dn:
groestl.c: ^
groestl.c: groestl.c:193:5: error: invalid symbol redefinition
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:559:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T1up: "\
groestl.c: ^
groestl.c: gt;:517:2: note: instantiated into assembly here
groestl.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments arm32

Compiler output

Implementation: crypto_hash/groestl256/vperm-intr
Compiler: clang -mcpu=native -mfpu=neon -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: In file included from /usr/bin/../lib/clang/3.8.1/include/tmmintrin.h:27:
hash.c: In file included from /usr/bin/../lib/clang/3.8.1/include/pmmintrin.h:27:
hash.c: In file included from /usr/bin/../lib/clang/3.8.1/include/emmintrin.h:27:
hash.c: In file included from /usr/bin/../lib/clang/3.8.1/include/xmmintrin.h:27:
hash.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:45: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/bin/../lib/clang/3.8.1/include/mmintrin.h:69: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/bin/../lib/clang/3.8.1/include/mmintrin.h:75: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/bin/../lib/clang/3.8.1/include/mmintrin.h:81: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/bin/../lib/clang/3.8.1/include/mmintrin.h:87: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/bin/../lib/clang/3.8.1/include/mmintrin.h:93: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/bin/../lib/clang/3.8.1/include/mmintrin.h:99: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: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments vperm-intr

Compiler output

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

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: crypto_hash/groestl256/neon-vperm
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
vperm-neon.S: gt;:5:3: error: unknown directive
vperm-neon.S: .altmacro
vperm-neon.S: ^
vperm-neon.S: gt;:1:1: note: while in macro instantiation
vperm-neon.S: V_LOAD_STORE vld1.8, 8, [r7,:128]!
vperm-neon.S: ^
vperm-neon.S: gt;:7:3: note: while in macro instantiation
vperm-neon.S: vld1q 8, [r7,:128]!
vperm-neon.S: ^
vperm-neon.S: vperm-neon.S:1098:1: note: while in macro instantiation
vperm-neon.S: ROUND 0, 1, 2, 3 , 4 , 5 , 6 , 7, 8, 9, 10, 11, 12, 13, 14, 15
vperm-neon.S: ^
vperm-neon.S: gt;:1:1: error: unknown directive
vperm-neon.S: .noaltmacro
vperm-neon.S: ^
vperm-neon.S: gt;:6:3: note: while in macro instantiation
vperm-neon.S: concat_vld vld1.8, %.LdestLo, %.LdestHi, [r7,:128]!
vperm-neon.S: ^
vperm-neon.S: gt;:1:1: note: while in macro instantiation
vperm-neon.S: V_LOAD_STORE vld1.8, 8, [r7,:128]!
vperm-neon.S: ^
vperm-neon.S: gt;:7:3: note: while in macro instantiation
vperm-neon.S: vld1q 8, [r7,:128]!
vperm-neon.S: ^
vperm-neon.S: vperm-neon.S:1098:1: note: while in macro instantiation
vperm-neon.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments neon-vperm

Compiler output

Implementation: crypto_hash/groestl256/vperm-intr
Compiler: gcc -mcpu=native -mfpu=neon -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 -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv vperm-intr
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv vperm-intr
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv vperm-intr
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv vperm-intr

Compiler output

Implementation: crypto_hash/groestl256/neon-bitslice
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'crypto_hash_groestl256_neon_bitslice':
hash.c: hash.c:40:12: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
hash.c: ctx[i] = 0;
hash.c: ~~~~~~~^~~
hash.c: hash.c:39:3: note: within this loop
hash.c: for(i=0;i hash.c: ^~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv neon-bitslice
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv neon-bitslice
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv neon-bitslice
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv neon-bitslice

Compiler output

Implementation: crypto_hash/groestl256/neon-vperm
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'crypto_hash_groestl256_neon_vperm':
hash.c: hash.c:38:12: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
hash.c: ctx[i] = 0;
hash.c: ~~~~~~~^~~
hash.c: hash.c:37:3: note: within this loop
hash.c: for(i=0;i hash.c: ^~~
vperm-neon.S: vperm-neon.S: Assembler messages:
vperm-neon.S: vperm-neon.S:911: Error: expected symbol name
vperm-neon.S: vperm-neon.S:922: Error: expected symbol name

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

Compiler output

Implementation: crypto_hash/groestl256/opt64
Compiler: gcc -mcpu=native -mfpu=neon -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 -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv opt64
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv opt64
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv opt64
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv opt64