Implementation notes: aarch64, pi4b, crypto_aead/hs1sivhiv2

Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20230530
Operation: crypto_aead
Primitive: hs1sivhiv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3140815868 0 034506 856 856T:fasterclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100720221005
3553514972 0 032916 832 864T:dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025
355579352 0 026348 832 848T:dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025
366839412 0 028002 856 856T:dolbeau/armv8cryptoclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100720221005
4589311464 0 031356 816 840T:fastergcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025
476936382 0 024962 856 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022100720221005
5193010036 0 027003 824 848T:dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025
570816244 0 024244 832 864T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025
611665188 0 022204 832 848T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025
969485832 0 027020 832 848T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022102820221025

Test failure

Implementation: T:dolbeau/armv8crypto
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111
crypto_aead_decrypt returns nonzero

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

Test failure

Implementation: T:faster
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

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

Test failure

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111
crypto_aead_decrypt allows trivial forgeries

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

Compiler output

Implementation: T:faster
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hs1.c: hs1.c:1033:30: warning: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Wimplicit-function-declaration]
hs1.c: unsigned char *tmp = malloc(abytes);
hs1.c: ^
hs1.c: hs1.c:1033:30: note: include the header <stdlib.h> or explicitly provide a declaration for 'malloc'
hs1.c: hs1.c:1037:9: warning: implicitly declaring library function 'free' with type 'void (void *)' [-Wimplicit-function-declaration]
hs1.c: free(tmp);
hs1.c: ^
hs1.c: hs1.c:1037:9: note: include the header <stdlib.h> or explicitly provide a declaration for 'free'
hs1.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:faster

Compiler output

Implementation: T:faster
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hs1.c: hs1.c: In function 'hs1siv_decrypt':
hs1.c: hs1.c:1033:30: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
hs1.c: 1033 | unsigned char *tmp = malloc(abytes);
hs1.c: | ^~~~~~
hs1.c: hs1.c:31:1: note: include '<stdlib.h>' or provide a declaration of 'malloc'
hs1.c: 30 | #include <arm_neon.h>
hs1.c: +++ |+#include <stdlib.h>
hs1.c: 31 | #endif
hs1.c: hs1.c:1033:30: warning: incompatible implicit declaration of built-in function 'malloc' [-Wbuiltin-declaration-mismatch]
hs1.c: 1033 | unsigned char *tmp = malloc(abytes);
hs1.c: | ^~~~~~
hs1.c: hs1.c:1033:30: note: include '<stdlib.h>' or provide a declaration of 'malloc'
hs1.c: hs1.c:1037:9: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
hs1.c: 1037 | free(tmp);
hs1.c: | ^~~~
hs1.c: hs1.c:1037:9: note: include '<stdlib.h>' or provide a declaration of 'free'
hs1.c: hs1.c:1037:9: warning: incompatible implicit declaration of built-in function 'free' [-Wbuiltin-declaration-mismatch]
hs1.c: hs1.c:1037:9: note: include '<stdlib.h>' or provide a declaration of 'free'
hs1.c: hs1.c: In function 'chacha_blocks':
hs1.c: hs1.c:136:5: warning: 'ChaCha20_ctr32' reading 16 bytes from a region of size 4 [-Wstringop-overread]
hs1.c: 136 | ChaCha20_ctr32(out, in, len, (void *)chacha_state->key,
hs1.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hs1.c: 137 | (void *)&chacha_state->counter, chacha_state->rounds);
hs1.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hs1.c: hs1.c:136:5: note: referencing argument 5 of type 'const unsigned int *'
hs1.c: ...

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