Implementation notes: amd64, rome0, crypto_dh/claus

Computer: rome0
Microarchitecture: amd64; Zen 2 (830f10)
Architecture: amd64
CPU ID: AuthenticAMD-00830f10-178bfbff
SUPERCOP version: 20240107
Operation: crypto_dh
Primitive: claus
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
38813892039 16 0221015 1052 1848T:gmpg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39023992174 16 0221152 1084 1784T:gmpclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39109022639 16 0219406 1076 1752T:gmpclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39121392220 16 0218278 1076 1752T:gmpclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39166201888 16 0218675 1052 1848T:gmpg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39177531768 16 0217300 1044 1816T:gmpg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39195592174 16 0221024 1084 1784T:gmpclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39397315035 336 2423780 3068 3640T:ntlclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39480813864 336 2423972 3068 3704T:ntlg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39517583160 336 2421367 3044 3640T:ntlclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39541542039 16 0219303 1052 1848T:gmpg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39582264082 336 2424970 3052 3640T:ntlclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39593863985 336 2426355 3068 3704T:ntlg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39601954047 336 2424707 3068 3704T:ntlg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39620892674 336 2422494 3012 3672T:ntlg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
39639024002 336 2424794 3052 3640T:ntlclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
39997941438 0 022446 932 1720T:opensslnewclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
40006761261 0 021710 932 1720T:opensslnewclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
40025371329 0 024456 940 1720T:opensslnewclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
40041551264 0 024400 940 1752T:opensslnewclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
40043031264 0 024512 940 1752T:opensslnewclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
40047721362 0 022901 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
40085631362 0 024581 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
40174301746 0 022813 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
40225391302 0 021069 916 1752T:opensslnewgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
52047752535 16 1681405721 144452 11352T:cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
52380792549 16 1681405881 144452 11352T:cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
52455481938 16 2241694374 144436 11480T:cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
52491272530 16 2241696130 144444 11512T:cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
52517252750 16 2241696850 144444 11512T:cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212
52700162103 16 1681402519 144444 11320T:cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
52803013075 16 1681403687 144444 11320T:cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121220231212
52990602750 16 2241698530 144444 11512T:cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121220231212

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keypair.c: keypair.c:25:5: error: incomplete definition of type 'struct dh_st'
keypair.c: dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: ~~^
keypair.c: /usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'struct dh_st'
keypair.c: typedef struct dh_st DH;
keypair.c: ^
keypair.c: keypair.c:25:28: error: incomplete definition of type 'struct dh_st'
keypair.c: dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: ~~^
keypair.c: /usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'struct dh_st'
keypair.c: typedef struct dh_st DH;
keypair.c: ^
keypair.c: keypair.c:26:5: error: incomplete definition of type 'struct dh_st'
keypair.c: dh->g = BN_new(); if (!dh->g) goto error;
keypair.c: ~~^
keypair.c: /usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'struct dh_st'
keypair.c: typedef struct dh_st DH;
keypair.c: ^
keypair.c: keypair.c:26:28: error: incomplete definition of type 'struct dh_st'
keypair.c: dh->g = BN_new(); if (!dh->g) goto error;
keypair.c: ~~^
keypair.c: /usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'struct dh_st'
keypair.c: typedef struct dh_st DH;
keypair.c: ^
keypair.c: keypair.c:28:39: error: incomplete definition of type 'struct dh_st'
keypair.c: ...

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

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
keypair.c: keypair.c: In function 'crypto_dh_claus_openssl_timingleaks_keypair':
keypair.c: keypair.c:25:5: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 25 | dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: | ^~
keypair.c: keypair.c:25:28: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 25 | dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: | ^~
keypair.c: keypair.c:26:5: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 26 | dh->g = BN_new(); if (!dh->g) goto error;
keypair.c: | ^~
keypair.c: keypair.c:26:28: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 26 | dh->g = BN_new(); if (!dh->g) goto error;
keypair.c: | ^~
keypair.c: keypair.c:28:39: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 28 | if (!BN_bin2bn(prime,sizeof prime,dh->p)) goto error;
keypair.c: | ^~
keypair.c: keypair.c:29:22: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 29 | if (!BN_set_word(dh->g,2)) goto error;
keypair.c: | ^~
keypair.c: In file included from keypair.c:2:
keypair.c: keypair.c:33:24: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 33 | len = BN_num_bytes(dh->pub_key); if (len > PUBLICKEY_BYTES) goto error;
keypair.c: | ^~
keypair.c: keypair.c:34:15: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 34 | BN_bn2bin(dh->pub_key,pk + PUBLICKEY_BYTES - len);
keypair.c: ...

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