Implementation notes: amd64, pmnod003, crypto_scalarmult/curve25519

Computer: pmnod003
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_scalarmult
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
52144020330 0 055471 888 1576sandy2xicc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
52172820314 0 055852 880 1608sandy2xicc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
52209220791 0 053497 848 1608sandy2xgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
52215420778 0 054915 888 1576sandy2xicc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
52231420686 0 049497 840 1608sandy2xgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
52246420826 0 056556 880 1608sandy2xicc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
52601820346 0 055455 888 1576sandy2xicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
52621820330 0 055620 880 1576sandy2xicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
52631220314 0 055188 880 1576sandy2xicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
52646820330 0 055932 880 1608sandy2xicc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
52667420810 0 056028 880 1608sandy2xicc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
52681420803 0 050889 848 1608sandy2xgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
52683620794 0 054827 888 1576sandy2xicc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
52697820862 0 050625 848 1608sandy2xgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
52877620330 0 055471 888 1576sandy2xicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
53375220794 0 054575 888 1576sandy2xicc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
53399820346 0 055455 888 1576sandy2xicc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
56046220778 0 054631 888 1576sandy2xicc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
5704089571 0 044748 880 1608amd64-64icc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
5705129619 0 044671 888 1576amd64-64icc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
5705389507 0 044836 880 1576amd64-64icc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
5705629699 0 044783 888 1576amd64-64icc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
5706149603 0 044500 880 1576amd64-64icc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
5707129419 0 043515 888 1576amd64-64icc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
5717928728 0 038425 848 1608amd64-64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
57217811659 0 046767 888 1576amd64-51icc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
57228811659 0 046767 888 1576amd64-51icc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
57235411435 0 045523 888 1576amd64-51icc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
57244211739 0 047228 880 1608amd64-51icc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
57256011435 0 045239 888 1576amd64-51icc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
57397610649 0 040705 848 1608amd64-51gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
57616210471 0 039257 840 1608amd64-51gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
5784209699 0 044783 888 1576amd64-64icc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
5786529571 0 045068 880 1608amd64-64icc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
5787549619 0 044671 888 1576amd64-64icc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
5787809539 0 045244 880 1608amd64-64icc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
5788908720 0 041465 848 1608amd64-64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
5796229539 0 045116 880 1608amd64-64icc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
5802648730 0 038801 848 1608amd64-64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
5803089419 0 043427 888 1576amd64-64icc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
5803309419 0 043231 888 1576amd64-64icc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
5826869419 0 043175 888 1576amd64-64icc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
58446810665 0 043409 848 1608amd64-51gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
58514011579 0 046748 880 1608amd64-51icc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
58514011867 0 046756 880 1576amd64-51icc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
58517010703 0 040401 848 1608amd64-51gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
58662011595 0 046639 888 1576amd64-51icc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
58720411771 0 047092 880 1576amd64-51icc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
58725211643 0 047212 880 1608amd64-51icc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
58740811387 0 045119 888 1576amd64-51icc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
58789025065 0 057713 848 1608donna_c64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
58824811483 0 047180 880 1608amd64-51icc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
58910611387 0 045371 888 1576amd64-51icc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
58981211595 0 046639 888 1576amd64-51icc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
6063668661 0 037417 840 1608amd64-64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
64377220661 0 049425 840 1608donna_c64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
65048627248 0 061363 888 1576donna_c64icc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
65061228552 0 063623 888 1576donna_c64icc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
65453221010 0 051041 848 1608donna_c64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
65659428552 0 063623 888 1576donna_c64icc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
67212427200 0 061015 888 1576donna_c64icc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
67678028120 0 063159 888 1576donna_c64icc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
67686828120 0 063159 888 1576donna_c64icc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
67841223332 0 053049 848 1608donna_c64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
68501227680 0 061723 888 1576donna_c64icc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
69140027552 0 061311 888 1576donna_c64icc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
71349427560 0 063044 880 1608donna_c64icc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
71408227160 0 062868 880 1608donna_c64icc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
71896427544 0 062444 880 1576donna_c64icc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
71989227480 0 062660 880 1608donna_c64icc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
72064027224 0 062540 880 1576donna_c64icc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
72107827224 0 062804 880 1608donna_c64icc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
10011504741 0 034465 848 1608donnagcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
10180565110 0 040175 888 1576donnaicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
10183225110 0 040175 888 1576donnaicc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
10261405110 0 040143 888 1576donnaicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
10262865110 0 040143 888 1576donnaicc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
10310964574 0 037225 848 1608donnagcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
10513704998 0 040540 880 1608donnaicc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
10558485018 0 040156 880 1608donnaicc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
10563264998 0 040276 880 1576donnaicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
10583684982 0 039844 880 1576donnaicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
10607485034 0 040700 880 1608donnaicc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
10892284425 0 033209 840 1608donnagcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
11258604982 0 040428 880 1608donnaicc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
13225607376 0 039953 848 1608ref10gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
14347928640 0 042207 888 1576ref10icc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
14364788752 0 043404 880 1576ref10icc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
14391908752 0 043684 880 1608ref10icc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
14426108768 0 043687 888 1576ref10icc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
14445148768 0 043687 888 1576ref10icc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
14450228656 0 042507 888 1576ref10icc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
14532808736 0 043972 880 1608ref10icc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
14568667697 0 036281 840 1608ref10gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
14635467864 0 037777 848 1608ref10gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
14850048190 0 037713 848 1608ref10gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
15265869296 0 042807 888 1576ref10icc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
15425889376 0 044708 880 1608ref10icc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
15453729392 0 044460 880 1576ref10icc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
15566189328 0 043107 888 1576ref10icc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
15768429408 0 044868 880 1608ref10icc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
15805409424 0 044311 888 1576ref10icc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
15816249424 0 044311 888 1576ref10icc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
1625168018352 0 054020 880 1608reficc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
166935425637 0 038337 848 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1671680622400 0 057972 880 1608reficc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
1696388621488 0 056764 880 1576reficc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
1803508219656 0 054796 880 1608reficc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
1812473624008 0 059484 880 1608reficc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
1888607023128 0 057988 880 1576reficc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
197723623353 0 033417 848 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2096920031432 0 066527 888 1576reficc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
2097832431432 0 066527 888 1576reficc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
210015342664 0 031473 840 1608refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2127685031088 0 064855 888 1576reficc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
2162555431120 0 065155 888 1576reficc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
2265542032584 0 066691 888 1576reficc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
2275658232880 0 068007 888 1576reficc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
2276500232880 0 068007 888 1576reficc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
2285648032552 0 066375 888 1576reficc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
235953063122 0 032881 848 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910

Test failure

Implementation: donna
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE donna
icc -xSSE4.1 -O2 -fomit-frame-pointer donna
icc -xSSE4.1 -O3 -fomit-frame-pointer donna
icc -xSSE4.2 -O2 -fomit-frame-pointer donna
icc -xSSE4.2 -O3 -fomit-frame-pointer donna

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: donna_c64
Security model: unknown
Compiler: icc -xAVX -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: 14, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer donna_c64
icc -xAVX -O3 -fomit-frame-pointer donna_c64
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer donna_c64
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer donna_c64
icc -xCORE-AVX-I -O2 -fomit-frame-pointer donna_c64
icc -xCORE-AVX-I -O3 -fomit-frame-pointer donna_c64
icc -xCORE-AVX2 -O2 -fomit-frame-pointer donna_c64
icc -xCORE-AVX2 -O3 -fomit-frame-pointer donna_c64
icc -xCORE-AVX512 -O2 -fomit-frame-pointer donna_c64
icc -xCORE-AVX512 -O3 -fomit-frame-pointer donna_c64
icc -xSSE4.1 -O2 -fomit-frame-pointer donna_c64
icc -xSSE4.1 -O3 -fomit-frame-pointer donna_c64
icc -xSSE4.2 -O2 -fomit-frame-pointer donna_c64
icc -xSSE4.2 -O3 -fomit-frame-pointer donna_c64