Implementation notes: amd64, sliver, crypto_scalarmult/kummer

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_scalarmult
Primitive: kummer
TimeImplementationCompilerBenchmark dateSUPERCOP version
361440avx2intclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072520160718
1458000ref5gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072520160718
1518546ref5clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072520160718
1608972ref5gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072520160718
1743816ref5gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072520160718
1748790ref5ugcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072520160718
1761330ref5ugcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072520160718
2325450ref5ugcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072520160718
2972124ref5uclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072520160718
3143148ref5ugcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072520160718
3299274ref5gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072520160718

Compiler output

Implementation: crypto_scalarmult/kummer/ref5u
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-15d236.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/try-anything-7a1f96.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
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref5u

Compiler output

Implementation: crypto_scalarmult/kummer/ref5
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-bf4a32.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/try-anything-5853db.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
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref5

Compiler output

Implementation: crypto_scalarmult/kummer/avx2int
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-cbe7ea.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/try-anything-eda00c.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
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2int

Compiler output

Implementation: crypto_scalarmult/kummer/avx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /usr/bin/ld: crypto_scalarmult_kummer.a(znegate.o): relocation R_X86_64_32S against `minusz' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_scalarmult_kummer.a: could not read symbols: Bad value
try.c: clang-3.5: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx avx2

Compiler output

Implementation: crypto_scalarmult/kummer/avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
gfe.c: gfe.c: In function 'gfe4x3limb_split':
gfe.c: gfe.c:69: warning: ignoring alignment for stack allocated 't'
smult.c: smult.c: In function 'crypto_scalarmult_kummer_avx':
smult.c: smult.c:16: warning: ignoring alignment for stack allocated 'work'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s: Assembler messages:
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:75: Error: no such instruction: `vmovapd 0(%rsi),%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:81: Error: no such instruction: `vmovapd 64(%rsi),%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:88: Error: no such instruction: `vmovapd 128(%rsi),%ymm2'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:94: Error: no such instruction: `vmulpd _2pm43,%ymm0,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:100: Error: no such instruction: `vroundpd $8,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:106: Error: no such instruction: `vmulpd _2p43,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:113: Error: no such instruction: `vaddpd %ymm3,%ymm1,%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:119: Error: no such instruction: `vsubpd %ymm3,%ymm0,%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:125: Error: no such instruction: `vmulpd _2pm85,%ymm1,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:131: Error: no such instruction: `vroundpd $8,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:137: Error: no such instruction: `vmulpd _2p85,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:144: Error: no such instruction: `vaddpd %ymm3,%ymm2,%ymm2'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:150: Error: no such instruction: `vsubpd %ymm3,%ymm1,%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:156: Error: no such instruction: `vmulpd _2pm127,%ymm2,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:162: Error: no such instruction: `vroundpd $8,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:168: Error: no such instruction: `vaddpd %ymm3,%ymm0,%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:174: Error: no such instruction: `vmulpd _2p127,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:181: Error: no such instruction: `vsubpd %ymm3,%ymm2,%ymm2'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:187: Error: no such instruction: `vaddpd _2p44m2,%ymm0,%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:193: Error: no such instruction: `vmulpd _2pm43,%ymm0,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:199: Error: no such instruction: `vroundpd $11,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:206: Error: no such instruction: `vmulpd _2p43,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:212: Error: no such instruction: `vaddpd %ymm3,%ymm1,%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:218: Error: no such instruction: `vsubpd %ymm3,%ymm0,%ymm0'
gfe4x3limb_freeze.s: ...

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

Compiler output

Implementation: crypto_scalarmult/kummer/avx2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
gfe.c: gfe.c: In function 'gfe4x3limb_split':
gfe.c: gfe.c:69: warning: ignoring alignment for stack allocated 't'
smult.c: smult.c: In function 'crypto_scalarmult_kummer_avx2':
smult.c: smult.c:16: warning: ignoring alignment for stack allocated 'work'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s: Assembler messages:
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:75: Error: no such instruction: `vmovapd 0(%rsi),%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:81: Error: no such instruction: `vmovapd 64(%rsi),%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:88: Error: no such instruction: `vmovapd 128(%rsi),%ymm2'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:94: Error: no such instruction: `vmulpd _2pm43,%ymm0,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:100: Error: no such instruction: `vroundpd $8,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:106: Error: no such instruction: `vmulpd _2p43,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:113: Error: no such instruction: `vaddpd %ymm3,%ymm1,%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:119: Error: no such instruction: `vsubpd %ymm3,%ymm0,%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:125: Error: no such instruction: `vmulpd _2pm85,%ymm1,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:131: Error: no such instruction: `vroundpd $8,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:137: Error: no such instruction: `vmulpd _2p85,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:144: Error: no such instruction: `vaddpd %ymm3,%ymm2,%ymm2'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:150: Error: no such instruction: `vsubpd %ymm3,%ymm1,%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:156: Error: no such instruction: `vmulpd _2pm127,%ymm2,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:162: Error: no such instruction: `vroundpd $8,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:168: Error: no such instruction: `vaddpd %ymm3,%ymm0,%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:174: Error: no such instruction: `vmulpd _2p127,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:181: Error: no such instruction: `vsubpd %ymm3,%ymm2,%ymm2'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:187: Error: no such instruction: `vaddpd _2p44m2,%ymm0,%ymm0'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:193: Error: no such instruction: `vmulpd _2pm43,%ymm0,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:199: Error: no such instruction: `vroundpd $11,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:206: Error: no such instruction: `vmulpd _2p43,%ymm3,%ymm3'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:212: Error: no such instruction: `vaddpd %ymm3,%ymm1,%ymm1'
gfe4x3limb_freeze.s: gfe4x3limb_freeze.s:218: Error: no such instruction: `vsubpd %ymm3,%ymm0,%ymm0'
gfe4x3limb_freeze.s: ...

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

Compiler output

Implementation: crypto_scalarmult/kummer/avx2int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
smult.c: In file included from smult.c:3:
smult.c: gfe4x.h:5:23: error: immintrin.h: No such file or directory
smult.c: In file included from smult.c:3:
smult.c: gfe4x.h:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'vec'
smult.c: gfe4x.h:10: error: expected specifier-qualifier-list before 'vec'
smult.c: gfe4x.h:17: error: expected ';', ',' or ')' before '*' token
smult.c: smult.c:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'mask25'
smult.c: smult.c:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'mask26'
smult.c: smult.c: In function 'gfe4x_from_gfe':
smult.c: smult.c:14: error: 'gfe4x' has no member named 'v'
smult.c: smult.c:15: error: 'gfe4x' has no member named 'v'
smult.c: smult.c:16: error: 'gfe4x' has no member named 'v'
smult.c: smult.c:17: error: 'gfe4x' has no member named 'v'
smult.c: smult.c: In function 'gfe4x_to_gfe':
smult.c: smult.c:26: error: 'gfe4x' has no member named 'v'
smult.c: smult.c:27: error: 'gfe4x' has no member named 'v'
smult.c: smult.c:28: error: 'gfe4x' has no member named 'v'
smult.c: smult.c:29: error: 'gfe4x' has no member named 'v'
smult.c: smult.c: At top level:
smult.c: smult.c:33: error: expected ';', ',' or ')' before '*' token
smult.c: smult.c: In function 'gfe4x_mul':
smult.c: smult.c:56: error: 'vec' undeclared (first use in this function)
smult.c: smult.c:56: error: (Each undeclared identifier is reported only once
smult.c: smult.c:56: error: for each function it appears in.)
smult.c: smult.c:56: error: expected ';' before 'a0'
smult.c: ...

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

Compiler output

Implementation: crypto_scalarmult/kummer/ref5u
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccYhQd29.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//ccFCjhcN.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 ref5u

Compiler output

Implementation: crypto_scalarmult/kummer/ref5
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccet9e7s.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//cckMgkpy.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 ref5

Compiler output

Implementation: crypto_scalarmult/kummer/ref5
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//cc9Tgrgt.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//ccgWet3P.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 ref5

Compiler output

Implementation: crypto_scalarmult/kummer/ref5u
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccvSgJWz.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//ccA6hiMZ.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 ref5u

Compiler output

Implementation: crypto_scalarmult/kummer/ref5
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccEDtTYu.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//ccTZyCfL.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 ref5

Compiler output

Implementation: crypto_scalarmult/kummer/ref5u
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccQhStWg.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//cclv328j.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 ref5u

Compiler output

Implementation: crypto_scalarmult/kummer/ref5
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//cc5dSJwM.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//ccflTv2k.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 ref5

Compiler output

Implementation: crypto_scalarmult/kummer/ref5u
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccCWmirv.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//ccOk74mP.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 ref5u