Implementation notes: amd64, rumba5, crypto_kem/threebears936r2ccax

Computer: rumba5
Microarchitecture: amd64; Zen (800f11)
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20240716
Operation: crypto_kem
Primitive: threebears936r2ccax
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
31753511542 0 0140774 868 1728vecclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
31757915268 0 0144894 868 1728vecclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
3205458995 0 0135174 868 1728vecclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
3327038082 0 0135024 860 1792vecclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
43200712488 0 039403 860 1728optclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
43212814595 0 041875 860 1728optclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
4360339305 0 033147 860 1728optclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
44335714274 0 040595 860 1728vecclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
44383014274 0 040595 860 1728optclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
4438667826 0 032413 852 1792optclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
49131710018 0 034949 820 1760optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716

Compiler output


threebears.c: threebears.c:100:22: warning: argument 1 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   100 | void keygen(uint8_t *pk, uint8_t *sk, const uint8_t *seed) {
threebears.c:       |             ~~~~~~~~~^~
threebears.c: In file included from threebears.c:7:
threebears.c: threebears.h:23:13: note: previously declared as an array 'uint8_t[1194]' {aka 'unsigned char[1194]'}
threebears.c:    23 |     uint8_t pk[PQCRYPTO_KEM_THREEBEARS936R2CCAX_IMPL_PRIV_PUBLIC_KEY_BYTES],
threebears.c:       |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
threebears.c: threebears.c:100:35: warning: argument 2 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   100 | void keygen(uint8_t *pk, uint8_t *sk, const uint8_t *seed) {
threebears.c:       |                          ~~~~~~~~~^~
threebears.c: In file included from threebears.c:7:
threebears.c: threebears.h:24:13: note: previously declared as an array 'uint8_t[2404]' {aka 'unsigned char[2404]'}
threebears.c:    24 |     uint8_t sk[PQCRYPTO_KEM_THREEBEARS936R2CCAX_IMPL_PRIV_PRIVATE_KEY_BYTES],
threebears.c:       |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
threebears.c: threebears.c:100:54: warning: argument 3 of type 'const uint8_t *' {aka 'const unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   100 | void keygen(uint8_t *pk, uint8_t *sk, const uint8_t *seed) {
threebears.c:       |                                       ~~~~~~~~~~~~~~~^~~~
threebears.c: In file included from threebears.c:7:
threebears.c: threebears.h:25:19: note: previously declared as an array 'const uint8_t[40]' {aka 'const unsigned char[40]'}
threebears.c:    25 |     const uint8_t seed[PQCRYPTO_KEM_THREEBEARS936R2CCAX_IMPL_PRIV_KEYGEN_SEED_BYTES]
threebears.c:       |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
threebears.c: threebears.c:142:14: warning: argument 1 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   142 |     uint8_t *shared_secret,
threebears.c:       |     ~~~~~~~~~^~~~~~~~~~~~~
threebears.c: In file included from threebears.c:7:
threebears.c: ...

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

Compiler output


threebears.c: threebears.c:100:22: warning: argument 1 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   100 | void keygen(uint8_t *pk, uint8_t *sk, const uint8_t *seed) {
threebears.c:       |             ~~~~~~~~~^~
threebears.c: In file included from threebears.c:7:
threebears.c: threebears.h:23:13: note: previously declared as an array 'uint8_t[1194]' {aka 'unsigned char[1194]'}
threebears.c:    23 |     uint8_t pk[PQCRYPTO_KEM_THREEBEARS936R2CCAX_IMPL_PRIV_PUBLIC_KEY_BYTES],
threebears.c:       |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
threebears.c: threebears.c:100:35: warning: argument 2 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   100 | void keygen(uint8_t *pk, uint8_t *sk, const uint8_t *seed) {
threebears.c:       |                          ~~~~~~~~~^~
threebears.c: In file included from threebears.c:7:
threebears.c: threebears.h:24:13: note: previously declared as an array 'uint8_t[2404]' {aka 'unsigned char[2404]'}
threebears.c:    24 |     uint8_t sk[PQCRYPTO_KEM_THREEBEARS936R2CCAX_IMPL_PRIV_PRIVATE_KEY_BYTES],
threebears.c:       |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
threebears.c: threebears.c:100:54: warning: argument 3 of type 'const uint8_t *' {aka 'const unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   100 | void keygen(uint8_t *pk, uint8_t *sk, const uint8_t *seed) {
threebears.c:       |                                       ~~~~~~~~~~~~~~~^~~~
threebears.c: In file included from threebears.c:7:
threebears.c: threebears.h:25:19: note: previously declared as an array 'const uint8_t[40]' {aka 'const unsigned char[40]'}
threebears.c:    25 |     const uint8_t seed[PQCRYPTO_KEM_THREEBEARS936R2CCAX_IMPL_PRIV_KEYGEN_SEED_BYTES]
threebears.c:       |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
threebears.c: threebears.c:157:14: warning: argument 1 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Warray-parameter=]
threebears.c:   157 |     uint8_t *shared_secret,
threebears.c:       |     ~~~~~~~~~^~~~~~~~~~~~~
threebears.c: In file included from threebears.c:7:
threebears.c: ...

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

Namespace violations


melas_fec.o pqcrypto_kem_threebears936r2ccax_impl_priv_melas_fec_correct T
melas_fec.o pqcrypto_kem_threebears936r2ccax_impl_priv_melas_fec_set T
ring.o pqcrypto_kem_threebears936r2ccax_impl_priv_canon_3120 T
ring.o pqcrypto_kem_threebears936r2ccax_impl_priv_contract_3120 T
ring.o pqcrypto_kem_threebears936r2ccax_impl_priv_expand_3120 T
ring.o pqcrypto_kem_threebears936r2ccax_impl_priv_mac_3120 T
shake.o pqcrypto_kem_threebears936r2ccax_impl_priv_hash_output T
shake.o pqcrypto_kem_threebears936r2ccax_impl_priv_hash_times_n T
shake.o pqcrypto_kem_threebears936r2ccax_impl_priv_hash_update T
shake.o pqcrypto_kem_threebears936r2ccax_impl_priv_threebears_cshake_init T
threebears.o pqcrypto_kem_threebears936r2ccax_impl_priv_decapsulate T
threebears.o pqcrypto_kem_threebears936r2ccax_impl_priv_encapsulate T
threebears.o pqcrypto_kem_threebears936r2ccax_impl_priv_keygen T
threebears.o pqcrypto_kem_threebears936r2ccax_impl_priv_secure_bzero T

Number of similar (implementation,compiler) pairs: 11, namely:
ImplementationCompiler
optclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
vecclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Passed TIMECOP


TIMECOP iterations: 1

Number of similar (implementation,compiler) pairs: 11, namely:
ImplementationCompiler
optclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
optgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
vecclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
vecclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)