Implementation notes: armeabi, pi2, crypto_hash/blake512

Computer: pi2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_hash
Primitive: blake512
TimeImplementationCompilerBenchmark dateSUPERCOP version
56026vect128-neongcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
56028vect128-neongcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
56031vect128-neongcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
56210vect128-neongcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
57524vect128-neonclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
120516regsclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
126310bswapgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
127692bswapclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
133680regsgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
143376sphlib-smallclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
144785sphlibclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
149586bswapgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
154463refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080520160731
168109refgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
171446sphlib-smallgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
171769sphlibgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
172618sphlibgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
172641regsgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080520160731
174925sphlib-smallgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
186336refgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080520160731
206596refgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
209344sphlibgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
209364sphlib-smallgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
209381sphlibgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
211775sphlib-smallgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
215985refgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
216761bswapgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731
246501regsgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
262211bswapgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080520160731
275130regsgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080520160731

Test failure

Implementation: crypto_hash/blake512/vect128
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111

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

Compiler output

Implementation: crypto_hash/blake512/vect128-inplace
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
vector.c: vector.c:753:3: warning: implicit declaration of function 'v64_interleavel' is invalid in C99 [-Wimplicit-function-declaration]
vector.c: ROUND( 0); ROUND( 1); ROUND( 2); ROUND( 3);
vector.c: ^
vector.c: vector.c:670:5: note: expanded from macro 'ROUND'
vector.c: PERM(i); \
vector.c: ^
vector.c: ./perm512.h:1:17: note: expanded from macro 'PERM'
vector.c: #define PERM(i) XCAT(PERM_512_,i)
vector.c: ^
vector.c: ./vector.h:6:19: note: expanded from macro 'XCAT'
vector.c: #define XCAT(x,y) CAT(x,y)
vector.c: ^
vector.c: ./vector.h:5:19: note: expanded from macro 'CAT'
vector.c: #define CAT(x, y) x##y
vector.c: ^
vector.c: gt;:50:1: note: expanded from here
vector.c: PERM_512_0
vector.c: ^
vector.c: ./perm512.h:6:10: note: expanded from macro 'PERM_512_0'
vector.c: m0 = v64_interleavel(mm0, mm1); \
vector.c: ^
vector.c: vector.c:753:3: error: assigning to 'v64' (aka 'int64x2_t') from incompatible type 'int'
vector.c: ROUND( 0); ROUND( 1); ROUND( 2); ROUND( 3);
vector.c: ^~~~~~~~~
vector.c: vector.c:670:5: note: expanded from macro 'ROUND'
vector.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
vector.c: /tmp/cc6Qf9Fj.s: Assembler messages:
vector.c: /tmp/cc6Qf9Fj.s:232: Error: invalid instruction shape -- `vmov d22,s2'
vector.c: /tmp/cc6Qf9Fj.s:270: Error: invalid instruction shape -- `vmov d20,s0'
vector.c: /tmp/cc6Qf9Fj.s:271: Error: invalid instruction shape -- `vmov d21,s14'
vector.c: /tmp/cc6Qf9Fj.s:293: Error: invalid instruction shape -- `vmov d15,s26'
vector.c: /tmp/cc6Qf9Fj.s:310: Error: invalid instruction shape -- `vmov d18,s24'
vector.c: /tmp/cc6Qf9Fj.s:402: Error: invalid instruction shape -- `vmov d4,s10'
vector.c: /tmp/cc6Qf9Fj.s:403: Error: invalid instruction shape -- `vmov d5,s18'
vector.c: /tmp/cc6Qf9Fj.s:419: Error: invalid instruction shape -- `vmov d4,s26'
vector.c: /tmp/cc6Qf9Fj.s:434: Error: invalid instruction shape -- `vmov d7,s24'
vector.c: /tmp/cc6Qf9Fj.s:474: Error: invalid instruction shape -- `vmov d11,s22'
vector.c: /tmp/cc6Qf9Fj.s:544: Error: invalid instruction shape -- `vmov d31,s22'
vector.c: /tmp/cc6Qf9Fj.s:560: Error: invalid instruction shape -- `vmov d29,s30'
vector.c: /tmp/cc6Qf9Fj.s:1246: Error: invalid instruction shape -- `vmov d20,s18'
vector.c: /tmp/cc6Qf9Fj.s:1247: Error: invalid instruction shape -- `vmov d21,s0'
vector.c: /tmp/cc6Qf9Fj.s:1312: Error: invalid instruction shape -- `vmov d20,s2'
vector.c: /tmp/cc6Qf9Fj.s:1336: Error: invalid instruction shape -- `vmov d20,s18'
vector.c: /tmp/cc6Qf9Fj.s:1337: Error: invalid instruction shape -- `vmov d21,s16'
vector.c: /tmp/cc6Qf9Fj.s:1351: Error: invalid instruction shape -- `vmov d20,s2'
vector.c: /tmp/cc6Qf9Fj.s:1367: Error: invalid instruction shape -- `vmov d20,s14'
vector.c: /tmp/cc6Qf9Fj.s:1404: Error: invalid instruction shape -- `vmov d21,s14'
vector.c: /tmp/cc6Qf9Fj.s:1419: Error: invalid instruction shape -- `vmov d20,s16'
vector.c: /tmp/cc6Qf9Fj.s:1420: Error: invalid instruction shape -- `vmov d21,s12'
vector.c: /tmp/cc6Qf9Fj.s:1445: Error: invalid instruction shape -- `vmov d18,s18'
vector.c: /tmp/cc6Qf9Fj.s:1446: Error: invalid instruction shape -- `vmov d19,s0'
vector.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128-inplace
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
vector.c: In file included from vector.c:588:0:
vector.c: vector.c: In function 'round512':
vector.c: perm512.h:6:10: warning: implicit declaration of function 'v64_interleavel' [-Wimplicit-function-declaration]
vector.c: m0 = v64_interleavel(mm0, mm1); \
vector.c: ^
vector.c: vector.h:5:19: note: in expansion of macro 'PERM_512_0'
vector.c: #define CAT(x, y) x##y
vector.c: ^
vector.c: vector.h:6:19: note: in expansion of macro 'CAT'
vector.c: #define XCAT(x,y) CAT(x,y)
vector.c: ^~~
vector.c: perm512.h:1:17: note: in expansion of macro 'XCAT'
vector.c: #define PERM(i) XCAT(PERM_512_,i)
vector.c: ^~~~
vector.c: vector.c:670:5: note: in expansion of macro 'PERM'
vector.c: PERM(i); \
vector.c: ^~~~
vector.c: vector.c:753:3: note: in expansion of macro 'ROUND'
vector.c: ROUND( 0); ROUND( 1); ROUND( 2); ROUND( 3);
vector.c: ^~~~~
vector.c: perm512.h:6:8: error: incompatible types when assigning to type 'v64' from type 'int'
vector.c: m0 = v64_interleavel(mm0, mm1); \
vector.c: ^
vector.c: vector.h:5:19: note: in expansion of macro 'PERM_512_0'
vector.c: #define CAT(x, y) x##y
vector.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv
vector.c: /tmp/ccWFypBH.s: Assembler messages:
vector.c: /tmp/ccWFypBH.s:293: Error: invalid instruction shape -- `vmov d24,s28'
vector.c: /tmp/ccWFypBH.s:294: Error: invalid instruction shape -- `vmov d25,s30'
vector.c: /tmp/ccWFypBH.s:311: Error: invalid instruction shape -- `vmov d16,s18'
vector.c: /tmp/ccWFypBH.s:312: Error: invalid instruction shape -- `vmov d17,s2'
vector.c: /tmp/ccWFypBH.s:338: Error: invalid instruction shape -- `vmov d25,s14'
vector.c: /tmp/ccWFypBH.s:353: Error: invalid instruction shape -- `vmov d24,s0'
vector.c: /tmp/ccWFypBH.s:456: Error: invalid instruction shape -- `vmov d24,s26'
vector.c: /tmp/ccWFypBH.s:465: Error: invalid instruction shape -- `vmov d4,s24'
vector.c: /tmp/ccWFypBH.s:466: Error: invalid instruction shape -- `vmov d5,s10'
vector.c: /tmp/ccWFypBH.s:505: Error: invalid instruction shape -- `vmov d25,s26'
vector.c: /tmp/ccWFypBH.s:513: Error: invalid instruction shape -- `vmov d24,s28'
vector.c: /tmp/ccWFypBH.s:514: Error: invalid instruction shape -- `vmov d25,s18'
vector.c: /tmp/ccWFypBH.s:523: Error: invalid instruction shape -- `vmov d8,s28'
vector.c: /tmp/ccWFypBH.s:524: Error: invalid instruction shape -- `vmov d9,s18'
vector.c: /tmp/ccWFypBH.s:542: Error: invalid instruction shape -- `vmov d5,s26'
vector.c: /tmp/ccWFypBH.s:571: Error: invalid instruction shape -- `vmov d8,s28'
vector.c: /tmp/ccWFypBH.s:572: Error: invalid instruction shape -- `vmov d9,s18'
vector.c: /tmp/ccWFypBH.s:587: Error: invalid instruction shape -- `vmov d3,s6'
vector.c: /tmp/ccWFypBH.s:598: Error: invalid instruction shape -- `vmov d3,s24'
vector.c: /tmp/ccWFypBH.s:636: Error: invalid instruction shape -- `vmov d27,s30'
vector.c: /tmp/ccWFypBH.s:643: Error: invalid instruction shape -- `vmov d24,s30'
vector.c: /tmp/ccWFypBH.s:648: Error: invalid instruction shape -- `vmov d15,s28'
vector.c: /tmp/ccWFypBH.s:666: Error: invalid instruction shape -- `vmov d15,s30'
vector.c: /tmp/ccWFypBH.s:706: Error: invalid instruction shape -- `vmov d14,s30'
vector.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv
vector.c: /tmp/ccUAfeox.s: Assembler messages:
vector.c: /tmp/ccUAfeox.s:255: Error: invalid instruction shape -- `vmov d26,s6'
vector.c: /tmp/ccUAfeox.s:256: Error: invalid instruction shape -- `vmov d27,s4'
vector.c: /tmp/ccUAfeox.s:268: Error: invalid instruction shape -- `vmov d24,s2'
vector.c: /tmp/ccUAfeox.s:269: Error: invalid instruction shape -- `vmov d25,s0'
vector.c: /tmp/ccUAfeox.s:281: Error: invalid instruction shape -- `vmov d22,s20'
vector.c: /tmp/ccUAfeox.s:282: Error: invalid instruction shape -- `vmov d23,s22'
vector.c: /tmp/ccUAfeox.s:294: Error: invalid instruction shape -- `vmov d8,s24'
vector.c: /tmp/ccUAfeox.s:295: Error: invalid instruction shape -- `vmov d9,s26'
vector.c: /tmp/ccUAfeox.s:307: Error: invalid instruction shape -- `vmov d2,s28'
vector.c: /tmp/ccUAfeox.s:308: Error: invalid instruction shape -- `vmov d3,s6'
vector.c: /tmp/ccUAfeox.s:549: Error: invalid instruction shape -- `vmov d4,s12'
vector.c: /tmp/ccUAfeox.s:550: Error: invalid instruction shape -- `vmov d5,s14'
vector.c: /tmp/ccUAfeox.s:568: Error: invalid instruction shape -- `vmov d29,s16'
vector.c: /tmp/ccUAfeox.s:576: Error: invalid instruction shape -- `vmov d26,s30'
vector.c: /tmp/ccUAfeox.s:577: Error: invalid instruction shape -- `vmov d27,s16'
vector.c: /tmp/ccUAfeox.s:586: Error: invalid instruction shape -- `vmov d25,s18'
vector.c: /tmp/ccUAfeox.s:606: Error: invalid instruction shape -- `vmov d9,s18'
vector.c: /tmp/ccUAfeox.s:614: Error: invalid instruction shape -- `vmov d14,s30'
vector.c: /tmp/ccUAfeox.s:844: Error: invalid instruction shape -- `vmov d4,s22'
vector.c: /tmp/ccUAfeox.s:864: Error: invalid instruction shape -- `vmov d28,s30'
vector.c: /tmp/ccUAfeox.s:882: Error: invalid instruction shape -- `vmov d24,s14'
vector.c: /tmp/ccUAfeox.s:891: Error: invalid instruction shape -- `vmov d22,s14'
vector.c: /tmp/ccUAfeox.s:892: Error: invalid instruction shape -- `vmov d23,s16'
vector.c: /tmp/ccUAfeox.s:900: Error: invalid instruction shape -- `vmov d10,s22'
vector.c: ...

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

Compiler output

Implementation: crypto_hash/blake512/vect128
Compiler: gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv
vector.c: /tmp/ccFjQRMh.s: Assembler messages:
vector.c: /tmp/ccFjQRMh.s:578: Error: invalid instruction shape -- `vmov d0,s6'
vector.c: /tmp/ccFjQRMh.s:579: Error: invalid instruction shape -- `vmov d1,s4'
vector.c: /tmp/ccFjQRMh.s:598: Error: invalid instruction shape -- `vmov d2,s6'
vector.c: /tmp/ccFjQRMh.s:599: Error: invalid instruction shape -- `vmov d3,s4'
vector.c: /tmp/ccFjQRMh.s:3119: Error: invalid instruction shape -- `vmov d14,s28'
vector.c: /tmp/ccFjQRMh.s:3120: Error: invalid instruction shape -- `vmov d15,s30'

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