Implementation notes: aarch64, hikey960, crypto_aead/pi32cipher128v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: pi32cipher128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
9771370904 0 087664 952 992optimized_nonSSEgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
141525105676 0 0121609 960 1024optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
16877732496 0 049179 944 928refgcc_-O2_-fomit-frame-pointer2019112920190816
174825104372 0 0118681 960 1024optimized_nonSSEgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
18654347708 0 063564 952 960refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
19542673304 0 085244 936 992optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
19566171064 0 083664 952 992optimized_nonSSEgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
208150104736 0 0120705 960 1024optimized_nonSSEgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
214343103736 0 0118081 960 1024optimized_nonSSEgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
216450103616 0 0117969 960 1024optimized_nonSSEgcc_-O3_-fomit-frame-pointer2019112920190816
216450105492 0 0121128 952 992optimized_nonSSEgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
21645073304 0 085220 936 992optimized_nonSSEgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
216476104868 0 0120536 952 992optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
22477545192 0 059460 952 960refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
23310086492 0 0103352 952 992optimized_nonSSEgcc_-O_-fomit-frame-pointer2019112920190816
26649028008 0 039871 928 928refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
26893946860 0 062756 952 960refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
27472530916 0 043443 944 928refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
283050102244 0 0122304 952 992optimized_nonSSEgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
30802531012 0 043699 944 928refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
32740473304 0 085244 936 992optimized_nonSSEgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
34132545984 0 061867 944 928refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
34136645984 0 061867 944 928refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
34969245280 0 059556 952 960refgcc_-O3_-fomit-frame-pointer2019112920190816
36630073304 0 085220 936 992optimized_nonSSEgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
37050786492 0 0103352 952 992optimized_nonSSEgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
37387470128 0 082792 952 992optimized_nonSSEgcc_-O2_-fomit-frame-pointer2019112920190816
37883373304 0 085220 936 992optimized_nonSSEgcc_-Os_-fomit-frame-pointer2019112920190816
397562102244 0 0122304 952 992optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
40317086468 0 0103328 952 992optimized_nonSSEgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
43264131012 0 043699 944 928refgcc_-O_-fomit-frame-pointer2019112920190816
44960428008 0 039847 928 928refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
47458228008 0 039847 928 928refgcc_-Os_-fomit-frame-pointer2019112920190816
51400728008 0 039871 928 928refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
63142228008 0 039847 928 928refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
64526546068 0 060300 952 960refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
65422058000 0 073587 944 928refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
68399131028 0 043715 944 928refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
78680756340 0 071899 944 928refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
843885115948 0 0133015 928 928refgcc_-funroll-loops2019112920190816
96581632492 0 045083 944 928refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
1165500302196 0 0323436 936 992optimized_nonSSEcc2019112920190816
1498500115948 0 0133015 928 928refcc2019112920190816
1810905302196 0 0323436 936 992optimized_nonSSEgcc_-funroll-loops2019112920190816
2116433115948 0 0133015 928 928refgcc2019112920190816
2560767302196 0 0323436 936 992optimized_nonSSEgcc2019112920190816

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