Implementation notes: aarch64, hikey960, crypto_aead/pi32cipher256v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: pi32cipher256v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
71064105076 0 0119441 960 1024optimized_nonSSEgcc_-O3_-fomit-frame-pointer2019112920190816
79947105844 0 0120161 960 1024optimized_nonSSEgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
106596105204 0 0119561 960 1024optimized_nonSSEgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
11547945972 0 061891 944 928refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
133200106304 0 0122281 960 1024optimized_nonSSEgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
13326028008 0 039879 928 928refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
141525105492 0 0121136 952 992optimized_nonSSEgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
15989470128 0 082800 952 992optimized_nonSSEgcc_-O2_-fomit-frame-pointer2019112920190816
15989456500 0 072067 944 928refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
187088104932 0 0120608 952 992optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
19147571064 0 083672 952 992optimized_nonSSEgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
216450107268 0 0123209 960 1024optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
216450102300 0 0118296 952 992optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
21647673304 0 085228 936 992optimized_nonSSEgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
224775102300 0 0118296 952 992optimized_nonSSEgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
22477546712 0 060988 952 960refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
23310073304 0 085252 936 992optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
24872430916 0 043451 944 928refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
25807573304 0 085252 936 992optimized_nonSSEgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
28305058076 0 073675 944 928refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
30802532496 0 045091 944 928refgcc_-O2_-fomit-frame-pointer2019112920190816
30806231012 0 043739 944 928refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
32467570904 0 083576 952 992optimized_nonSSEgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
32740486492 0 099296 952 992optimized_nonSSEgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
32740449332 0 065196 952 960refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
33300046688 0 060972 952 960refgcc_-O3_-fomit-frame-pointer2019112920190816
33909786492 0 099296 952 992optimized_nonSSEgcc_-O_-fomit-frame-pointer2019112920190816
33920328008 0 039855 928 928refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
34965047592 0 061828 952 960refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
37387048356 0 064260 952 960refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
38196973304 0 085228 936 992optimized_nonSSEgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
43264132492 0 045091 944 928refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
44122545972 0 061891 944 928refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
44955028008 0 039855 928 928refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
46620031012 0 043739 944 928refgcc_-O_-fomit-frame-pointer2019112920190816
47307328008 0 039855 928 928refgcc_-Os_-fomit-frame-pointer2019112920190816
68273231028 0 043755 944 928refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
73685173304 0 085228 936 992optimized_nonSSEgcc_-Os_-fomit-frame-pointer2019112920190816
89077528008 0 039879 928 928refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
92418686468 0 099272 952 992optimized_nonSSEgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
1548450115948 0 0141215 928 928refgcc_-funroll-loops2019112920190816
1831500302196 0 0323444 936 992optimized_nonSSEcc2019112920190816
2174898115948 0 0141215 928 928refgcc2019112920190816
4151595302196 0 0323444 936 992optimized_nonSSEgcc2019112920190816
5094900115948 0 0141215 928 928refcc2019112920190816
5869886302196 0 0323444 936 992optimized_nonSSEgcc_-funroll-loops2019112920190816

Test failure

Implementation: optimized_nonSSE
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
error 111
crypto_aead_decrypt returns nonzero

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref

Compiler output

Implementation: optimized_nonSSE
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:354:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:468:68: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: c[CRYPTO_NSECBYTES+b+i] = InternalState8[i1] = InternalState8[i1++] ^ m[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:622:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: 3 warnings generated.

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:240:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:354:68: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: c[CRYPTO_NSECBYTES+b+i] = InternalState8[i1] = InternalState8[i1++] ^ m[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:508:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: 3 warnings generated.

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