Implementation notes: amd64, gemini, crypto_dh/claus

Computer: gemini
Microarchitecture: amd64; Goldmont Plus (706a8)
Architecture: amd64
CPU ID: GenuineIntel-000706a8-bfebfbff
SUPERCOP version: 20240425
Operation: crypto_dh
Primitive: claus
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
89921902241 16 0218416 1308 1752T:gmpclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
89940442695 16 0215198 1300 1752T:gmpclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
89942661770 16 0213892 1268 1816T:gmpg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
89958131893 16 0216083 1276 1848T:gmpg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
89968082415 16 0218232 1276 1848T:gmpg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
89999462415 16 0217032 1276 1848T:gmpg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
90375272215 16 0213966 1300 1752T:gmpclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
90546084310 336 2417906 3292 3704T:ntlg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
90566432684 336 2414660 3236 3672T:ntlg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
90584524310 336 2419106 3292 3704T:ntlg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
90598413990 336 2415392 3276 3640T:ntlclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
90617085083 336 2415178 3292 3640T:ntlclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
90688753887 336 2416986 3292 3704T:ntlg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
91872083135 336 2412669 3268 3640T:ntlclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
97545112241 16 0216080 1308 1752T:gmpclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
98333204132 336 2417744 3276 3640T:ntlclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
105903881245 0 019638 932 1720T:opensslnewclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
105969121302 0 019213 916 1752T:opensslnewgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
105983841764 0 023429 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
106013691477 0 020462 932 1720T:opensslnewclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
106034741320 0 024000 940 1720T:opensslnewclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
106039302099 0 022093 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
106082141320 0 021680 940 1720T:opensslnewclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
114911791764 0 022261 924 1752T:opensslnewgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
115149361329 0 022600 940 1720T:opensslnewclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
117593862738 16 2241672166 144444 11448T:cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
117701972738 16 2241673302 144444 11448T:cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
117852412103 16 1681376947 144444 11256T:cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
117909972549 16 1681381757 144452 11256T:cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
117999262532 16 2241671486 144444 11448T:cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425
118043523075 16 1681378219 144444 11256T:cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
128299842535 16 1681379453 144452 11256T:cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050120240425
128764291946 16 2241668914 144436 11416T:cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050120240425

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