Implementation notes: amd64, hunsnivy, crypto_scalarmult/nistp256

Computer: hunsnivy
Microarchitecture: amd64; Ivy Bridge+AES (306a9)
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_scalarmult
Primitive: nistp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
283120916842 30720 037600 31548 1720T:mj32clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
301598116987 30720 039880 31548 1720T:mj32clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
307833713067 30720 034288 31548 1720T:mj32clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
339280212769 30720 033568 31516 1784T:mj32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
367890610337 30720 028862 31540 1720T:mj32clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
452549510967 30720 030126 31540 1720T:mj32clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
465752011230 30720 031112 31516 1784T:mj32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
56210279900 30720 027480 31508 1752T:mj32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
940685711345 30720 030208 31516 1784T:mj32gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625

Compiler output


gep256.c: gep256.c:83:28: warning: sizeof on array function parameter will return size of 'fe *' (aka 'uint32_t (*)[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 'uint32_t (*)[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 (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:mj32clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mj32clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mj32clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mj32clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:mj32clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


gep256.c: gep256.c: In function 'isneutral':
gep256.c: gep256.c:83:28: warning: 'sizeof' on array function parameter 'p' will return size of 'uint32_t (*)[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 'uint32_t (*)[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 (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:mj32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:mj32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:mj32gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:mj32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)