Implementation notes: amd64, hertz, crypto_hash/hamsi

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240425
Operation: crypto_hash
Primitive: hamsi
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2349610407 0 021896 820 968T:bernstein/small-simd-2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2372540204 0 057719 828 968T:simd-2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2373338339 0 049752 820 968T:simd-2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2374812556 0 030183 828 968T:bernstein/small-simd-2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2377140204 0 057831 828 968T:simd-2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2379112556 0 030071 828 968T:bernstein/small-simd-2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2427339511 0 051181 804 968T:simd-1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2430439759 0 053461 804 1032T:simd-1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2514139427 0 049632 780 936T:simd-1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2583812503 0 026205 804 1032T:bernstein/small-simd-2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2588011946 0 022184 780 936T:bernstein/small-simd-2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2601640127 0 053829 804 1032T:simd-2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2634939863 0 051533 804 968T:simd-2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2640939783 0 049984 780 936T:simd-2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2652512071 0 023741 804 968T:bernstein/small-simd-2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2679140156 0 057783 828 968T:simd-1clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2681240156 0 057671 828 968T:simd-1clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425
2683238302 0 049720 820 968T:simd-1clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024042920240425

Compiler output

Implementation: T:bernstein/small-simd-2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hamsi.c: hamsi.c: In function 'Update':
hamsi.c: hamsi.c:184:38: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hamsi.c: 184 | state->buffer[bufferbytes + i] = data[i];
hamsi.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
hamsi.c: In file included from hamsi.c:3:
hamsi.c: hamsi.h:12:11: note: at offset 4 into destination object 'buffer' of size 4
hamsi.c: 12 | uint8_t buffer[4];
hamsi.c: | ^~~~~~
hamsi.c: hamsi.c:184:38: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hamsi.c: 184 | state->buffer[bufferbytes + i] = data[i];
hamsi.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
hamsi.c: hamsi.h:12:11: note: at offset [5, 7] into destination object 'buffer' of size 4
hamsi.c: 12 | uint8_t buffer[4];
hamsi.c: | ^~~~~~

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

Compiler output

Implementation: T:simd-1
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hamsi.c: hamsi.c: In function 'Update':
hamsi.c: hamsi.c:273:38: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hamsi.c: 273 | state->buffer[bufferbytes + i] = data[i];
hamsi.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
hamsi.c: In file included from hamsi.c:3:
hamsi.c: hamsi.h:12:11: note: at offset 4 into destination object 'buffer' of size 4
hamsi.c: 12 | uint8_t buffer[4];
hamsi.c: | ^~~~~~
hamsi.c: hamsi.c:273:38: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hamsi.c: 273 | state->buffer[bufferbytes + i] = data[i];
hamsi.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
hamsi.c: hamsi.h:12:11: note: at offset [5, 7] into destination object 'buffer' of size 4
hamsi.c: 12 | uint8_t buffer[4];
hamsi.c: | ^~~~~~

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

Compiler output

Implementation: T:simd-2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hamsi.c: hamsi.c: In function 'Update':
hamsi.c: hamsi.c:270:38: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hamsi.c: 270 | state->buffer[bufferbytes + i] = data[i];
hamsi.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
hamsi.c: In file included from hamsi.c:3:
hamsi.c: hamsi.h:12:11: note: at offset 4 into destination object 'buffer' of size 4
hamsi.c: 12 | uint8_t buffer[4];
hamsi.c: | ^~~~~~
hamsi.c: hamsi.c:270:38: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hamsi.c: 270 | state->buffer[bufferbytes + i] = data[i];
hamsi.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
hamsi.c: hamsi.h:12:11: note: at offset [5, 7] into destination object 'buffer' of size 4
hamsi.c: 12 | uint8_t buffer[4];
hamsi.c: | ^~~~~~

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

Compiler output

Implementation: T:sphlib
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hamsi.c: hamsi.c:111:10: fatal error: 'hamsi_helper.c' file not found
hamsi.c: 111 | #include "hamsi_helper.c"
hamsi.c: | ^~~~~~~~~~~~~~~~
hamsi.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib-small
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib-small
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib-small

Compiler output

Implementation: T:sphlib
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hamsi.c: hamsi.c:111:10: fatal error: hamsi_helper.c: No such file or directory
hamsi.c: 111 | #include "hamsi_helper.c"
hamsi.c: | ^~~~~~~~~~~~~~~~
hamsi.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib-small
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib-small
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib-small