Implementation notes: amd64, hertz, crypto_aead/romulust

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: romulust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
55579311708 0 026208 820 1096aadomn/x86clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
55706514192 0 034982 828 1096aadomn/x86clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
55836414000 0 034670 828 1096aadomn/x86clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
174179038030 640 058886 1572 1096aadomn/opt32clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
175158536574 640 057278 1572 1096aadomn/opt32clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
231720312875 12 033918 840 1096T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
234021412141 12 033294 840 1096T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
260453030002 640 047293 1484 1160aadomn/opt32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
303262123779 640 039045 1452 1096aadomn/opt32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
362864118541 640 033456 1468 1096aadomn/opt32clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
464164620164 640 033752 1428 1064aadomn/opt32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
525915713206 12 030405 816 1160T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
74463377084 12 022237 816 1096T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
84693245407 12 020360 832 1096T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
96706365494 12 018968 792 1064T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


tk_schedule.c: tk_schedule.c:377:14: warning: argument 1 of type 'uint32_t[64]' {aka 'unsigned int[64]'} with mismatched bound [-Warray-parameter=]
tk_schedule.c:   377 |     uint32_t rtk_1[TKPERMORDER*BLOCKBYTES/4],
tk_schedule.c:       |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tk_schedule.c: In file included from tk_schedule.c:17:
tk_schedule.c: tk_schedule.h:40:31: note: previously declared as 'uint32_t *' {aka 'unsigned int *'}
tk_schedule.c:    40 | void tk_schedule_13(uint32_t *rtk_1, uint32_t *rtk_3,
tk_schedule.c:       |                     ~~~~~~~~~~^~~~~
tk_schedule.c: tk_schedule.c:378:14: warning: argument 2 of type 'uint32_t[160]' {aka 'unsigned int[160]'} with mismatched bound [-Warray-parameter=]
tk_schedule.c:   378 |     uint32_t rtk_3[SKINNY128_384_ROUNDS*BLOCKBYTES/4],
tk_schedule.c:       |     ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tk_schedule.c: tk_schedule.h:40:48: note: previously declared as 'uint32_t *' {aka 'unsigned int *'}
tk_schedule.c:    40 | void tk_schedule_13(uint32_t *rtk_1, uint32_t *rtk_3,
tk_schedule.c:       |                                      ~~~~~~~~~~^~~~~
tk_schedule.c: tk_schedule.c:379:19: warning: argument 3 of type 'const uint8_t[16]' {aka 'const unsigned char[16]'} with mismatched bound [-Warray-parameter=]
tk_schedule.c:   379 |     const uint8_t tk_1[TWEAKEYBYTES],
tk_schedule.c:       |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
tk_schedule.c: tk_schedule.h:41:20: note: previously declared as 'const uint8_t *' {aka 'const unsigned char *'}
tk_schedule.c:    41 |     const uint8_t *tk_1,
tk_schedule.c:       |     ~~~~~~~~~~~~~~~^~~~
tk_schedule.c: tk_schedule.c:380:19: warning: argument 4 of type 'const uint8_t[16]' {aka 'const unsigned char[16]'} with mismatched bound [-Warray-parameter=]
tk_schedule.c:   380 |     const uint8_t tk_3[TWEAKEYBYTES])
tk_schedule.c:       |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
tk_schedule.c: tk_schedule.h:42:20: note: previously declared as 'const uint8_t *' {aka 'const unsigned char *'}
tk_schedule.c:    42 |     const uint8_t *tk_3);
tk_schedule.c:       |     ~~~~~~~~~~~~~~~^~~~
tk_schedule.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
aadomn/opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
aadomn/opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
aadomn/opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


skinny128.c: skinny128.c:67:20: warning: argument 1 of type 'unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    67 |     unsigned char *out,
skinny128.c:       |     ~~~~~~~~~~~~~~~^~~
skinny128.c: In file included from skinny128.c:11:
skinny128.c: skinny128.h:13:17: note: previously declared as an array 'uint8_t[16]' {aka 'unsigned char[16]'}
skinny128.c:    13 |         uint8_t in[BLOCKBYTES], const uint8_t out[BLOCKBYTES],
skinny128.c:       |         ~~~~~~~~^~~~~~~~~~~~~~
skinny128.c: skinny128.c:68:26: warning: argument 2 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    68 |     const unsigned char *in,
skinny128.c:       |     ~~~~~~~~~~~~~~~~~~~~~^~
skinny128.c: skinny128.h:13:47: note: previously declared as an array 'const uint8_t[16]' {aka 'const unsigned char[16]'}
skinny128.c:    13 |         uint8_t in[BLOCKBYTES], const uint8_t out[BLOCKBYTES],
skinny128.c:       |                                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
skinny128.c: skinny128.c:69:26: warning: argument 3 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    69 |     const unsigned char *tk1,
skinny128.c:       |     ~~~~~~~~~~~~~~~~~~~~~^~~
skinny128.c: skinny128.h:14:23: note: previously declared as an array 'const uint8_t[16]' {aka 'const unsigned char[16]'}
skinny128.c:    14 |         const uint8_t tk1[TWEAKEYBYTES],
skinny128.c:       |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
skinny128.c: skinny128.c:70:26: warning: argument 4 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    70 |     const unsigned char *rtk_23)
skinny128.c:       |     ~~~~~~~~~~~~~~~~~~~~~^~~~~~
skinny128.c: skinny128.h:15:23: note: previously declared as an array 'const uint8_t[320]' {aka 'const unsigned char[320]'}
skinny128.c:    15 |         const uint8_t rtk_23[SKINNY128_384_ROUNDS*BLOCKBYTES/2]);
skinny128.c:       |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
skinny128.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
aadomn/x86gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
aadomn/x86gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
aadomn/x86gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


romulus_t_reference.c: romulus_t_reference.c:368:16: warning: variable 'i' set but not used [-Wunused-but-set-variable]
romulus_t_reference.c:   368 |   unsigned int i;
romulus_t_reference.c:       |                ^
romulus_t_reference.c: romulus_t_reference.c:411:24: warning: variable 'C' set but not used [-Wunused-but-set-variable]
romulus_t_reference.c:   411 |   const unsigned char* C;
romulus_t_reference.c:       |                        ^
romulus_t_reference.c: 2 warnings generated.

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


romulus_t_reference.c: romulus_t_reference.c: In function 'romulus_t_encrypt':
romulus_t_reference.c: romulus_t_reference.c:368:16: warning: variable 'i' set but not used [-Wunused-but-set-variable]
romulus_t_reference.c:   368 |   unsigned int i;
romulus_t_reference.c:       |                ^
romulus_t_reference.c: romulus_t_reference.c: In function 'romulus_t_decrypt':
romulus_t_reference.c: romulus_t_reference.c:411:24: warning: variable 'C' set but not used [-Wunused-but-set-variable]
romulus_t_reference.c:   411 |   const unsigned char* C;
romulus_t_reference.c:       |                        ^

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

Namespace violations


romulus_t.o romulusht T
romulus_t.o romulust_generate_tag T
romulus_t.o romulust_init T
romulus_t.o romulust_kdf T
romulus_t.o romulust_process_msg T
skinny128.o mixcolumns_0 T
skinny128.o mixcolumns_1 T
skinny128.o mixcolumns_2 T
skinny128.o mixcolumns_3 T
skinny128.o skinny128_384_plus T
tk_schedule.o lfsr2_bs T
tk_schedule.o lfsr3_bs T
tk_schedule.o packing T
tk_schedule.o permute_tk T
tk_schedule.o permute_tk_10 T
tk_schedule.o permute_tk_12 T
tk_schedule.o permute_tk_14 T
tk_schedule.o permute_tk_2 T
tk_schedule.o permute_tk_4 T
tk_schedule.o permute_tk_6 T
tk_schedule.o permute_tk_8 T
tk_schedule.o precompute_lfsr_tk2 T
tk_schedule.o precompute_lfsr_tk3 T
tk_schedule.o rconst_32_bs D
tk_schedule.o tk_schedule_1 T
tk_schedule.o tk_schedule_123 T
tk_schedule.o tk_schedule_13 T
tk_schedule.o tk_schedule_23 T
tk_schedule.o unpacking T

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
aadomn/opt32clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/opt32clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/opt32clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
aadomn/opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
aadomn/opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


romulus_t.o romulusht T
romulus_t.o romulust_generate_tag T
romulus_t.o romulust_init T
romulus_t.o romulust_kdf T
romulus_t.o romulust_process_msg T
skinny128.o skinny128_384_plus T
skinny128.o tk_schedule_23 T
skinny128.o tk_schedule_3 T

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
aadomn/x86clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/x86clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/x86clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Namespace violations


hash.o crypto_hash T
hash.o hirose_128_128_256 T
hash.o initialize T
hash.o ipad_128 T
hash.o ipad_256 T
romulus_t_reference.o block_cipher T
romulus_t_reference.o compose_tweakey T
romulus_t_reference.o crypto_hash_vector T
romulus_t_reference.o generate_tag T
romulus_t_reference.o kdf T
romulus_t_reference.o lfsr_gf56 T
romulus_t_reference.o msg_decryption T
romulus_t_reference.o msg_encryption T
romulus_t_reference.o reset_lfsr_gf56 T
romulus_t_reference.o romulus_t_decrypt T
romulus_t_reference.o romulus_t_encrypt T
skinny_reference.o AddConstants T
skinny_reference.o AddKey T
skinny_reference.o BLOCK_SIZE D
skinny_reference.o MixColumn T
skinny_reference.o N_RNDS D
skinny_reference.o P R
skinny_reference.o RC R
skinny_reference.o ShiftRows T
skinny_reference.o SubCell8 T
skinny_reference.o TWEAKEY_P R
skinny_reference.o TWEAKEY_SIZE D
skinny_reference.o enc T
skinny_reference.o sbox_8 R
skinny_reference.o skinny_128_384_plus_enc T

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

TIMECOP error (can be valgrind bug)


error 111

Process terminating with default action of signal 4 (SIGILL)
 Illegal opcode at address 0x10B3B6
   at 0x...: core (try-anything.c:61)
   by 0x...: salsa20 (try-anything.c:101)
   by 0x...: testvector (try-anything.c:124)
   by 0x...: myrandom (try-anything.c:132)
   by 0x...: test (try.c:144)
   by 0x...: main (try-anything.c:345)

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
aadomn/opt32clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/x86clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

TIMECOP error (can be valgrind bug)


error 111

Process terminating with default action of signal 4 (SIGILL)
 Illegal opcode at address 0x10BED4
   at 0x...: salsa20 (try-anything.c:90)
   by 0x...: canary (try-anything.c:148)
   by 0x...: output_prepare (try-anything.c:178)
   by 0x...: test (try.c:148)
   by 0x...: main (try-anything.c:345)

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
aadomn/opt32clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/x86clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

TIMECOP error (can be valgrind bug)


error 111

Process terminating with default action of signal 4 (SIGILL)
 Illegal opcode at address 0x10A53E
   at 0x...: core (try-anything.c:64)
   by 0x...: salsa20 (try-anything.c:101)
   by 0x...: testvector (try-anything.c:124)
   by 0x...: myrandom (try-anything.c:132)
   by 0x...: test (try.c:144)
   by 0x...: main (try-anything.c:345)

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
aadomn/opt32clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
aadomn/x86clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

TIMECOP error (can be valgrind bug)


error 111

Process terminating with default action of signal 4 (SIGILL)
 Illegal opcode at address 0x10A697
   at 0x...: core (try-anything.c:68)
   by 0x...: salsa20.part.0 (try-anything.c:101)
   by 0x...: salsa20 (try-anything.c:85)
   by 0x...: testvector (try-anything.c:124)
   by 0x...: myrandom (try-anything.c:132)
   by 0x...: test (try.c:144)
   by 0x...: main (try-anything.c:345)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
aadomn/opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

TIMECOP error (can be valgrind bug)


error 111

Process terminating with default action of signal 4 (SIGILL)
 Illegal opcode at address 0x10A6EC
   at 0x...: core (try-anything.c:64)
   by 0x...: salsa20 (try-anything.c:101)
   by 0x...: salsa20 (try-anything.c:81)
   by 0x...: testvector (try-anything.c:124)
   by 0x...: myrandom (try-anything.c:132)
   by 0x...: test (try.c:144)
   by 0x...: main (try-anything.c:345)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
aadomn/opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

TIMECOP error (can be valgrind bug)


error 111

Process terminating with default action of signal 4 (SIGILL)
 Illegal opcode at address 0x10A46F
   at 0x...: core (try-anything.c:64)
   by 0x...: salsa20.part.0 (try-anything.c:101)
   by 0x...: salsa20 (try-anything.c:85)
   by 0x...: testvector (try-anything.c:124)
   by 0x...: myrandom (try-anything.c:132)
   by 0x...: test (try.c:144)
   by 0x...: main (try-anything.c:345)

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
aadomn/opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)