Implementation notes: amd64, hertz, crypto_dh/nistp256

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_dh
Primitive: nistp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
188763317371 32864 045908 33692 1896T:wblgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1968945143 0 045883 31556 1832T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1970366150 0 052041 31564 1832T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1973068150 0 051929 31564 1832T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1973542186 0 047932 31540 1896T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1974607172 0 044339 31532 1800T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1978316186 0 045924 31540 1832T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
279315512493 32864 037484 33684 1800T:wblgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


curve.c: curve.c:256:7: warning: unused variable 'k' [-Wunused-variable]
curve.c:   256 |   int k;
curve.c:       |       ^
curve.c: 1 warning generated.
fep256.c: fep256.c:1076:14: warning: unused variable 'temp' [-Wunused-variable]
fep256.c:  1076 |   smallfelem temp;
fep256.c:       |              ^~~~
fep256.c: fep256.c:46:30: warning: unused variable 'nistp256_curve_params' [-Wunused-const-variable]
fep256.c:    46 | static const felem_bytearray nistp256_curve_params[5] = {
fep256.c:       |                              ^~~~~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:98:19: warning: unused variable 'bottom32bits' [-Wunused-const-variable]
fep256.c:    98 | static const limb bottom32bits = 0xffffffff;
fep256.c:       |                   ^~~~~~~~~~~~
fep256.c: fep256.c:133:13: warning: unused function 'smallfelem_assign' [-Wunused-function]
fep256.c:   133 | static void smallfelem_assign(smallfelem out, const smallfelem in)
fep256.c:       |             ^~~~~~~~~~~~~~~~~
fep256.c: fep256.c:159:13: warning: unused function 'felem_small_sum' [-Wunused-function]
fep256.c:   159 | static void felem_small_sum(felem out, const smallfelem in)
fep256.c:       |             ^~~~~~~~~~~~~~~
fep256.c: fep256.c:177:13: warning: unused function 'longfelem_scalar' [-Wunused-function]
fep256.c:   177 | static void longfelem_scalar(longfelem out, const u64 scalar)
fep256.c:       |             ^~~~~~~~~~~~~~~~
fep256.c: fep256.c:200:13: warning: unused function 'smallfelem_neg' [-Wunused-function]
fep256.c:   200 | static void smallfelem_neg(felem out, const smallfelem small)
fep256.c:       |             ^~~~~~~~~~~~~~
fep256.c: fep256.c:243:13: warning: unused function 'felem_diff_zero107' [-Wunused-function]
fep256.c:   243 | static void felem_diff_zero107(felem out, const felem in)
fep256.c:       |             ^~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:263:13: warning: unused function 'longfelem_diff' [-Wunused-function]
fep256.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:wblclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:wblclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:wblclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


curve.c: curve.c: In function 'p256dblmult_base':
curve.c: curve.c:256:7: warning: unused variable 'k' [-Wunused-variable]
curve.c:   256 |   int k;
curve.c:       |       ^
fep256.c: fep256.c:1064:32: warning: argument 1 of type 'unsigned char *' declared as a pointer [-Warray-parameter=]
fep256.c:  1064 | void fep256pack(unsigned char *out, fep256 *a){
fep256.c:       |                 ~~~~~~~~~~~~~~~^~~
fep256.c: In file included from fep256.c:30:
fep256.c: fep256.h:20:38: note: previously declared as an array 'unsigned char[32]'
fep256.c:    20 | extern void fep256pack(unsigned char c[32], fep256 *r);
fep256.c:       |                        ~~~~~~~~~~~~~~^~~~~
fep256.c: fep256.c:1075:51: warning: argument 2 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
fep256.c:  1075 | void fep256unpack(fep256 *c, const unsigned char *in){
fep256.c:       |                              ~~~~~~~~~~~~~~~~~~~~~^~
fep256.c: fep256.h:21:57: note: previously declared as an array 'const unsigned char[32]'
fep256.c:    21 | extern void fep256unpack(fep256 *r, const unsigned char c[32]);
fep256.c:       |                                     ~~~~~~~~~~~~~~~~~~~~^~~~~
fep256.c: fep256.c: In function 'fep256unpack':
fep256.c: fep256.c:1076:14: warning: unused variable 'temp' [-Wunused-variable]
fep256.c:  1076 |   smallfelem temp;
fep256.c:       |              ^~~~
fep256.c: fep256.c: At top level:
fep256.c: fep256.c:967:1: warning: 'copy_small_conditional' defined but not used [-Wunused-function]
fep256.c:   967 | copy_small_conditional(felem out, const smallfelem in, limb mask)
fep256.c:       | ^~~~~~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:955:1: warning: 'copy_conditional' defined but not used [-Wunused-function]
fep256.c:   955 | copy_conditional(felem out, const felem in, limb mask)
fep256.c:       | ^~~~~~~~~~~~~~~~
fep256.c: fep256.c:944:13: warning: 'smallfelem_inv_contract' defined but not used [-Wunused-function]
fep256.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:wblgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:wblgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:wblgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


curve.o basep D
curve.o p256add T
curve.o p256add_total T
curve.o p256base T
curve.o p256cmov T
curve.o p256dbl T
curve.o p256dbl_total T
curve.o p256dblmult_base T
curve.o p256identity T
curve.o p256madd T
curve.o p256oncurvefinite T
curve.o p256pack T
curve.o p256scalarmult T
curve.o p256scalarmult_base T
curve.o p256scalarmult_base_fast T
curve.o p256unpack T
curve.o p256xpack T
curve.o paramb D
curve.o precomp D
fep256.o fep256add T
fep256.o fep256cmov T
fep256.o fep256inv T
fep256.o fep256iszero T
fep256.o fep256mul T
fep256.o fep256pack T
fep256.o fep256scalar T
fep256.o fep256setone T
fep256.o fep256setzero T
fep256.o fep256sqr T
fep256.o fep256sub T
fep256.o fep256unpack T

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:wblgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:wblgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)