Implementation notes: amd64, hydra4, crypto_dh/nistp256

Computer: hydra4
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240625
Operation: crypto_dh
Primitive: nistp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
286798733404 32864 052752 33692 1720T:wblclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
287011437100 32864 057296 33692 1720T:wblclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
287040737100 32864 057296 33692 1720T:wblclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
336401710803 32864 028214 33684 1720T:wblclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
356317816086 32864 036344 33660 1784T:wblgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3624389154 0 031440 31508 1784T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3624538166 0 033400 31508 1784T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3626713150 0 032448 31540 1720T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3627123143 0 030566 31532 1720T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3627444150 0 033344 31540 1720T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3628569150 0 033344 31540 1720T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3628853166 0 032224 31508 1784T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3633108153 0 031030 31532 1720T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
3635115134 0 030176 31500 1752T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
415165719662 32864 038744 33660 1784T:wblgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
436836011971 32864 030022 33684 1720T:wblclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
446201711324 32864 028440 33652 1752T:wblgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625
480242011838 32864 030176 33660 1784T:wblgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024063020240625

Compiler output


curve.c: curve.c:256:7: warning: unused variable 'k' [-Wunused-variable]
curve.c:   int k;
curve.c:       ^
curve.c: 1 warning generated.
fep256.c: fep256.c:1076:14: warning: unused variable 'temp' [-Wunused-variable]
fep256.c:   smallfelem temp;
fep256.c:              ^
fep256.c: fep256.c:46:30: warning: unused variable 'nistp256_curve_params' [-Wunused-const-variable]
fep256.c: 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: static const limb bottom32bits = 0xffffffff;
fep256.c:                   ^
fep256.c: fep256.c:133:13: warning: unused function 'smallfelem_assign' [-Wunused-function]
fep256.c: 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: 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: 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: 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: 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: 5, namely:
ImplementationCompiler
T:wblclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:wblclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:wblclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:wblclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:wblclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

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: In function 'fep256unpack':
fep256.c: fep256.c:1076:14: warning: unused variable 'temp' [-Wunused-variable]
fep256.c:  1076 |   smallfelem temp;
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:   944 | static void smallfelem_inv_contract(smallfelem out, const smallfelem in)
fep256.c:       |             ^~~~~~~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:819:13: warning: 'smallfelem_mul_contract' defined but not used [-Wunused-function]
fep256.c:   819 | static void smallfelem_mul_contract(smallfelem out, const smallfelem in1, const smallfelem in2)
fep256.c:       |             ^~~~~~~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:809:13: warning: 'smallfelem_square_contract' defined but not used [-Wunused-function]
fep256.c:   809 | static void smallfelem_square_contract(smallfelem out, const smallfelem in)
fep256.c:       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:718:13: warning: 'felem_reduce_zero105' defined but not used [-Wunused-function]
fep256.c:   718 | static void felem_reduce_zero105(felem out, const longfelem in)
fep256.c:       |             ^~~~~~~~~~~~~~~~~~~~
fep256.c: fep256.c:623:13: warning: 'felem_small_mul' defined but not used [-Wunused-function]
fep256.c:   623 | static void felem_small_mul(longfelem out, const smallfelem small1, const felem in2)
fep256.c: ...

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