Implementation notes: amd64, luft, crypto_scalarmult/curve25519

Computer: luft
Architecture: amd64
CPU ID: GenuineIntel-000306d4-bfebfbff
SUPERCOP version: 20200702
Operation: crypto_scalarmult
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
113559226725 0 049152 4096 0donna_c64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
125230823825 0 040960 4096 0donna_c64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
125785221763 0 040960 4096 0donna_c64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
128832822383 0 040960 4096 0donna_c64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
167904030879 0 053248 4096 0donna_c64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
175616830354 0 049152 4096 0donna_c64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
176554832065 0 053248 4096 0donna_c64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
176942432065 0 053248 4096 0donna_c64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
182512432065 0 053248 4096 0donna_c64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
25377569069 0 028672 4096 0ref10clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
26978447793 0 028672 4096 0ref10gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
27976468008 0 028672 4096 0ref10clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
28050168008 0 028672 4096 0ref10clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
28123129006 0 028672 4096 0ref10clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
28170808372 0 028672 4096 0ref10gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
28181127600 0 024576 4096 0ref10clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
28347768259 0 024576 4096 0ref10gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
28959248719 0 028672 4096 0ref10gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
332915725862 0 028672 4096 0refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
3737715232921 0 053248 4096 0refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
3755206036235 0 057344 4096 0refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
3779537646092 0 065536 4096 0refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
4121568446092 0 065536 4096 0refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
419054524038 0 024576 4096 0refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
424059963472 0 020480 4096 0refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
446316562762 0 020480 4096 0refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
469612723305 0 020480 4096 0refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702

Compiler output

Implementation: amd64-51
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
consts.s: consts.s:2:17: error: unexpected token in '.section' directive
consts.s: .section .rodata
consts.s: ^

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-51
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-51
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-51
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-51
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-51
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-51
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-51
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-51
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-51
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64-64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64

Compiler output

Implementation: donna
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: Undefined symbols for architecture x86_64:
try.c: "_crypto_scalarmult_curve25519_donna_cmult", referenced from:
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fcontract", referenced from:
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fdifference_backwards", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fexpand", referenced from:
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fmul", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_freduce_coefficients", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fscalar", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fsquare", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: ld: symbol(s) not found for architecture x86_64
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna

Compiler output

Implementation: donna
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: Undefined symbols for architecture x86_64:
try.c: "_crypto_scalarmult_curve25519_donna_cmult", referenced from:
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fcontract", referenced from:
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fdifference_backwards", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fexpand", referenced from:
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fmul", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_freduce_coefficients", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fscalar", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: "_crypto_scalarmult_curve25519_donna_fsquare", referenced from:
try.c: _crypto_scalarmult_curve25519_donna_fmonty in crypto_scalarmult_curve25519.a(smult.o)
try.c: _crypto_scalarmult_curve25519_donna in crypto_scalarmult_curve25519.a(smult.o)
try.c: ld: symbol(s) not found for architecture x86_64
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: donna_c64
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
measure.c: ld: warning: could not create compact unwind for _crypto_stream_aes256ctr_dolbeau_aesenc_int_xor: register 3 saved somewhere other than in frame

Number of similar (compiler,implementation) pairs: 15, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna_c64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna_c64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna_c64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna_c64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE donna_c64
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref10
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref10
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref10
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref10
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref10

Compiler output

Implementation: donna_c64
Security model: unknown
Compiler: gcc -march=native -mtune=native -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=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE donna_c64

Compiler output

Implementation: sandy2x
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
consts.S: consts.S:8:17: error: unexpected token in '.section' directive
consts.S: .section .rodata
consts.S: ^

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sandy2x
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sandy2x
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sandy2x
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sandy2x
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sandy2x
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE sandy2x
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE sandy2x
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE sandy2x
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE sandy2x