Implementation notes: aarch64, hikey960, crypto_stream/cryptmtv3

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_stream
Primitive: cryptmtv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
09298 0 824305 944 848e/v3gcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
83255898 0 817560 936 816e/v3gcc_-O2_-fomit-frame-pointer2019112720190816
83256906 0 820257 944 848e/v3gcc_-O3_-fomit-frame-pointer2019112720190816
83253612 0 814483 920 816e/v3gcc_-Os_-fomit-frame-pointer2019112720190816
83258162 0 823072 936 816e/v3gcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
83253676 0 814579 920 816e/v3gcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
83265986 0 817632 936 816e/v3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
97904564 0 116824 816 832e/v3clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
116939410 0 824353 944 848e/v3gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
166504728 0 117008 816 832e/v3clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
166507010 0 820297 944 848e/v3gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
166507602 0 822272 936 816e/v3gcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
166507810 0 822496 936 816e/v3gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
166503612 0 814483 920 816e/v3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
233864728 0 117008 816 832e/v3clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
233864728 0 117008 816 832e/v3clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
233863612 0 814483 920 816e/v3gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
233867090 0 820425 944 848e/v3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
249756706 0 818416 936 816e/v3gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
249756702 0 818416 936 816e/v3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
350796706 0 818416 936 816e/v3gcc_-O_-fomit-frame-pointer2019112720190816
350796114 0 817720 936 816e/v3gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
350798162 0 823072 936 816e/v3gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
350793676 0 814579 920 816e/v3gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
1165509844 0 824933 928 816e/v3gcc2019112720190816
1581759844 0 824933 928 816e/v3gcc_-funroll-loops2019112720190816
1637029844 0 824933 928 816e/v3cc2019112720190816

Compiler output

Implementation: e/v3
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
cryptmt-v3.c: In file included from cryptmt-v3.c:2:
cryptmt-v3.c: ./e/cryptmt-v3.c:189:18: warning: array index 156 is past the end of the array (which contains 156 elements) [-Warray-bounds]
cryptmt-v3.c: do_recursion(ps->sfmt[N], ps->sfmt[POS1], ps->sfmt[N - 1]);
cryptmt-v3.c: ^ ~
cryptmt-v3.c: ./e/cryptmt-v3.c:25:5: note: array 'sfmt' declared here
cryptmt-v3.c: u32 sfmt[N][4];
cryptmt-v3.c: ^
cryptmt-v3.c: ./e/cryptmt-v3.c:403:27: warning: 'memset' call operates on objects of type 'crypto_stream_cryptmtv3_e_v3_ECRYPT_ctx' while the size is based on a different type 'crypto_stream_cryptmtv3_e_v3_ECRYPT_ctx *' [-Wsizeof-pointer-memaccess]
cryptmt-v3.c: memset(ctx, 0, sizeof(ctx));
cryptmt-v3.c: ~~~ ^~~
cryptmt-v3.c: ./e/cryptmt-v3.c:403:27: note: did you mean to dereference the argument to 'sizeof' (and multiply it by the number of elements)?
cryptmt-v3.c: memset(ctx, 0, sizeof(ctx));
cryptmt-v3.c: ^~~
cryptmt-v3.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments e/v3
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments e/v3
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments e/v3
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments e/v3