Implementation notes: aarch64, rockpi4, crypto_hash/simd512

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: simd512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6979746336 0 060159 896 760sphlibgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
7103645776 0 058239 896 760sphlibgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
7227551636 0 065487 896 760sphlibgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
7681848923 388 062954 1316 760optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
7970947155 388 059842 1316 760optgcc_-O3_-fomit-frame-pointer2019091120190816
7970948603 388 062658 1316 760optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
8673045828 0 057087 896 744sphlibgcc_-O2_-fomit-frame-pointer2019091120190816
8838246572 0 057943 896 744sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
8962145704 0 060159 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
9209943140 0 054367 896 744sphlibgcc_-O_-fomit-frame-pointer2019091120190816
9251229316 0 043199 896 760sphlib-smallgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
9292528400 0 040887 896 760sphlib-smallgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
9375143816 0 055039 896 744sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
9375128732 0 041247 896 760sphlib-smallgcc_-O3_-fomit-frame-pointer2019091120190816
9457749804 0 063124 800 768sphlibclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
9581629156 0 041767 896 760sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
9870726876 0 040252 800 768sphlib-smallclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
10201125588 0 038975 896 744sphlib-smallgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
10283725492 0 038943 896 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
10366327548 0 040924 800 768sphlib-smallclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
10407627608 0 040940 800 768sphlib-smallclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
10407627548 0 040924 800 768sphlib-smallclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
10490223892 0 035143 896 744sphlib-smallgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
10779327739 388 040787 1212 768optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
10779327739 388 040787 1212 768optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
11605325160 0 036423 896 744sphlib-smallgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
12059614859 388 026234 1308 744optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
12266141488 0 051903 880 736sphlibgcc_-Os_-fomit-frame-pointer2019091120190816
12307414923 388 026354 1308 744optgcc_-O2_-fomit-frame-pointer2019091120190816
12307441488 0 051903 880 736sphlibgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
12307441488 0 051967 880 736sphlibgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
12348741488 0 051967 880 736sphlibgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
13257329855 388 044490 1308 744optgcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
13422551284 0 063759 896 760sphlibgcc_-O3_-fomit-frame-pointer2019091120190816
13463846007 388 058794 1316 760optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
13670352300 0 064879 896 760sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
13918123596 0 034103 880 736sphlib-smallgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
14785415719 388 027130 1308 744optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
15074515903 388 027314 1308 744optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
15157148156 0 061495 896 744sphlibgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
15900528952 0 042807 896 760sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
16272213215 388 023842 1292 736optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
16396142788 0 056207 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
16437413183 388 023738 1292 736optgcc_-Os_-fomit-frame-pointer2019091120190816
16478713215 388 023842 1292 736optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
16850447491 388 064258 1316 760optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
17387324203 388 037730 1308 744optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
17882924339 388 037938 1308 744optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
18667643652 0 057028 800 768sphlibclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
19534924268 0 035559 896 744sphlib-smallgcc_-O2_-fomit-frame-pointer2019091120190816
19576224652 0 036055 896 744sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
20195727451 388 040499 1212 768optclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
20360940780 0 051991 896 744sphlibgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
20732649804 0 063172 800 768sphlibclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
20773949804 0 063172 800 768sphlibclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
20773949804 0 063172 800 768sphlibclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
21269527631 388 040627 1212 768optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
21393427739 388 040787 1212 768optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
21723842108 0 052519 880 736sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
22136823596 0 034103 880 736sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
22302027548 0 040924 800 768sphlib-smallclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
24160545704 0 060159 896 744sphlibgcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
25110415123 388 026658 1308 744optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
25151723596 0 034039 880 736sphlib-smallgcc_-Os_-fomit-frame-pointer2019091120190816
25151723596 0 034039 880 736sphlib-smallgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
25316923924 0 034367 880 736sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
25399543140 0 054367 896 744sphlibgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
30025127672 0 042159 896 744sphlib-smallgcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
30025127672 0 042159 896 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
31016325160 0 036423 896 744sphlib-smallgcc_-O_-fomit-frame-pointer2019091120190816
31346725536 0 036799 896 744sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
31924913183 388 023738 1292 736optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
32214013231 388 023802 1292 736optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
33494329855 388 044490 1308 744optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
37293915719 388 027130 1308 744optgcc_-O_-fomit-frame-pointer2019091120190816
51335995112 0 0112663 880 744sphlibcc2019091120190816
55589862120 0 079695 880 744sphlib-smallgcc2019091120190816
93792395112 0 0112663 880 744sphlibgcc_-funroll-loops2019091120190816
94205395112 0 0112663 880 744sphlibgcc2019091120190816
125882462120 0 079695 880 744sphlib-smallcc2019091120190816
126047662120 0 079695 880 744sphlib-smallgcc_-funroll-loops2019091120190816
287324137893 388 051466 1292 744optcc2019091120190816
289430437893 388 051466 1292 744optgcc_-funroll-loops2019091120190816
289843437893 388 051466 1292 744optgcc2019091120190816
530581112643 388 026658 1316 760refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
531944017587 388 031131 1212 768refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091120190816
534422019019 388 032619 1212 768refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091120190816
535661019019 388 032619 1212 768refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091120190816
53636315007 388 016418 1308 744refgcc_-O2_-fomit-frame-pointer2019091120190816
573409211147 388 027898 1316 760refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091120190816
58183448055 388 022666 1308 744refgcc_-funroll-loops_-O_-fomit-frame-pointer2019091120190816
58621224847 388 016226 1308 744refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091120190816
604053812467 388 026514 1316 760refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091120190816
61495707979 388 021466 1308 744refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091120190816
625777611043 388 023706 1316 760refgcc_-O3_-fomit-frame-pointer2019091120190816
630072811379 388 024146 1316 760refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091120190816
64882305079 388 016594 1308 744refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091120190816
674635519015 388 032619 1212 768refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091120190816
77891804387 388 014970 1292 736refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
77920714387 388 014970 1292 736refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091120190816
82178744339 388 014874 1292 736refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091120190816
82182874371 388 014906 1292 736refgcc_-Os_-fomit-frame-pointer2019091120190816
82195264371 388 014906 1292 736refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091120190816
84458507995 388 021554 1308 744refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
861807119019 388 032619 1212 768refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091120190816
106256645055 388 016410 1308 744refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091120190816
107450214851 388 016226 1308 744refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
107470864851 388 016226 1308 744refgcc_-O_-fomit-frame-pointer2019091120190816
112269928055 388 022666 1308 744refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091120190816
308366458041 388 021562 1292 744refgcc_-funroll-loops2019091120190816
309332878041 388 021562 1292 744refcc2019091120190816
314268228041 388 021562 1292 744refgcc2019091120190816

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
reference.c: reference.c:69:82: warning: expression result unused [-Wunused-value]
reference.c: state->A[j] = state->D[j] + w[j] + F(state->A[j], state->B[j], state->C[j]), s;
reference.c: ^
reference.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: vect128
Security model: unknown
Compiler: cc
vector.c: In file included from vector.c:5:
vector.c: vector.h:252: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:344:25: error: array type has incomplete element type 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^~~~~~~~~~~~~
vector.c: vector.h:355:25: error: array type has incomplete element type 'union cv'
vector.c: static const union cv FFT128_Twiddle[] = {
vector.c: ^~~~~~~~~~~~~~
vector.c: vector.h:367:25: error: array type has incomplete element type 'union cv'
vector.c: static const union cv FFT256_Twiddle[] = {
vector.c: ^~~~~~~~~~~~~~
vector.c: vector.c:24:20: error: variable 'V128' has initializer but incomplete type
vector.c: static const union cv V128 = CV(128);
vector.c: ^~
vector.c: vector.c:24: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:25:20: error: variable 'V255' has initializer but incomplete type
vector.c: static const union cv V255 = CV(255);
vector.c: ^~
vector.c: vector.c:26:20: error: variable 'V257' has initializer but incomplete type
vector.c: static const union cv V257 = CV(257);
vector.c: ^~
vector.c: ...

Number of similar (compiler,implementation) pairs: 23, 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

Compiler output

Implementation: vect128
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
vector.c: In file included from vector.c:5:
vector.c: ./vector.h:252: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:344:38: error: array has incomplete element type 'const union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:344:22: note: forward declaration of 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:355:39: error: array has incomplete element type 'const union cv'
vector.c: static const union cv FFT128_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:344:22: note: forward declaration of 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:367:39: error: array has incomplete element type 'const union cv'
vector.c: static const union cv FFT256_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:344:22: note: forward declaration of 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: vector.c:24:30: warning: implicit declaration of function 'CV' is invalid in C99 [-Wimplicit-function-declaration]
vector.c: static const union cv V128 = CV(128);
vector.c: ^
vector.c: ...

Number of similar (compiler,implementation) pairs: 5, 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 -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments vect128