Implementation notes: amd64, icelake2, crypto_scalarmult/nistp256

Computer: icelake2
Architecture: amd64
CPU ID: GenuineIntel-000706e5-bfebfbff
SUPERCOP version: 20221005
Operation: crypto_scalarmult
Primitive: nistp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
245050117477 30720 040234 31500 1760T:mj32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
262674012925 30720 036786 31500 1792T:mj32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
265957716941 30720 040874 31500 1824T:mj32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
302989511877 30720 033826 31508 1824T:mj32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
318006310215 30720 031820 31492 1824T:mj32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
360569611536 30720 032394 31500 1760T:mj32clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100420220506
390146010086 30720 029686 31500 1792T:mj32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506
673599911498 30720 032218 31508 1824T:mj32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022100420220506

Compiler output

Implementation: T:mj32
Security model: timingleaks
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 'unsigned int (*)[8]') instead of 'gep256' (aka 'unsigned int[3][8]') [-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 'unsigned int (*)[8]') instead of 'gep256_precomp' (aka 'unsigned int[2][8]') [-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 T:mj32
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mj32
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mj32
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mj32
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mj32

Compiler output

Implementation: T:mj32
Security model: timingleaks
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: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mj32
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mj32
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mj32

Compiler output

Implementation: T:mj32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -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: | ~~~~~~~~~~~~~~~^
try.c: /usr/bin/ld: error in /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_verify_32_ref_constbranchindex-verify.o)(.eh_frame); no .eh_frame_hdr table will be created
try.c: /usr/bin/ld: error in /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o)(.eh_frame); no .eh_frame_hdr table will be created
try.c: /usr/bin/ld: error in /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-api.o)(.eh_frame); no .eh_frame_hdr table will be created
try.c: /usr/bin/ld: error in /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o)(.eh_frame); no .eh_frame_hdr table will be created
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o): invalid string offset 1048576 >= 209 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o): invalid string offset 1048576 >= 209 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o): invalid string offset 1668113773 >= 209 for section `.strtab'
try.c: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o):(.text+0x...): relocation truncated to fit: R_X86_64_PC32 against `.rodata'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o): invalid string offset 1048576 >= 209 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-api.o): invalid string offset 65536 >= 855 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-api.o): invalid string offset 65536 >= 855 for section `.strtab'
try.c: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-api.o): in function `(null)':
try.c: (.text+0x...): relocation truncated to fit: R_X86_64_PC32 against `*UND*'
try.c: (.text+0x...): relocation truncated to fit: R_X86_64_PC32 against `*UND*'
try.c: (.text+0x...): relocation truncated to fit: R_X86_64_PC32 against `*UND*'
try.c: (.text+0x...): relocation truncated to fit: R_X86_64_PC32 against `*UND*'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/supercop-20220506/supercop-data/icelake/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2_constbranchindex-chacha.o): invalid string offset 4148283529 >= 623 for section `.strtab'
try.c: ...

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