Implementation notes: amd64, pluton1mn, crypto_scalarmult/curve25519

Computer: pluton1mn
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_scalarmult
Primitive: curve25519
TimeImplementationCompilerBenchmark dateSUPERCOP version
1116850sandy2xgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
1117522sandy2xgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
1118572sandy2xicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
1118698sandy2xgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
1121148sandy2xicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
1136954sandy2xgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
2164260amd64-64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
2165996amd64-64icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
2166024amd64-64icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
2166892amd64-64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
2169580amd64-64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
2170896amd64-64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
2609474donna_c64icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
2676310donna_c64icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
2704170ref10icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
2734494ref10icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
2906848ref10gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
2941792ref10gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
2961042ref10gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
3095876ref10gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
3134600amd64-51gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
3134726amd64-51gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
3134740amd64-51gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
3135636amd64-51icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
3136826amd64-51gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
3165162amd64-51icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
3361484donna_c64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
3368918donna_c64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
3501610donna_c64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
3545822donna_c64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
3801070donnaicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
3811486donnagcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
3812060donnaicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
3822658donnagcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
3830554donnagcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
3999352donnagcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
46874590reficc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
50122576reficc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
57824816refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
58250444refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
58801428refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
63301630refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
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: ^~~~

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

Compiler output

Implementation: crypto_scalarmult/curve25519/donna_c64
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
smult.c: smult.c(40): warning #3415: the "always_inline" attribute is ignored on non-inline functions
smult.c: static void force_inline
smult.c: ^
smult.c:
smult.c: smult.c(55): warning #3415: the "always_inline" attribute is ignored on non-inline functions
smult.c: static void force_inline
smult.c: ^
smult.c:
smult.c: smult.c(69): warning #3415: the "always_inline" attribute is ignored on non-inline functions
smult.c: static void force_inline
smult.c: ^
smult.c:
smult.c: smult.c(99): warning #3415: the "always_inline" attribute is ignored on non-inline functions
smult.c: static void force_inline
smult.c: ^
smult.c:
smult.c: smult.c(148): warning #3415: the "always_inline" attribute is ignored on non-inline functions
smult.c: static void force_inline
smult.c: ^
smult.c:

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer donna_c64
icc -xMIC-AVX512 -O3 -fomit-frame-pointer donna_c64