Implementation notes: aarch64, hikey960, crypto_hash/blake512

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: blake512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
013217 0 024344 816 760bswapclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
020384 0 033882 920 776bswapgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
04041 0 017433 912 744refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
03489 0 013689 912 744refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
038973 0 051429 896 744regscc2019112620190816
013384 0 023497 912 744regsgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
021600 0 035098 920 776regsgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
012364 0 021885 896 744regsgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
012364 0 021885 896 744regsgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
052908 0 065430 904 744sphlibcc2019112620190816
024456 0 034714 920 744sphlibgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
022412 0 031974 904 744sphlibgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
024456 0 034722 920 744sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
08952 0 022418 920 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
666322412 0 032006 904 744sphlibgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
666322412 0 031974 904 744sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
832511708 0 021197 896 744bswapgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
832516480 0 028330 920 776regsgcc_-O3_-fomit-frame-pointer2019112620190816
832514216 0 024409 912 744regsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
888313144 0 026529 912 744bswapgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
88833737 0 014848 816 760refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
88833745 0 014872 816 760refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
88836212 0 015782 904 744sphlib-smallgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
88847740 0 017978 920 744sphlib-smallgcc_-O2_-fomit-frame-pointer2019112620190816
1169322412 0 032006 904 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
1248913756 0 026921 912 744regsgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
1665013217 0 024344 816 760bswapclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
1665015280 0 027130 920 776bswapgcc_-O3_-fomit-frame-pointer2019112620190816
1665012672 0 022857 912 744bswapgcc_-O_-fomit-frame-pointer2019112620190816
1665015376 0 027194 920 776bswapgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
1665012672 0 022857 912 744bswapgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
1665013100 0 026265 912 744bswapgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
1665011712 0 021237 896 744bswapgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
1665011712 0 021237 896 744bswapgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
1665015280 0 027114 920 776bswapgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
1665011708 0 021197 896 744bswapgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
166503745 0 014872 816 760refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
166508385 0 020210 920 776refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
166503489 0 013681 912 744refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
166503353 0 012885 896 744refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
1665014537 0 025664 816 760regsclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
1665014537 0 025664 816 760regsclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
1665014537 0 025664 816 760regsclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
1665012360 0 021853 896 744regsgcc_-Os_-fomit-frame-pointer2019112620190816
1665016608 0 028426 920 776regsgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
1665012360 0 021853 896 744regsgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
1665013848 0 027049 912 744regsgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
1665021776 0 035242 920 776regsgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
1665013292 0 023449 912 744regsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
1665016480 0 028314 920 776regsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
1665012360 0 021853 896 744regsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
1665024840 0 035960 816 760sphlibclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
1665029684 0 041530 920 776sphlibgcc_-O3_-fomit-frame-pointer2019112620190816
1665024456 0 034714 920 744sphlibgcc_-O_-fomit-frame-pointer2019112620190816
1665029604 0 043114 920 776sphlibgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
1665025104 0 038562 920 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
166508376 0 019488 816 760sphlib-smallclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
1665014212 0 026074 920 776sphlib-smallgcc_-O3_-fomit-frame-pointer2019112620190816
1665014276 0 026122 920 776sphlib-smallgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
1665014148 0 027674 920 776sphlib-smallgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
166508292 0 021578 920 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
166507740 0 017978 920 744sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
166506212 0 015782 904 744sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
1666411708 0 021197 896 744bswapgcc_-Os_-fomit-frame-pointer2019112620190816
1666423932 0 037170 920 744sphlibgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
177666212 0 015814 904 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
1776614212 0 026074 920 776sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
2081512672 0 022865 912 744bswapgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
2081529780 0 041610 920 776sphlibgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
2338613192 0 026393 912 744bswapgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
2338612636 0 022793 912 744bswapgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
233864041 0 017433 912 744refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
2338614529 0 025640 816 760regsclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
2338623276 0 033506 920 744sphlibgcc_-O2_-fomit-frame-pointer2019112620190816
2443114688 0 028073 912 744regsgcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
2497513209 0 024320 816 760bswapclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
2497513217 0 024344 816 760bswapclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
2497512636 0 022793 912 744bswapgcc_-O2_-fomit-frame-pointer2019112620190816
249754233 0 014353 912 744refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
2497513345 0 026850 920 776refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
2497514216 0 024401 912 744regsgcc_-O_-fomit-frame-pointer2019112620190816
2497524840 0 035944 816 760sphlibclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
2497524840 0 035960 816 760sphlibclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
2497522412 0 031974 904 744sphlibgcc_-Os_-fomit-frame-pointer2019112620190816
2497523924 0 037202 920 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
2497529716 0 043194 920 776sphlibgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
2497523276 0 033506 920 744sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
2497529684 0 041530 920 776sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
249758376 0 019504 816 760sphlib-smallclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
333008225 0 020082 920 776refgcc_-O3_-fomit-frame-pointer2019112620190816
333003349 0 012845 896 744refgcc_-Os_-fomit-frame-pointer2019112620190816
333003349 0 012845 896 744refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
3330013292 0 023449 912 744regsgcc_-O2_-fomit-frame-pointer2019112620190816
333008376 0 019504 816 760sphlib-smallclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
333008376 0 019504 816 760sphlib-smallclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
333008236 0 018506 920 744sphlib-smallgcc_-O_-fomit-frame-pointer2019112620190816
333043349 0 012845 896 744refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
333048436 0 021682 920 744sphlib-smallgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
3331513100 0 025630 904 744sphlib-smallgcc_-funroll-loops2019112620190816
3507912728 0 022841 912 744bswapgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
350793353 0 012885 896 744refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
3507924840 0 035960 816 760sphlibclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
3507923252 0 033442 920 744sphlibgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
350796212 0 015782 904 744sphlib-smallgcc_-Os_-fomit-frame-pointer2019112620190816
4162513144 0 026529 912 744bswapgcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
4162520544 0 034010 920 776bswapgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
416254237 0 014401 912 744refgcc_-O2_-fomit-frame-pointer2019112620190816
416254877 0 018049 912 744refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
416254929 0 018137 912 744refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
4162513505 0 026978 920 776refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
416254237 0 014401 912 744refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
4162514216 0 024401 912 744regsgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
4162514688 0 028073 912 744regsgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
416306212 0 015814 904 744sphlib-smallgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
467723745 0 014872 816 760refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
499508952 0 022418 920 744sphlib-smallgcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
499508236 0 018506 920 744sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
582753489 0 013681 912 744refgcc_-O_-fomit-frame-pointer2019112620190816
584658305 0 020146 920 776refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
584657668 0 017866 920 744sphlib-smallgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
5846514148 0 027642 920 776sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
6660034769 0 047221 896 744bswapcc2019112620190816
7008925104 0 038562 920 744sphlibgcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
749257533 0 019989 896 744refgcc_-funroll-loops2019112620190816
8185152908 0 065430 904 744sphlibgcc_-funroll-loops2019112620190816
854528236 0 018506 920 744sphlib-smallgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
10523752908 0 065430 904 744sphlibgcc2019112620190816
10822534769 0 047221 896 744bswapgcc_-funroll-loops2019112620190816
12072734769 0 047221 896 744bswapgcc2019112620190816
13320038973 0 051429 896 744regsgcc2019112620190816
1498507533 0 019989 896 744refgcc2019112620190816
18708838973 0 051429 896 744regsgcc_-funroll-loops2019112620190816
19147513100 0 025630 904 744sphlib-smallgcc2019112620190816
19561413100 0 025630 904 744sphlib-smallcc2019112620190816
2164767533 0 019989 896 744refcc2019112620190816

Compiler output

Implementation: vect128
Security model: unknown
Compiler: cc
vector.c: In file included from vector.c:7:0:
vector.c: vector.h:968:2: error: #error "I don't know how to vectorize on this architecture."
vector.c: #error "I don't know how to vectorize on this architecture."
vector.c: ^~~~~
vector.c: vector.h:982:3: error: unknown type name 'v16'
vector.c: v16 v16;
vector.c: ^~~
vector.c: vector.h:987:3: error: unknown type name 'v8'
vector.c: v8 v8;
vector.c: ^~
vector.c: vector.h:992:3: error: unknown type name 'v32'
vector.c: v32 v;
vector.c: ^~~
vector.c: vector.h:997:3: error: unknown type name 'v64'
vector.c: v64 v;
vector.c: ^~~
vector.c: vector.c:62:30: warning: implicit declaration of function 'CV' [-Wimplicit-function-declaration]
vector.c: static const union cv v128 = CV(128);
vector.c: ^~
vector.c: vector.c:62:30: error: invalid initializer
vector.c: vector.c:63:30: error: invalid initializer
vector.c: static const union cv v255 = CV(255);
vector.c: ^~
vector.c: vector.c:64:30: error: invalid initializer
vector.c: static const union cv v257 = CV(257);
vector.c: ...

Number of similar (compiler,implementation) pairs: 46, namely:
CompilerImplementations
cc vect128
gcc vect128
gcc -O2 -fomit-frame-pointer vect128
gcc -O3 -fomit-frame-pointer vect128
gcc -O -fomit-frame-pointer vect128
gcc -Os -fomit-frame-pointer vect128
gcc -fno-schedule-insns -O2 -fomit-frame-pointer vect128
gcc -fno-schedule-insns -O3 -fomit-frame-pointer vect128
gcc -fno-schedule-insns -O -fomit-frame-pointer vect128
gcc -fno-schedule-insns -Os -fomit-frame-pointer vect128
gcc -funroll-loops vect128
gcc -funroll-loops -O2 -fomit-frame-pointer vect128
gcc -funroll-loops -O3 -fomit-frame-pointer vect128
gcc -funroll-loops -O -fomit-frame-pointer vect128
gcc -funroll-loops -Os -fomit-frame-pointer vect128
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer vect128
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer vect128
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer vect128
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer vect128
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv vect128
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv vect128
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv vect128
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv vect128
cc vect128-inplace
gcc vect128-inplace
gcc -O2 -fomit-frame-pointer vect128-inplace
gcc -O3 -fomit-frame-pointer vect128-inplace
gcc -O -fomit-frame-pointer vect128-inplace
gcc -Os -fomit-frame-pointer vect128-inplace
gcc -fno-schedule-insns -O2 -fomit-frame-pointer vect128-inplace
gcc -fno-schedule-insns -O3 -fomit-frame-pointer vect128-inplace
gcc -fno-schedule-insns -O -fomit-frame-pointer vect128-inplace
gcc -fno-schedule-insns -Os -fomit-frame-pointer vect128-inplace
gcc -funroll-loops vect128-inplace
gcc -funroll-loops -O2 -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -O3 -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -O -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -Os -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer vect128-inplace
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer vect128-inplace
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv vect128-inplace
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv vect128-inplace
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv vect128-inplace
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv vect128-inplace

Compiler output

Implementation: vect128
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
vector.c: In file included from vector.c:7:
vector.c: ./vector.h:968:2: error: "I don't know how to vectorize on this architecture."
vector.c: #error "I don't know how to vectorize on this architecture."
vector.c: ^
vector.c: ./vector.h:982:3: error: unknown type name 'v16'
vector.c: v16 v16;
vector.c: ^
vector.c: ./vector.h:987:3: error: unknown type name 'v8'
vector.c: v8 v8;
vector.c: ^
vector.c: ./vector.h:992:3: error: unknown type name 'v32'; did you mean 'u32'?
vector.c: v32 v;
vector.c: ^~~
vector.c: u32
vector.c: ./compat.h:29:18: note: 'u32' declared here
vector.c: typedef uint32_t u32;
vector.c: ^
vector.c: In file included from vector.c:7:
vector.c: ./vector.h:997:3: error: unknown type name 'v64'; did you mean 'u64'?
vector.c: v64 v;
vector.c: ^~~
vector.c: u64
vector.c: ./compat.h:34:28: note: 'u64' declared here
vector.c: typedef unsigned long long u64;
vector.c: ^
vector.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments vect128
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments vect128
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments vect128
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments vect128
clang -O3 -fomit-frame-pointer -Qunused-arguments vect128-inplace
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments vect128-inplace
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments vect128-inplace
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments vect128-inplace