Implementation notes: amd64, lucienne, crypto_kem/oddmanhattan128

Computer: lucienne
Microarchitecture: amd64; Zen 2 (860f81)
Architecture: amd64
CPU ID: AuthenticAMD-00860f81-178bfbff
SUPERCOP version: 20240716
Operation: crypto_kem
Primitive: oddmanhattan128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
929615717859 0 52220640 1004 1784T:optclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
929878164577 0 52214758 996 1784T:optclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
930872935402 0 52216681 988 1848T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
931399354968 0 52215366 996 1784T:optclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
936604544680 0 52214449 980 1816T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
986791857664 0 52220304 1004 1784T:optclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
986897895282 0 52216153 988 1848T:optgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
987926626183 0 52218656 1004 1784T:optclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
989593236227 0 52219201 988 1848T:optgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
2913693616643 0 52215960 1004 1784T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3262100284280 0 52211262 996 1784T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3326484073931 0 52210654 996 1784T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3550715895499 0 52215009 988 1848T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3648675205031 0 52214040 1004 1784T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3689433386560 0 52215752 1004 1784T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3734070914674 0 52212489 988 1848T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
3736130534061 0 52210449 980 1816T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716
4057620134638 0 52212081 988 1848T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072120240716

Compiler output


kem.c: kem.c:30:15: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:   randombytes(seed,crypto_kem_BYTES);
kem.c:               ^~~~
kem.c: .../supercop-data/lucienne/amd64/include/randombytes.h:8:40: note: passing argument to parameter here
kem.c: extern void randombytes(unsigned char *,unsigned long long);
kem.c:                                        ^
kem.c: kem.c:35:25: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:                         ^~~~
kem.c: ./rng.h:40:34: note: passing argument to parameter 'seed' here
kem.c:                   unsigned char *seed,
kem.c:                                  ^
kem.c: kem.c:131:30: warning: passing 'char [8]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:                              ^~~~~~~~~~~
kem.c: ./rng.h:41:34: note: passing argument to parameter 'diversifier' here
kem.c:                   unsigned char *diversifier,
kem.c:                                  ^
kem.c: kem.c:305:21: warning: unused variable 'b0' [-Wunused-variable]
kem.c:       unsigned char b0=1;
kem.c:                     ^
kem.c: 4 warnings generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:optclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


kem.c: kem.c: In function 'crypto_kem_oddmanhattan128_opt_timingleaks_keypair':
kem.c: kem.c:30:15: warning: pointer targets in passing argument 1 of 'randombytes' differ in signedness [-Wpointer-sign]
kem.c:    30 |   randombytes(seed,crypto_kem_BYTES);
kem.c:       |               ^~~~
kem.c:       |               |
kem.c:       |               char *
kem.c: In file included from kem.c:5:
kem.c: .../supercop-data/lucienne/amd64/include/randombytes.h:8:25: note: expected 'unsigned char *' but argument is of type 'char *'
kem.c:     8 | extern void randombytes(unsigned char *,unsigned long long);
kem.c:       |                         ^~~~~~~~~~~~~~~
kem.c: kem.c:35:25: warning: pointer targets in passing argument 2 of 'seedexpander_init' differ in signedness [-Wpointer-sign]
kem.c:    35 |   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:       |                         ^~~~
kem.c:       |                         |
kem.c:       |                         char *
kem.c: In file included from kem.c:3:
kem.c: rng.h:40:34: note: expected 'unsigned char *' but argument is of type 'char *'
kem.c:    40 |                   unsigned char *seed,
kem.c:       |                   ~~~~~~~~~~~~~~~^~~~
kem.c: kem.c: In function 'om_kem_enc':
kem.c: kem.c:131:30: warning: pointer targets in passing argument 3 of 'seedexpander_init' differ in signedness [-Wpointer-sign]
kem.c:   131 |   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:       |                              ^~~~~~~~~~~
kem.c:       |                              |
kem.c:       |                              char *
kem.c: ...
rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:122:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   122 |     int ciphertext_len;
rng.c:       |         ^~~~~~~~~~~~~~

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

Compiler output


kem.c: kem.c:30:15: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:   randombytes(seed,crypto_kem_BYTES);
kem.c:               ^~~~
kem.c: .../supercop-data/lucienne/amd64/include/randombytes.h:8:40: note: passing argument to parameter here
kem.c: extern void randombytes(unsigned char *,unsigned long long);
kem.c:                                        ^
kem.c: kem.c:35:25: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:                         ^~~~
kem.c: ./rng.h:40:34: note: passing argument to parameter 'seed' here
kem.c:                   unsigned char *seed,
kem.c:                                  ^
kem.c: kem.c:125:30: warning: passing 'char [8]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:                              ^~~~~~~~~~~
kem.c: ./rng.h:41:34: note: passing argument to parameter 'diversifier' here
kem.c:                   unsigned char *diversifier,
kem.c:                                  ^
kem.c: kem.c:235:21: warning: unused variable 'b0' [-Wunused-variable]
kem.c:       unsigned char b0=1;
kem.c:                     ^
kem.c: 4 warnings generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


kem.c: kem.c: In function 'crypto_kem_oddmanhattan128_ref_timingleaks_keypair':
kem.c: kem.c:30:15: warning: pointer targets in passing argument 1 of 'randombytes' differ in signedness [-Wpointer-sign]
kem.c:    30 |   randombytes(seed,crypto_kem_BYTES);
kem.c:       |               ^~~~
kem.c:       |               |
kem.c:       |               char *
kem.c: In file included from kem.c:5:
kem.c: .../supercop-data/lucienne/amd64/include/randombytes.h:8:25: note: expected 'unsigned char *' but argument is of type 'char *'
kem.c:     8 | extern void randombytes(unsigned char *,unsigned long long);
kem.c:       |                         ^~~~~~~~~~~~~~~
kem.c: kem.c:35:25: warning: pointer targets in passing argument 2 of 'seedexpander_init' differ in signedness [-Wpointer-sign]
kem.c:    35 |   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:       |                         ^~~~
kem.c:       |                         |
kem.c:       |                         char *
kem.c: In file included from kem.c:3:
kem.c: rng.h:40:34: note: expected 'unsigned char *' but argument is of type 'char *'
kem.c:    40 |                   unsigned char *seed,
kem.c:       |                   ~~~~~~~~~~~~~~~^~~~
kem.c: kem.c: In function 'om_kem_enc':
kem.c: kem.c:125:30: warning: pointer targets in passing argument 3 of 'seedexpander_init' differ in signedness [-Wpointer-sign]
kem.c:   125 |   seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c:       |                              ^~~~~~~~~~~
kem.c:       |                              |
kem.c:       |                              char *
kem.c: ...
rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:122:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   122 |     int ciphertext_len;
rng.c:       |         ^~~~~~~~~~~~~~

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

Namespace violations


kem.o om_kem_dec T
kem.o om_kem_enc T
kem.o om_random_generator T
rng.o AES256_CTR_DRBG_Update T
rng.o AES256_ECB T
rng.o DRBG_ctx B
rng.o handleErrors T
rng.o seedexpander T
rng.o seedexpander_init T

Number of similar (implementation,compiler) pairs: 18, namely:
ImplementationCompiler
T:optclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:optgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:optgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:optgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)