Implementation notes: aarch64, rockpi4, crypto_scalarmult/curve25519

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_scalarmult
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
12129815408 0 024695 896 1600ref10gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120120190816
12138075160 0 024295 896 1600ref10gcc_-O3_-fomit-frame-pointer2019120120190816
12484995900 0 025903 896 1584ref10gcc_-funroll-loops_-O2_-fomit-frame-pointer2019120120190816
12629545420 0 023351 896 1584ref10gcc_-O2_-fomit-frame-pointer2019120120190816
12658455692 0 023767 896 1584ref10gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120120190816
126832320584 0 041215 896 1600donna_c64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019120120190816
128649520244 0 040399 896 1584donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
12988855172 0 021743 880 1568ref10gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
129971117220 0 035263 896 1584donna_c64gcc_-O2_-fomit-frame-pointer2019120120190816
130136317220 0 035359 896 1584donna_c64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120120190816
13187095596 0 022151 880 1568ref10gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120120190816
133068620620 0 041479 896 1584donna_c64gcc_-funroll-loops_-O_-fomit-frame-pointer2019120120190816
13393595172 0 021807 880 1568ref10gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
134596717088 0 034719 896 1584donna_c64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
140461316436 0 033191 880 1568donna_c64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
142650216444 0 033127 880 1568donna_c64gcc_-Os_-fomit-frame-pointer2019120120190816
142650216444 0 033127 880 1568donna_c64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
161070017724 0 037580 808 1600donna_c64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019120120190816
168256219956 0 039820 808 1600donna_c64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120120190816
168297519956 0 039820 808 1600donna_c64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120120190816
185437020640 0 039983 896 1600donna_c64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120120190816
188451920132 0 040687 896 1600donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
189484420148 0 039343 896 1600donna_c64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
190145220708 0 040823 896 1584donna_c64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019120120190816
19138425296 0 025783 896 1600ref10gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
19200375532 0 026039 896 1600ref10gcc_-funroll-loops_-O3_-fomit-frame-pointer2019120120190816
192499320640 0 039887 896 1600donna_c64gcc_-O3_-fomit-frame-pointer2019120120190816
20521975764 0 025855 896 1584ref10gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
208275916884 0 034839 896 1584donna_c64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
215503416436 0 033191 880 1568donna_c64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019120120190816
22078985172 0 021807 880 1568ref10gcc_-funroll-loops_-Os_-fomit-frame-pointer2019120120190816
22202886004 0 025900 808 1600ref10clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019120120190816
22318524924 0 024055 896 1600ref10gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
226902216444 0 033127 880 1568donna_c64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120120190816
23743375956 0 025820 808 1600ref10clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120120190816
23751635956 0 025820 808 1600ref10clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120120190816
23863145280 0 023159 896 1584ref10gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
243876520620 0 041479 896 1584donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
24478515172 0 021743 880 1568ref10gcc_-Os_-fomit-frame-pointer2019120120190816
250278017088 0 034719 896 1584donna_c64gcc_-O_-fomit-frame-pointer2019120120190816
250401917088 0 034719 896 1584donna_c64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120120190816
265559019956 0 039820 808 1600donna_c64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120120190816
266343719956 0 039772 808 1600donna_c64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120120190816
27951846056 0 023583 896 1584ref10gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
28435056484 0 024007 896 1584ref10gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120120190816
28856315956 0 025820 808 1600ref10clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120120190816
31689495736 0 025548 808 1600ref10clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120120190816
48403606572 0 027319 896 1584ref10gcc_-funroll-loops_-O_-fomit-frame-pointer2019120120190816
48420126056 0 023583 896 1584ref10gcc_-O_-fomit-frame-pointer2019120120190816
48432516572 0 027319 896 1584ref10gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
541814715512 0 036887 880 1584ref10gcc2019120120190816
10086699141280 0 0162831 880 1584donna_c64gcc_-funroll-loops2019120120190816
1418613715512 0 036887 880 1584ref10gcc_-funroll-loops2019120120190816
1441948215512 0 036887 880 1584ref10cc2019120120190816
16312261141280 0 0162831 880 1584donna_c64cc2019120120190816
17553326141280 0 0162831 880 1584donna_c64gcc2019120120190816
200379349104 0 029743 896 1600refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120120190816
226229018684 0 028871 896 1584refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
2277736323156 0 043004 808 1600refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120120190816
230511827192 0 028079 896 1584refgcc_-funroll-loops_-O_-fomit-frame-pointer2019120120190816
250624924680 0 023895 896 1600refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
2712253623224 0 043020 808 1600refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120120190816
287761883144 0 021223 896 1584refgcc_-O2_-fomit-frame-pointer2019120120190816
299614983176 0 021351 896 1584refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120120190816
310406673128 0 021103 896 1584refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
318910342764 0 019527 880 1568refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
323663972724 0 019431 880 1568refgcc_-Os_-fomit-frame-pointer2019120120190816
361841692724 0 019431 880 1568refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120120190816
560032138672 0 028807 896 1584refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120120190816
562237559020 0 029599 896 1600refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
5687010022444 0 042284 808 1600refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019120120190816
5775763723156 0 043004 808 1600refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120120190816
5777993923156 0 043004 808 1600refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120120190816
617942994744 0 024015 896 1600refgcc_-O3_-fomit-frame-pointer2019120120190816
618550104776 0 024143 896 1600refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120120190816
785278202764 0 019527 880 1568refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120120190816
816273852724 0 019431 880 1568refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
853262137192 0 028079 896 1584refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
883423523116 0 020791 896 1584refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
883547423116 0 020791 896 1584refgcc_-O_-fomit-frame-pointer2019120120190816
884691433116 0 020791 896 1584refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120120190816
1293367325248 0 026815 880 1584refcc2019120120190816
1327563725248 0 026815 880 1584refgcc2019120120190816
3533165445248 0 026815 880 1584refgcc_-funroll-loops2019120120190816

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