Implementation notes: amd64, river, crypto_scalarmult/curve25519

Computer: river
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_scalarmult
Primitive: curve25519
TimeImplementationCompilerBenchmark dateSUPERCOP version
1446504donnagcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016083120160806
1450740donnagcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016083120160806
1453848donnagcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016083120160806
1525472donnagcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016083120160806
1658924donna_c64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016083120160806
1678456donna_c64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016083120160806
1767412donna_c64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016083120160806
1775516donna_c64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016083120160806
1802732ref10gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016083120160806
1808876ref10gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016083120160806
1812856ref10gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016083120160806
1846364ref10gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016083120160806
32766584refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016083120160806
34360984refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016083120160806
36570960refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016083120160806
37162464refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016083120160806

Compiler output

Implementation: crypto_scalarmult/curve25519/sandy2x
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
ladder.S: ladder.S: Assembler messages:
ladder.S: ladder.S:807: Error: no such instruction: `blendps $12,%xmm11,%xmm10'
ladder.S: ladder.S:1032: Error: no such instruction: `vbroadcastss 0(%rsi),%xmm10'
ladder.S: ladder.S:1052: Error: no such instruction: `vpxor %xmm11,%xmm0,%xmm13'
ladder.S: ladder.S:1072: Error: no such instruction: `vpxor %xmm12,%xmm1,%xmm13'
ladder.S: ladder.S:1102: Error: no such instruction: `vpxor %xmm13,%xmm2,%xmm15'
ladder.S: ladder.S:1122: Error: no such instruction: `vpxor %xmm14,%xmm3,%xmm15'
ladder.S: ladder.S:1162: Error: no such instruction: `vpxor %xmm13,%xmm4,%xmm15'
ladder.S: ladder.S:1182: Error: no such instruction: `vpxor %xmm14,%xmm5,%xmm15'
ladder.S: ladder.S:1222: Error: no such instruction: `vpxor %xmm13,%xmm6,%xmm15'
ladder.S: ladder.S:1242: Error: no such instruction: `vpxor %xmm14,%xmm7,%xmm15'
ladder.S: ladder.S:1282: Error: no such instruction: `vpxor %xmm13,%xmm8,%xmm15'
ladder.S: ladder.S:1302: Error: no such instruction: `vpxor %xmm14,%xmm9,%xmm15'
ladder.S: ladder.S:1332: Error: no such instruction: `vpaddq crypto_scalarmult_curve25519_sandy2x_subc0,%xmm11,%xmm10'
ladder.S: ladder.S:1347: Error: no such instruction: `vpunpckhqdq %xmm10,%xmm11,%xmm12'
ladder.S: ladder.S:1352: Error: no such instruction: `vpunpcklqdq %xmm10,%xmm11,%xmm10'
ladder.S: ladder.S:1357: Error: no such instruction: `vpaddq %xmm1,%xmm0,%xmm11'
ladder.S: ladder.S:1372: Error: no such instruction: `vpunpckhqdq %xmm11,%xmm0,%xmm1'
ladder.S: ladder.S:1377: Error: no such instruction: `vpunpcklqdq %xmm11,%xmm0,%xmm0'
ladder.S: ladder.S:1382: Error: no such instruction: `vpmuludq %xmm0,%xmm10,%xmm11'
ladder.S: ladder.S:1387: Error: no such instruction: `vpmuludq %xmm1,%xmm10,%xmm13'
ladder.S: ladder.S:1402: Error: no such instruction: `vpmuludq %xmm0,%xmm12,%xmm14'
ladder.S: ladder.S:1417: Error: no such instruction: `vpmuludq %xmm1,%xmm12,%xmm0'
ladder.S: ladder.S:1427: Error: no such instruction: `vpaddq %xmm3,%xmm2,%xmm1'
ladder.S: ladder.S:1442: Error: no such instruction: `vpunpckhqdq %xmm1,%xmm2,%xmm3'
ladder.S: ...

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

Compiler output

Implementation: crypto_scalarmult/curve25519/donna
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccBTSJMU.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccci5Ijc.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv donna

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccUBCFr3.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccVMIz1E.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv donna_c64

Compiler output

Implementation: crypto_scalarmult/curve25519/ref10
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccY8CMFh.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccvjbNvh.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref10

Compiler output

Implementation: crypto_scalarmult/curve25519/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//cceeyQFl.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccRtkNfZ.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_scalarmult/curve25519/amd64-51
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /usr/bin/ld: crypto_scalarmult_curve25519.a(fe25519_mul.o): relocation R_X86_64_32S against `crypto_scalarmult_curve25519_amd64_51_REDMASK51' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_scalarmult_curve25519.a: could not read symbols: Bad value
try.c: collect2: ld returned 1 exit status

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

Compiler output

Implementation: crypto_scalarmult/curve25519/amd64-64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /usr/bin/ld: crypto_scalarmult_curve25519.a(fe25519_mul.o): relocation R_X86_64_32S against `crypto_scalarmult_curve25519_amd64_64_38' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_scalarmult_curve25519.a: could not read symbols: Bad value
try.c: collect2: ld returned 1 exit status

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

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccBAGo94.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cceKqlDU.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv donna_c64

Compiler output

Implementation: crypto_scalarmult/curve25519/donna
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccUGkC8L.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccjt3IdG.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv donna

Compiler output

Implementation: crypto_scalarmult/curve25519/ref10
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccWHSEBs.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccFGGGjl.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref10

Compiler output

Implementation: crypto_scalarmult/curve25519/ref
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccmnVOuY.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccc9x6Nx.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_scalarmult/curve25519/ref
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccFdQy34.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccYiuYYw.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_scalarmult/curve25519/donna
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccG3rIdX.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccwEwwMl.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv donna

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//cclNPVOv.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cc7YDDS6.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv donna_c64

Compiler output

Implementation: crypto_scalarmult/curve25519/ref10
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccxvY8CB.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccMYDwxX.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref10

Compiler output

Implementation: crypto_scalarmult/curve25519/ref10
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccHzJDlV.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccRGjYmX.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref10

Compiler output

Implementation: crypto_scalarmult/curve25519/ref
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//cceThcwd.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cc8TUbmX.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccgCySxw.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cc6A5lnc.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv donna_c64

Compiler output

Implementation: crypto_scalarmult/curve25519/donna
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//cclKmxnE.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccxgkYuA.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv donna