Implementation notes: amd64, speed2supercop, crypto_aead/hs1sivlov1

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: hs1sivlov1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
181848988 0 032518 808 872T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
181888004 0 031342 808 872T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
207527287 0 029398 808 856T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
295924771 0 024118 808 856T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
316803740 0 024079 800 920T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
407405814 0 025781 768 928T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Checksum failure


9561bd1511ca50cd951ccd7b87b8e0aa2a6178b328b473ac821a70e9be041b6a

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Test failure


error 111
crypto_aead_decrypt allows trivial forgeries

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


encrypt.c: encrypt.c:333:14: warning: unused variable 'k' [-Wunused-variable]
encrypt.c:     unsigned k = (HS1_SIV_HASH_RNDS > 4 ? 1 : 2);
encrypt.c:              ^
encrypt.c: encrypt.c:242:13: warning: unused function 'pmul64' [-Wunused-function]
encrypt.c: static void pmul64(uint64_t *dh, uint64_t *dl, uint64_t a, uint64_t b) {
encrypt.c:             ^
encrypt.c: encrypt.c:270:17: warning: unused function 'asu_hash' [-Wunused-function]
encrypt.c: static uint32_t asu_hash(uint64_t x, uint64_t *k) {
encrypt.c:                 ^
encrypt.c: 3 warnings generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


encrypt.c: encrypt.c: In function 'hs1_hash':
encrypt.c: encrypt.c:333:14: warning: unused variable 'k' [-Wunused-variable]
encrypt.c:   333 |     unsigned k = (HS1_SIV_HASH_RNDS > 4 ? 1 : 2);
encrypt.c:       |              ^
encrypt.c: encrypt.c: At top level:
encrypt.c: encrypt.c:270:17: warning: 'asu_hash' defined but not used [-Wunused-function]
encrypt.c:   270 | static uint32_t asu_hash(uint64_t x, uint64_t *k) {
encrypt.c:       |                 ^~~~~~~~
encrypt.c: encrypt.c:242:13: warning: 'pmul64' defined but not used [-Wunused-function]
encrypt.c:   242 | static void pmul64(uint64_t *dh, uint64_t *dl, uint64_t a, uint64_t b) {
encrypt.c:       |             ^~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)