Implementation notes: amd64, hertz, crypto_hash/hamsi

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_hash
Primitive: hamsi
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2355010407 0 021896 820 968T:bernstein/small-simd-2clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2367040204 0 057719 828 968T:simd-2clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2371240204 0 057831 828 968T:simd-2clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2374038339 0 049752 820 968T:simd-2clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2383012556 0 030183 828 968T:bernstein/small-simd-2clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2383212556 0 030071 828 968T:bernstein/small-simd-2clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2435139511 0 051157 804 968T:simd-1gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2437239759 0 053461 804 1032T:simd-1gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2510239426 0 049648 780 936T:simd-1gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2624440127 0 053829 804 1032T:simd-2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2640139782 0 050000 780 936T:simd-2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2644139863 0 051509 804 968T:simd-2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2650012071 0 023717 804 968T:bernstein/small-simd-2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2662011945 0 022200 780 936T:bernstein/small-simd-2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2679440156 0 057783 828 968T:simd-1clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2679838302 0 049720 820 968T:simd-1clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2680840156 0 057671 828 968T:simd-1clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
2687112503 0 026205 804 1032T:bernstein/small-simd-2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


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 (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:bernstein/small-simd-2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


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 (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:simd-1gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


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 (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:simd-2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


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 (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:sphlibclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sphlibclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sphlibclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sphlib-smallclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sphlib-smallclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:sphlib-smallclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


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 (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:sphlibgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sphlibgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sphlibgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sphlib-smallgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sphlib-smallgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:sphlib-smallgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


hamsi.o Final T
hamsi.o Hash T
hamsi.o Init T
hamsi.o Update T

Number of similar (implementation,compiler) pairs: 18, namely:
ImplementationCompiler
T:bernstein/small-simd-2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:bernstein/small-simd-2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:bernstein/small-simd-2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:bernstein/small-simd-2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:bernstein/small-simd-2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:bernstein/small-simd-2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:simd-1clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:simd-1clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:simd-1clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:simd-1gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:simd-1gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:simd-1gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:simd-2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:simd-2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:simd-2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:simd-2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:simd-2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:simd-2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)