Implementation notes: amd64, par, crypto_scalarmult/curve25519

Computer: par
Architecture: amd64
CPU ID: GenuineIntel-000406c3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_scalarmult
Primitive: curve25519
TimeImplementationCompilerBenchmark dateSUPERCOP version
1792660amd64-64gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
1794240amd64-64gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
1794980amd64-64gcc -march=native -mcpu=native -O32016121420161026
1799240amd64-64gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
1800080amd64-64gcc -march=native -mcpu=native -Os2016121420161026
1809200amd64-64gcc -march=native -mcpu=native -O22016121420161026
2664660amd64-51gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
2665340amd64-51gcc -march=native -mcpu=native -O22016121420161026
2673040amd64-51gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
2675560amd64-51gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
2682720amd64-51gcc -march=native -mcpu=native -Os2016121420161026
2683180amd64-51gcc -march=native -mcpu=native -O32016121420161026
2944360donna_c64gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
2947180donna_c64gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
2969880donna_c64gcc -march=native -mcpu=native -O32016121420161026
2971560donna_c64gcc -march=native -mcpu=native -O22016121420161026
3074640donna_c64gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
3078440donna_c64gcc -march=native -mcpu=native -Os2016121420161026
3234920ref10gcc -funroll-loops -march=native -mcpu=native -O32016121420161026
3254860ref10gcc -funroll-loops -march=native -mcpu=native -O22016121420161026
3285580ref10gcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
3303860ref10gcc -march=native -mcpu=native -O22016121420161026
3305720ref10gcc -march=native -mcpu=native -O32016121420161026
3319180ref10gcc -march=native -mcpu=native -Os2016121420161026
3398080donnagcc -march=native -mcpu=native -O22016121420161026
3405600donnagcc -march=native -mcpu=native -O32016121420161026
3413520donnagcc -funroll-loops -march=native -mcpu=native -O32016121420161026
3425020donnagcc -funroll-loops -march=native -mcpu=native -O22016121420161026
3559620donnagcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
3583140donnagcc -march=native -mcpu=native -Os2016121420161026
50733500refgcc -funroll-loops -march=native -mcpu=native -O32016121420161026
52418320refgcc -funroll-loops -march=native -mcpu=native -O22016121420161026
60294620refgcc -march=native -mcpu=native -O32016121420161026
60966280refgcc -march=native -mcpu=native -O22016121420161026
68244780refgcc -funroll-loops -march=native -mcpu=native -Os2016121420161026
68748980refgcc -march=native -mcpu=native -Os2016121420161026

Test failure

Implementation: crypto_scalarmult/curve25519/sandy2x
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 sandy2x
gcc -funroll-loops -march=native -mcpu=native -O3 sandy2x
gcc -funroll-loops -march=native -mcpu=native -Os sandy2x
gcc -march=native -mcpu=native -O2 sandy2x
gcc -march=native -mcpu=native -O3 sandy2x
gcc -march=native -mcpu=native -Os sandy2x

Compiler output

Implementation: crypto_scalarmult/curve25519/sandy2x
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
base.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe51_invert.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_frombytes.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
scalarmult.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
consts.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe51_mul.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe51_nsquare.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe51_pack.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
ladder.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
ladder_base.S: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 sandy2x
gcc -funroll-loops -march=native -mcpu=native -O3 sandy2x
gcc -funroll-loops -march=native -mcpu=native -Os sandy2x
gcc -march=native -mcpu=native -O2 sandy2x
gcc -march=native -mcpu=native -O3 sandy2x
gcc -march=native -mcpu=native -Os sandy2x

Compiler output

Implementation: crypto_scalarmult/curve25519/ref10
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
base.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_0.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_1.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_add.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_copy.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_cswap.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_frombytes.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_invert.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_mul.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_mul121666.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_sq.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_sub.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe_tobytes.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
scalarmult.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 ref10
gcc -funroll-loops -march=native -mcpu=native -O3 ref10
gcc -funroll-loops -march=native -mcpu=native -Os ref10
gcc -march=native -mcpu=native -O2 ref10
gcc -march=native -mcpu=native -O3 ref10
gcc -march=native -mcpu=native -Os ref10

Compiler output

Implementation: crypto_scalarmult/curve25519/donna
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
base.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
smult.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
asm.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 donna
gcc -funroll-loops -march=native -mcpu=native -O3 donna
gcc -funroll-loops -march=native -mcpu=native -Os donna
gcc -march=native -mcpu=native -O2 donna
gcc -march=native -mcpu=native -O3 donna
gcc -march=native -mcpu=native -Os donna

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
base.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
smult.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
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: ^~~~
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 donna_c64
gcc -funroll-loops -march=native -mcpu=native -O3 donna_c64
gcc -funroll-loops -march=native -mcpu=native -Os donna_c64
gcc -march=native -mcpu=native -O2 donna_c64
gcc -march=native -mcpu=native -O3 donna_c64
gcc -march=native -mcpu=native -Os donna_c64

Compiler output

Implementation: crypto_scalarmult/curve25519/ref
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
base.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
smult.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 ref
gcc -funroll-loops -march=native -mcpu=native -O3 ref
gcc -funroll-loops -march=native -mcpu=native -Os ref
gcc -march=native -mcpu=native -O2 ref
gcc -march=native -mcpu=native -O3 ref
gcc -march=native -mcpu=native -Os ref

Compiler output

Implementation: crypto_scalarmult/curve25519/amd64-51
Compiler: gcc -funroll-loops -march=native -mcpu=native -O2
fe25519_invert.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe25519_pack.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe25519_setint.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe25519_unpack.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
mont25519.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
consts.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe25519_freeze.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe25519_mul.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
fe25519_square.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
ladderstep.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
work_cswap.s: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
try.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
measure.c: gcc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mcpu=native -O2 amd64-51 amd64-64
gcc -funroll-loops -march=native -mcpu=native -O3 amd64-51 amd64-64
gcc -funroll-loops -march=native -mcpu=native -Os amd64-51 amd64-64
gcc -march=native -mcpu=native -O2 amd64-51 amd64-64
gcc -march=native -mcpu=native -O3 amd64-51 amd64-64
gcc -march=native -mcpu=native -Os amd64-51 amd64-64