Implementation notes: amd64, hertz, crypto_hash/hamsi

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: hamsi
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2345610844 0 025067 844 968T:bernstein/small-simd-2clang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2347410521 0 021972 836 968T:bernstein/small-simd-2clang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2350410844 0 025195 844 968T:bernstein/small-simd-2clang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2352338427 0 049876 836 968T:simd-2clang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2357238764 0 053051 844 968T:simd-2clang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2358038764 0 052923 844 968T:simd-2clang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
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
2670538390 0 049844 836 968T:simd-1clang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2673038732 0 053019 844 968T:simd-1clang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2676038732 0 052891 844 968T:simd-1clang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217

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-17 -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-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib-small
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib-small
clang-17 -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