Implementation notes: aarch64, hikey960, crypto_scalarmult/curve25519

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_scalarmult
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
113220016440 0 032203 904 1584donna_c64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
120310720348 0 039967 920 1584donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
12570754536 0 021183 920 1584ref10gcc_-O2_-fomit-frame-pointer2019113020190816
12737254516 0 022775 920 1616ref10gcc_-O3_-fomit-frame-pointer2019113020190816
129037518916 0 036344 824 1600donna_c64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019113020190816
129870016448 0 032179 904 1584donna_c64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
130702519672 0 039415 920 1584donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
13486504428 0 020147 904 1584ref10gcc_-Os_-fomit-frame-pointer2019113020190816
13486504916 0 024767 920 1616ref10gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816
13569754424 0 020171 904 1584ref10gcc_-funroll-loops_-Os_-fomit-frame-pointer2019113020190816
136808120208 0 038447 920 1616donna_c64gcc_-O3_-fomit-frame-pointer2019113020190816
142654620268 0 038439 920 1616donna_c64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816
15401254796 0 021439 920 1584ref10gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019113020190816
15444734976 0 022384 824 1600ref10clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019113020190816
15484504788 0 023047 920 1616ref10gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019113020190816
15551695012 0 024663 920 1584ref10gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
159007518916 0 036344 824 1600donna_c64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019113020190816
15900754824 0 020539 904 1584ref10gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019113020190816
166040620140 0 040031 920 1616donna_c64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019113020190816
166040620176 0 039999 920 1616donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816
168379219048 0 037279 920 1616donna_c64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019113020190816
16877704768 0 022160 824 1600ref10clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019113020190816
177322516480 0 033023 920 1584donna_c64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
17890295008 0 024655 920 1584ref10gcc_-funroll-loops_-O2_-fomit-frame-pointer2019113020190816
181241518916 0 036344 824 1600donna_c64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019113020190816
181241516440 0 032203 904 1584donna_c64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019113020190816
18591874532 0 022735 920 1616ref10gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816
186935016448 0 032179 904 1584donna_c64gcc_-Os_-fomit-frame-pointer2019113020190816
18693504908 0 024831 920 1616ref10gcc_-funroll-loops_-O3_-fomit-frame-pointer2019113020190816
191475020420 0 040039 920 1584donna_c64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019113020190816
194213115932 0 032551 920 1584donna_c64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019113020190816
210474016896 0 033519 920 1584donna_c64gcc_-O2_-fomit-frame-pointer2019113020190816
211553016888 0 033431 920 1584donna_c64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
22144504424 0 020171 904 1584ref10gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
226440018916 0 036320 824 1600donna_c64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019113020190816
23226755704 0 025447 920 1584ref10gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
23393255220 0 021759 920 1584ref10gcc_-O_-fomit-frame-pointer2019113020190816
244784419672 0 039415 920 1584donna_c64gcc_-funroll-loops_-O_-fomit-frame-pointer2019113020190816
24558754428 0 020147 904 1584ref10gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
260753916480 0 033023 920 1584donna_c64gcc_-O_-fomit-frame-pointer2019113020190816
28881714544 0 021111 920 1584ref10gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
29054254976 0 022384 824 1600ref10clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019113020190816
344943515604 0 032151 920 1584donna_c64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019113020190816
34905804976 0 022384 824 1600ref10clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019113020190816
37387005588 0 022135 920 1584ref10gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019113020190816
386794016448 0 032179 904 1584donna_c64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019113020190816
438727514764 0 035307 904 1584ref10gcc_-funroll-loops2019113020190816
440392514764 0 035307 904 1584ref10gcc2019113020190816
48118505704 0 025447 920 1584ref10gcc_-funroll-loops_-O_-fomit-frame-pointer2019113020190816
48201755220 0 021759 920 1584ref10gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
6426900144368 0 0164907 904 1584donna_c64cc2019113020190816
6435225144368 0 0164907 904 1584donna_c64gcc2019113020190816
1007325014764 0 035307 904 1584ref10cc2019113020190816
159627516844 0 026583 920 1584refgcc_-funroll-loops_-O_-fomit-frame-pointer2019113020190816
181922112760 0 019303 920 1584refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
23093675144368 0 0164907 904 1584donna_c64gcc_-funroll-loops2019113020190816
2519145016032 0 033424 824 1600refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019113020190816
259989758584 0 028479 920 1616refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019113020190816
260156258696 0 028519 920 1616refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816
263569508304 0 027927 920 1584refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
298534506844 0 026583 920 1584refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
314685004092 0 022319 920 1616refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019113020190816
316499292936 0 019559 920 1584refgcc_-O2_-fomit-frame-pointer2019113020190816
334831502468 0 018187 904 1584refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019113020190816
3425284816032 0 033440 824 1600refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019113020190816
343156502760 0 019303 920 1584refgcc_-O_-fomit-frame-pointer2019113020190816
369966528200 0 027823 920 1584refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019113020190816
3897276916032 0 033440 824 1600refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019113020190816
389785504060 0 022231 920 1616refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816
477074402520 0 018267 904 1584refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019113020190816
487948892520 0 018267 904 1584refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
501534182760 0 019303 920 1584refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019113020190816
6418575016032 0 033440 824 1600refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019113020190816
681441474092 0 022327 920 1616refgcc_-O3_-fomit-frame-pointer2019113020190816
698218362936 0 019559 920 1584refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019113020190816
748084502864 0 019407 920 1584refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
853812002468 0 018187 904 1584refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
913002752468 0 018187 904 1584refgcc_-Os_-fomit-frame-pointer2019113020190816
1680868754856 0 025395 904 1584refgcc2019113020190816
3013179404856 0 025395 904 1584refgcc_-funroll-loops2019113020190816
3728780774856 0 025395 904 1584refcc2019113020190816

Compiler output

Implementation: donna_c64
Security model: unknown
Compiler: cc
smult.c: smult.c:149:1: warning: always_inline function might not be inlinable [-Wattributes]
smult.c: fsquare_times(felem output, const felem in, limb count) {
smult.c: ^~~~~~~~~~~~~
smult.c: smult.c:100:1: warning: always_inline function might not be inlinable [-Wattributes]
smult.c: fmul(felem output, const felem in2, const felem in) {
smult.c: ^~~~
smult.c: smult.c:70:1: warning: always_inline function might not be inlinable [-Wattributes]
smult.c: fscalar_product(felem output, const felem in, const limb scalar) {
smult.c: ^~~~~~~~~~~~~~~
smult.c: smult.c:56:1: warning: always_inline function might not be inlinable [-Wattributes]
smult.c: fdifference_backwards(felem out, const felem in) {
smult.c: ^~~~~~~~~~~~~~~~~~~~~
smult.c: smult.c:41:1: warning: always_inline function might not be inlinable [-Wattributes]
smult.c: fsum(limb *output, const limb *in) {
smult.c: ^~~~

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