Implementation notes: amd64, cubi10, crypto_dh/claus

Computer: cubi10
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_dh
Primitive: claus
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
38987531329 0 024408 940 1720T:opensslnewclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39008091302 0 021021 916 1752T:opensslnewgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39013101270 0 021662 932 1720T:opensslnewclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39020701932 0 023645 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39026221554 0 025741 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39068951273 0 025256 940 1752T:opensslnewclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39096491451 0 022398 932 1720T:opensslnewclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39099111554 0 023781 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
39582331273 0 025368 940 1752T:opensslnewclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
41982772270 16 0220768 1660 1784T:gmpclang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
41987181768 16 0217644 1620 1816T:gmpg++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
41999032231 16 0220640 1628 1848T:gmpg++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42080622671 16 0218046 1652 1752T:gmpclang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42176842231 16 0222568 1628 1848T:gmpg++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42277622316 16 0216990 1652 1752T:gmpclang++_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42329024034 336 2419470 3628 3640T:ntlclang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42331685083 336 2417496 3644 3640T:ntlclang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42334943864 336 2420136 3644 3704T:ntlg++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42349404242 336 2421048 3644 3704T:ntlg++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42358642270 16 0220640 1660 1784T:gmpclang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42360794148 336 2422912 3644 3704T:ntlg++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
42458773192 336 2415075 3620 3640T:ntlclang++_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
43001314114 336 2419582 3628 3640T:ntlclang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
43188292674 336 2417906 3588 3672T:ntlg++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
48585361888 16 0219771 1628 1848T:gmpg++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52368972718 16 2241694878 144508 11448T:cryptoppg++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52491113107 16 1681399051 144508 11256T:cryptoppclang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52494232618 16 1681401989 144516 11288T:cryptoppclang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52501972518 16 2241692270 144508 11448T:cryptoppg++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52555982629 16 1681402085 144516 11288T:cryptoppclang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52625932718 16 2241692982 144508 11448T:cryptoppg++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52648121938 16 2241689762 144500 11416T:cryptoppg++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
52954072154 16 1681397891 144508 11256T:cryptoppclang++_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625

Compiler output


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 (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:opensslclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opensslclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opensslclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opensslclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opensslclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


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 (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:opensslgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:opensslgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:opensslgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:opensslgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)