Implementation notes: aarch64, supercoplxc, crypto_hash/simd256

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: simd256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
11376051636 0 064833 896 760sphlibgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
11576046336 0 059505 896 760sphlibgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
11840051284 0 063105 896 760sphlibgcc_-O3_-fomit-frame-pointer2019090220190816
13480045776 0 057585 896 760sphlibgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
15216048156 0 060865 896 744sphlibgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
15408029316 0 042553 896 760sphlib-smallgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
15712028732 0 040593 896 760sphlib-smallgcc_-O3_-fomit-frame-pointer2019090220190816
15768042788 0 055585 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
16112028952 0 042153 896 760sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
16184045828 0 056465 896 744sphlibgcc_-O2_-fomit-frame-pointer2019090220190816
17704043644 0 056494 800 768sphlibclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
18064048603 388 062004 1316 760optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
18176041488 0 051441 880 736sphlibgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
18200041488 0 051441 880 736sphlibgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
18536047155 388 059188 1316 760optgcc_-O3_-fomit-frame-pointer2019090220190816
18640025588 0 038337 896 744sphlib-smallgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
18760048923 388 062308 1316 760optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
19944025492 0 038321 896 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
20096040780 0 051369 896 744sphlibgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
20128024268 0 034937 896 744sphlib-smallgcc_-O2_-fomit-frame-pointer2019090220190816
20208028400 0 040241 896 760sphlib-smallgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
20232049796 0 062646 800 768sphlibclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
20240049796 0 062646 800 768sphlibclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
20248049796 0 062590 800 768sphlibclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
20248049796 0 062646 800 768sphlibclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
20544024203 388 037092 1308 744optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
20848026868 0 039726 800 768sphlib-smallclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
20880041488 0 051377 880 736sphlibgcc_-Os_-fomit-frame-pointer2019090220190816
20880041488 0 051377 880 736sphlibgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
21504024339 388 037308 1308 744optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
22744027540 0 040398 800 768sphlib-smallclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
22744027540 0 040398 800 768sphlib-smallclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
22760027540 0 040398 800 768sphlib-smallclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
22792027600 0 040406 800 768sphlib-smallclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
23072023596 0 033577 880 736sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
23080047491 388 059516 1316 760optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
23080023596 0 033577 880 736sphlib-smallgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
23704045704 0 059633 896 744sphlibgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
23792045704 0 059633 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
25072043140 0 053849 896 744sphlibgcc_-O_-fomit-frame-pointer2019090220190816
25072043140 0 053849 896 744sphlibgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
25440023892 0 034513 896 744sphlib-smallgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
26056023596 0 033513 880 736sphlib-smallgcc_-Os_-fomit-frame-pointer2019090220190816
26056023596 0 033513 880 736sphlib-smallgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
29176014923 388 025732 1308 744optgcc_-O2_-fomit-frame-pointer2019090220190816
30712014859 388 025612 1308 744optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
31640027672 0 041641 896 744sphlib-smallgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
31640027672 0 041641 896 744sphlib-smallgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
31864027451 388 039981 1212 768optclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
32040027631 388 040101 1212 768optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
32592027739 388 040261 1212 768optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
32600027739 388 040261 1212 768optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
32600027739 388 040261 1212 768optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
32872025160 0 035897 896 744sphlib-smallgcc_-O_-fomit-frame-pointer2019090220190816
32872025160 0 035897 896 744sphlib-smallgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
39144029855 388 043972 1308 744optgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
39256029855 388 043972 1308 744optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
41256013215 388 023324 1292 736optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
41312013215 388 023324 1292 736optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
43216013183 388 023220 1292 736optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
43248013183 388 023220 1292 736optgcc_-Os_-fomit-frame-pointer2019090220190816
44568015719 388 026612 1308 744optgcc_-O_-fomit-frame-pointer2019090220190816
44640015719 388 026612 1308 744optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
92648095112 0 0112137 880 744sphlibgcc2019090220190816
92664095112 0 0112137 880 744sphlibgcc_-funroll-loops2019090220190816
93360095112 0 0112137 880 744sphlibcc2019090220190816
135520062120 0 079169 880 744sphlib-smallgcc2019090220190816
135560062120 0 079169 880 744sphlib-smallcc2019090220190816
135608062120 0 079169 880 744sphlib-smallgcc_-funroll-loops2019090220190816
312232037893 388 050940 1292 744optgcc2019090220190816
312408037893 388 050940 1292 744optgcc_-funroll-loops2019090220190816
315832037893 388 050940 1292 744optcc2019090220190816
384088012467 388 025860 1316 760refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
39236807979 388 020828 1308 744refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
397736011043 388 023060 1316 760refgcc_-O3_-fomit-frame-pointer2019090220190816
40880005007 388 015796 1308 744refgcc_-O2_-fomit-frame-pointer2019090220190816
429344019015 388 032101 1212 768refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
462200012643 388 026004 1316 760refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
47380804387 388 014452 1292 736refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
47456804387 388 014452 1292 736refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
503496017587 388 030613 1212 768refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
504288019019 388 032101 1212 768refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
508408019019 388 032101 1212 768refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
509992019019 388 032101 1212 768refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
52895204371 388 014380 1292 736refgcc_-Os_-fomit-frame-pointer2019090220190816
52908804371 388 014380 1292 736refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
53324007995 388 020932 1308 744refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
658120011147 388 023156 1316 760refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
66661605055 388 015780 1308 744refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
68240804851 388 015708 1308 744refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
68248804851 388 015708 1308 744refgcc_-O_-fomit-frame-pointer2019090220190816
70798408055 388 022140 1308 744refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
71157608055 388 022140 1308 744refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
195546408041 388 021044 1292 744refcc2019090220190816
196267208041 388 021044 1292 744refgcc2019090220190816
196564008041 388 021044 1292 744refgcc_-funroll-loops2019090220190816

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: 19, 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

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