Implementation notes: amd64, comet, crypto_kem/oddmanhattan256

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: oddmanhattan256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4725023295256 0 52216715 1564 1856T:optgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4732122355356 0 52217331 1564 1856T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4732342335937 0 52219803 1564 1856T:optgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4739797357639 0 52221685 1620 1792T:optclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4740719684810 0 52217251 1612 1888T:optclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4745794305862 0 52221221 1620 1792T:optclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4748443877526 0 52223181 1620 1888T:optclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4750147095227 0 52216893 1620 1792T:optclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
4792321254672 0 52215043 1556 1824T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13071973716598 0 52218933 1620 1888T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13081584035046 0 52217037 1620 1792T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13082070214516 0 52213187 1564 1856T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13082684046695 0 52217437 1620 1792T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13087692414331 0 52212645 1620 1792T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13089691454014 0 52213131 1612 1888T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13089766664511 0 52212691 1564 1856T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13095732075113 0 52215659 1564 1856T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
13121831744073 0 52211091 1556 1824T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625

Compiler output


kem.c: kem.c:30:15: warning: passing 'char[32]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
kem.c:   randombytes(seed,crypto_kem_BYTES);
kem.c:               ^~~~
kem.c: .../supercop-data/comet/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 where one is of the unique plain 'char' type and the other is not [-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 where one is of the unique plain 'char' type and the other is not [-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.
rng.c: rng.c:122:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:     int ciphertext_len;
rng.c:         ^
rng.c: 1 warning 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_14.0.6)
T:optclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:optclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:optclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


kem.c: kem.c: In function 'crypto_kem_oddmanhattan256_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/comet/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 (12.2.0)
T:optgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:optgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:optgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

Compiler output


kem.c: kem.c:30:15: warning: passing 'char[32]' to parameter of type 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
kem.c:   randombytes(seed,crypto_kem_BYTES);
kem.c:               ^~~~
kem.c: .../supercop-data/comet/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 where one is of the unique plain 'char' type and the other is not [-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 where one is of the unique plain 'char' type and the other is not [-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.
rng.c: rng.c:122:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:     int ciphertext_len;
rng.c:         ^
rng.c: 1 warning 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_14.0.6)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


kem.c: kem.c: In function 'crypto_kem_oddmanhattan256_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/comet/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 (12.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)