Implementation notes: riscv64, hifiveunleashedriscv, crypto_scalarmult/curve25519

Computer: hifiveunleashedriscv
Architecture: riscv64
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_scalarmult
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
398547125740 0 039699 736 1560donna_c64gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
412263221176 0 033709 736 1560donna_c64gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
416120320180 0 032121 720 1560donna_c64gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
454878019686 0 032021 736 1560donna_c64gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
79606606126 0 019841 736 1560ref10gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
79611646128 0 018417 736 1560ref10gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
80589185232 0 016913 720 1560ref10gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
84455485404 0 017479 736 1560ref10gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
1448856903916 0 017631 736 1560refgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
1469262823012 0 015281 736 1560refgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
1581862302816 0 014481 720 1560refgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221
1795995373260 0 015323 736 1560refgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123120191221

Compiler output

Implementation: donna_c64
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
smult.c: smult.c:149:1: warning: always_inline function might not be inlinable [-Wattributes]
smult.c: 149 | 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: 100 | 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: 70 | 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: 56 | 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: 41 | fsum(limb *output, const limb *in) {
smult.c: | ^~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64