Implementation notes: amd64, hertz, crypto_hash/romulush

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_hash
Primitive: romulush
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
699049732 0 027422 828 968T:x86clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
699149036 0 026614 828 968T:x86clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
699538033 0 019496 820 968T:x86clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
706159677 0 023373 804 1032T:x86gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
707808301 0 019925 804 968T:x86gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1055938622 608 018736 1396 936T:opt32tgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
10694110704 608 024357 1420 1032T:opt32tgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1074459461 608 021037 1420 968T:opt32tgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
11149118307 592 036038 1428 968T:opt32tclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
11283218291 592 035910 1428 968T:opt32tclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1147448019 592 019520 1420 968T:opt32tclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
21425234909 640 052310 1572 968T:opt32clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
21779333095 640 050422 1572 968T:opt32clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2911257546 12 025230 840 968T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2933046607 12 024398 840 968T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
31929826409 640 040277 1484 1032T:opt32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
37543920522 640 032269 1452 968T:opt32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
45019416166 640 027752 1468 968T:opt32clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
55274217325 640 027640 1428 936T:opt32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
6846976630 12 020421 816 1032T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
9632582726 12 014397 816 968T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
10663942279 12 013816 832 968T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
12017742208 12 012488 792 936T: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
T:opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


skinny128.c: skinny128.c:66:20: warning: argument 1 of type 'unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    66 |     unsigned char *out,
skinny128.c:       |     ~~~~~~~~~~~~~~~^~~
skinny128.c: In file included from skinny128.c:10:
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:67:26: warning: argument 2 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    67 |     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:68:26: warning: argument 3 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    68 |     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:69:26: warning: argument 4 of type 'const unsigned char *' declared as a pointer [-Warray-parameter=]
skinny128.c:    69 |     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
T:x86gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:x86gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:x86gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


hash.o hirose_128_128_256 T
hash.o initialize T
hash.o pad 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
T:opt32clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opt32clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opt32clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


hash.o hash_pad T
hash.o hirose_128_128_256 T
hash.o initialize T
hash_skinny_key_schedule1.o hash_RunEncryptionKeyScheduleTK1 T
hash_skinny_key_schedule23.o hash_RunEncryptionKeyScheduleTK23 T
hash_skinny_main.o hash_Encrypt T
hash_skinny_main.o hash_Encrypt_1StBlk T
hash_skinny_main.o hash_RC D
hash_skinny_main.o hash_SBOX D
hash_skinny_main.o hash_SBOX2 D
hash_skinny_main.o hash_skinny_128_384_enc_321_main T
hash_skinny_main.o hash_skinny_128_384_enc_32_main T

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

Namespace violations


hash.o hirose_128_128_256 T
hash.o initialize T
hash.o ipad_128 T
hash.o ipad_256 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)

Namespace violations


hash.o initialize T
hash.o pad T
skinny128.o skinny128_384_plus T
skinny128.o tk_schedule_23 T

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