Implementation notes: amd64, genji262, crypto_scalarmult/nistp256

Computer: genji262
Architecture: amd64
CPU ID: AuthenticAMD-00800f12-178bfbff
SUPERCOP version: 20191017
Operation: crypto_scalarmult
Primitive: nistp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
250124620416 30720 051452 31592 1576mj32icc_-march=core-avx-i_-mtune=core-avx-i_-O2_-fomit-frame-pointer2019102420191017
250234620416 30720 051452 31592 1576mj32icc_-march=ivybridge_-mtune=ivybridge_-O2_-fomit-frame-pointer2019102420191017
250243419376 30720 049052 31592 1576mj32icc_-march=corei7_-mtune=corei7_-O2_-fomit-frame-pointer2019102420191017
250857220416 30720 051452 31592 1576mj32icc_-march=corei7-avx_-mtune=corei7-avx_-O2_-fomit-frame-pointer2019102420191017
250982620416 30720 051452 31592 1576mj32icc_-march=sandybridge_-mtune=sandybridge_-O2_-fomit-frame-pointer2019102420191017
255101019320 30720 049052 31592 1576mj32icc_-march=corei7_-mtune=corei7_-O3_-fomit-frame-pointer2019102420191017
255679620288 30720 051356 31592 1576mj32icc_-march=ivybridge_-mtune=ivybridge_-O3_-fomit-frame-pointer2019102420191017
255866620288 30720 051356 31592 1576mj32icc_-march=sandybridge_-mtune=sandybridge_-O3_-fomit-frame-pointer2019102420191017
256042620288 30720 051356 31592 1576mj32icc_-march=corei7-avx_-mtune=corei7-avx_-O3_-fomit-frame-pointer2019102420191017
256187820288 30720 051356 31592 1576mj32icc_-march=core-avx-i_-mtune=core-avx-i_-O3_-fomit-frame-pointer2019102420191017
275114418832 30720 050124 31592 1576mj32icc_-march=core-avx2_-mtune=core-avx2_-O2_-fomit-frame-pointer2019102420191017
275116618832 30720 050124 31592 1576mj32icc_-march=haswell_-mtune=haswell_-O2_-fomit-frame-pointer2019102420191017
275239818832 30720 050124 31592 1576mj32icc_-march=broadwell_-mtune=broadwell_-O2_-fomit-frame-pointer2019102420191017
276238618832 30720 050124 31592 1576mj32icc_-march=skylake_-mtune=skylake_-O2_-fomit-frame-pointer2019102420191017
277965618832 30720 049724 31592 1576mj32icc_-march=haswell_-mtune=haswell_-O3_-fomit-frame-pointer2019102420191017
277985418832 30720 049724 31592 1576mj32icc_-march=skylake_-mtune=skylake_-O3_-fomit-frame-pointer2019102420191017
278146018832 30720 049724 31592 1576mj32icc_-march=broadwell_-mtune=broadwell_-O3_-fomit-frame-pointer2019102420191017
285632617250 30720 045409 31528 1608mj32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019102420191017
286587413138 30720 040705 31528 1608mj32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019102420191017
287480613138 30720 040705 31528 1608mj32clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019102420191017
289253818832 30720 049724 31592 1576mj32icc_-march=core-avx2_-mtune=core-avx2_-O3_-fomit-frame-pointer2019102420191017
291935617272 30720 044985 31528 1576mj32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019102420191017
312589213098 30720 041339 31544 1608mj32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102420191017
337840810435 30720 035391 31520 1576mj32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019102420191017
431070211189 30720 038027 31544 1608mj32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102420191017
51594409973 30720 034667 31536 1608mj32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102420191017
928329611288 30720 037075 31544 1608mj32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102420191017

Test failure

Implementation: mj32
Security model: unknown
Compiler: icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer mj32
icc -march=cannonlake -mtune=cannonlake -O3 -fomit-frame-pointer mj32
icc -march=icelake-client -mtune=icelake-client -O2 -fomit-frame-pointer mj32
icc -march=icelake-client -mtune=icelake-client -O3 -fomit-frame-pointer mj32
icc -march=skylake-avx512 -mtune=skylake-avx512 -O2 -fomit-frame-pointer mj32
icc -march=skylake-avx512 -mtune=skylake-avx512 -O3 -fomit-frame-pointer mj32

Compiler output

Implementation: mj32
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gep256.c: gep256.c:83:28: warning: sizeof on array function parameter will return size of 'fe *' (aka 'crypto_uint32 (*)[8]') instead of 'gep256' (aka 'fe [3]') [-Wsizeof-array-argument]
gep256.c: for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: ^
gep256.c: gep256.c:78:29: note: declared here
gep256.c: static int isneutral(gep256 p) {
gep256.c: ^
gep256.c: gep256.c:92:28: warning: sizeof on array function parameter will return size of 'fe *' (aka 'crypto_uint32 (*)[8]') instead of 'gep256_precomp' (aka 'fe [2]') [-Wsizeof-array-argument]
gep256.c: for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: ^
gep256.c: gep256.c:87:45: note: declared here
gep256.c: static int isneutral_precomp(gep256_precomp p) {
gep256.c: ^
gep256.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE mj32
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE mj32
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE mj32
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE mj32
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE mj32

Compiler output

Implementation: mj32
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
gep256.c: gep256.c: In function 'isneutral':
gep256.c: gep256.c:83:28: warning: 'sizeof' on array function parameter 'p' will return size of 'crypto_uint32 (*)[8]' {aka 'unsigned int (*)[8]'} [-Wsizeof-array-argument]
gep256.c: 83 | for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: | ^
gep256.c: gep256.c:78:29: note: declared here
gep256.c: 78 | static int isneutral(gep256 p) {
gep256.c: | ~~~~~~~^
gep256.c: gep256.c: In function 'isneutral_precomp':
gep256.c: gep256.c:92:28: warning: 'sizeof' on array function parameter 'p' will return size of 'crypto_uint32 (*)[8]' {aka 'unsigned int (*)[8]'} [-Wsizeof-array-argument]
gep256.c: 92 | for (i = 0; i < sizeof p; ++i) x |= ((unsigned char *)p)[i];
gep256.c: | ^
gep256.c: gep256.c:87:45: note: declared here
gep256.c: 87 | static int isneutral_precomp(gep256_precomp p) {
gep256.c: | ~~~~~~~~~~~~~~~^

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