Implementation notes: amd64, hertz, crypto_hash/photonbeetlehash256rate32v1

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240425
Operation: crypto_hash
Primitive: photonbeetlehash256rate32v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
29638371921 0 089542 828 968T:table3clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
30308513212 0 030966 828 968T:table2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
30576472401 0 090150 828 968T:table3clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
34007312949 0 026629 804 1032T:table2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
37674272421 0 086101 804 1032T:table3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
40529210900 0 028526 828 968T:table2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
52975510428 0 021928 820 968T:table2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
54535969884 0 081384 820 968T:table3clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
5480349741 0 021365 804 968T:table2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
55399969133 0 080757 804 968T:table3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
55992168952 0 079160 780 936T:table3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
7028489549 0 019752 780 936T:table2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
7971417461 0 025174 828 968T:bitslice_sb32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
7982297461 0 025062 828 968T:bitslice_sb32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
8010977762 0 019320 820 968T:bitslice_sb32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
8206306620 0 024358 828 968T:bitslice_sb64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
8216686986 0 018536 820 968T:bitslice_sb64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
8297096604 0 024230 828 968T:bitslice_sb64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
9141746369 0 023991 828 968T:bitslice_sb8clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
9210996369 0 024103 828 968T:bitslice_sb8clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
9267346692 0 3218341 804 1000T:bitslice_sb64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
9671606654 0 018309 804 968T:bitslice_sb32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
10227466945 0 018536 820 968T:bitslice_sb8clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
10450156837 0 020549 804 1032T:bitslice_sb8gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
10690246530 0 018149 804 968T:bitslice_sb8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
18871286854 0 017072 780 936T:bitslice_sb32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
19237017125 0 017368 780 936T:bitslice_sb8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
19440366615 0 3216840 780 968T:bitslice_sb64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
25945987909 16 1625648 860 1000T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
37350828377 16 1626240 860 1000T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
222230628900 16 1222685 828 1064T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
317115352020 16 1212280 804 968T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
338509762764 16 1214477 828 1000T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
563133633729 16 1615368 844 1000T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425

Compiler output

Implementation: T:bitslice_sb32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:92:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb32_timingleaks' at hash.c:143:3:
hash.c: hash.c:56:27: warning: writing 4 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 56 | out_32[i] = in_left_32[i] ^ in_right_32[i];
hash.c: | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb32_timingleaks':
hash.c: hash.c:123:17: note: at offset 32 into destination object 'State' of size 32
hash.c: 123 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:92:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb32_timingleaks' at hash.c:143:3:
hash.c: hash.c:56:27: warning: writing 4 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 56 | out_32[i] = in_left_32[i] ^ in_right_32[i];
hash.c: | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb32_timingleaks':
hash.c: hash.c:123:17: note: at offset 36 into destination object 'State' of size 32
hash.c: 123 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:92:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb32_timingleaks' at hash.c:143:3:
hash.c: hash.c:56:27: warning: writing 4 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 56 | out_32[i] = in_left_32[i] ^ in_right_32[i];
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:bitslice_sb32

Compiler output

Implementation: T:bitslice_sb64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:92:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb64_timingleaks' at hash.c:143:3:
hash.c: hash.c:56:27: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 56 | out_64[i] = in_left_64[i] ^ in_right_64[i];
hash.c: | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb64_timingleaks':
hash.c: hash.c:123:17: note: at offset 32 into destination object 'State' of size 32
hash.c: 123 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:92:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb64_timingleaks' at hash.c:143:3:
hash.c: hash.c:56:27: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 56 | out_64[i] = in_left_64[i] ^ in_right_64[i];
hash.c: | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb64_timingleaks':
hash.c: hash.c:123:17: note: at offset 40 into destination object 'State' of size 32
hash.c: 123 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:92:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb64_timingleaks' at hash.c:143:3:
hash.c: hash.c:56:27: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 56 | out_64[i] = in_left_64[i] ^ in_right_64[i];
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:bitslice_sb64

Compiler output

Implementation: T:bitslice_sb8
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb8_timingleaks' at hash.c:129:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb8_timingleaks':
hash.c: hash.c:109:17: note: at offset 32 into destination object 'State' of size 32
hash.c: 109 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb8_timingleaks' at hash.c:129:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_bitslice_sb8_timingleaks':
hash.c: hash.c:109:17: note: at offset [64, 96] into destination object 'State' of size 32
hash.c: 109 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:bitslice_sb8

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_ref_timingleaks' at hash.c:135:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_ref_timingleaks':
hash.c: hash.c:115:17: note: at offset 32 into destination object 'State' of size 32
hash.c: 115 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_ref_timingleaks' at hash.c:135:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_ref_timingleaks':
hash.c: hash.c:115:17: note: at offset [64, 96] into destination object 'State' of size 32
hash.c: 115 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Compiler output

Implementation: T:table2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_table2_timingleaks' at hash.c:128:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_table2_timingleaks':
hash.c: hash.c:108:17: note: at offset 32 into destination object 'State' of size 32
hash.c: 108 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_table2_timingleaks' at hash.c:128:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_table2_timingleaks':
hash.c: hash.c:108:17: note: at offset [64, 96] into destination object 'State' of size 32
hash.c: 108 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:table2

Compiler output

Implementation: T:table3
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_table3_timingleaks' at hash.c:128:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_table3_timingleaks':
hash.c: hash.c:108:17: note: at offset 32 into destination object 'State' of size 32
hash.c: 108 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~
hash.c: In function 'XOR',
hash.c: inlined from 'HASH' at hash.c:77:2,
hash.c: inlined from 'crypto_hash_photonbeetlehash256rate32v1_table3_timingleaks' at hash.c:128:3:
hash.c: hash.c:49:52: warning: writing 32 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 49 | for (i = 0; i < iolen_inbytes; i++) out[i] = in_left[i] ^ in_right[i];
hash.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'crypto_hash_photonbeetlehash256rate32v1_table3_timingleaks':
hash.c: hash.c:108:17: note: at offset [64, 96] into destination object 'State' of size 32
hash.c: 108 | uint8_t State[STATE_INBYTES] = { 0 };
hash.c: | ^~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:table3