Implementation notes: aarch64, supercoplxc, crypto_scalarmult/curve25519

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_scalarmult
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
232448020640 0 039849 896 1584donna_c64gcc_-O3_-fomit-frame-pointer2019092520190816
235920020584 0 041169 896 1584donna_c64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019092520190816
236232020132 0 040641 896 1584donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019092520190816
237576020148 0 039297 896 1584donna_c64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019092520190816
237920020244 0 040361 896 1568donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019092520190816
238376020708 0 040777 896 1568donna_c64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019092520190816
24047205296 0 025745 896 1584ref10gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019092520190816
24113605532 0 026001 896 1584ref10gcc_-funroll-loops_-O3_-fomit-frame-pointer2019092520190816
24198405160 0 024257 896 1584ref10gcc_-O3_-fomit-frame-pointer2019092520190816
24972005900 0 025857 896 1568ref10gcc_-funroll-loops_-O2_-fomit-frame-pointer2019092520190816
24974405420 0 023313 896 1568ref10gcc_-O2_-fomit-frame-pointer2019092520190816
254768017220 0 035225 896 1568donna_c64gcc_-O2_-fomit-frame-pointer2019092520190816
25751205764 0 025809 896 1568ref10gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019092520190816
261144016884 0 034793 896 1568donna_c64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019092520190816
270120016436 0 033145 880 1560donna_c64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019092520190816
270160016436 0 033145 880 1560donna_c64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019092520190816
27708805172 0 021761 880 1560ref10gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019092520190816
27719205172 0 021761 880 1560ref10gcc_-funroll-loops_-Os_-fomit-frame-pointer2019092520190816
28008804924 0 024017 896 1584ref10gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019092520190816
284192017724 0 037542 808 1600donna_c64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019092520190816
284552016444 0 033089 880 1560donna_c64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019092520190816
284768016444 0 033089 880 1560donna_c64gcc_-Os_-fomit-frame-pointer2019092520190816
29952805280 0 023113 896 1568ref10gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019092520190816
305304020620 0 041433 896 1568donna_c64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019092520190816
305536020620 0 041433 896 1568donna_c64gcc_-funroll-loops_-O_-fomit-frame-pointer2019092520190816
30732005172 0 021697 880 1560ref10gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019092520190816
30754405172 0 021697 880 1560ref10gcc_-Os_-fomit-frame-pointer2019092520190816
313816017088 0 034681 896 1568donna_c64gcc_-O_-fomit-frame-pointer2019092520190816
313824017088 0 034681 896 1568donna_c64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019092520190816
333352019956 0 039782 808 1600donna_c64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019092520190816
333368019956 0 039782 808 1600donna_c64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019092520190816
333368019956 0 039782 808 1600donna_c64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019092520190816
333480019956 0 039726 808 1600donna_c64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019092520190816
35248806004 0 025854 808 1600ref10clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019092520190816
36120005956 0 025782 808 1600ref10clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019092520190816
36120805956 0 025782 808 1600ref10clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019092520190816
36120805956 0 025782 808 1600ref10clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019092520190816
39408805736 0 025510 808 1600ref10clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019092520190816
60733606572 0 027281 896 1568ref10gcc_-funroll-loops_-O_-fomit-frame-pointer2019092520190816
60736006572 0 027281 896 1568ref10gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019092520190816
60744006056 0 023545 896 1568ref10gcc_-O_-fomit-frame-pointer2019092520190816
60749606056 0 023545 896 1568ref10gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019092520190816
1772984015512 0 036841 880 1576ref10gcc_-funroll-loops2019092520190816
1773784015512 0 036841 880 1576ref10cc2019092520190816
1773976015512 0 036841 880 1576ref10gcc2019092520190816
20259920141280 0 0162785 880 1576donna_c64cc2019092520190816
21182960141280 0 0162785 880 1576donna_c64gcc2019092520190816
21190240141280 0 0162785 880 1576donna_c64gcc_-funroll-loops2019092520190816
667280809104 0 029705 896 1584refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019092520190816
702616008672 0 028769 896 1568refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019092520190816
705420809020 0 029553 896 1584refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019092520190816
7138080022444 0 042246 808 1600refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019092520190816
7253768023156 0 042966 808 1600refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019092520190816
7255608023156 0 042966 808 1600refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019092520190816
7257432023156 0 042966 808 1600refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019092520190816
7266024023224 0 042982 808 1600refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019092520190816
746752008684 0 028825 896 1568refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019092520190816
776064804744 0 023977 896 1584refgcc_-O3_-fomit-frame-pointer2019092520190816
814178404680 0 023857 896 1584refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019092520190816
919315203144 0 021177 896 1568refgcc_-O2_-fomit-frame-pointer2019092520190816
955388003128 0 021065 896 1568refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019092520190816
987168802764 0 019489 880 1560refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019092520190816
987804802764 0 019489 880 1560refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019092520190816
1024121602724 0 019385 880 1560refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019092520190816
1024496802724 0 019385 880 1560refgcc_-Os_-fomit-frame-pointer2019092520190816
1072880007192 0 028041 896 1568refgcc_-funroll-loops_-O_-fomit-frame-pointer2019092520190816
1073151207192 0 028041 896 1568refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019092520190816
1109712803116 0 020745 896 1568refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019092520190816
1112043203116 0 020745 896 1568refgcc_-O_-fomit-frame-pointer2019092520190816
4379240805248 0 026777 880 1576refcc2019092520190816
4391288005248 0 026777 880 1576refgcc2019092520190816
4411382405248 0 026777 880 1576refgcc_-funroll-loops2019092520190816

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