Implementation notes: aarch64, hikey960, crypto_aead/pi64cipher256v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: pi64cipher256v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
7106455292 0 071172 952 1024refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
83250117356 0 0133008 952 1120optimized_nonSSEgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
83250121280 0 0137233 960 1152optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
8883067500 0 083115 944 992refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
9550333888 0 046427 944 992refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
108225119760 0 0134081 960 1152optimized_nonSSEgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
124875118484 0 0134473 960 1152optimized_nonSSEgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
12487578128 0 090149 944 1120optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
12498049676 0 065571 944 992refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
133200117088 0 0131457 960 1152optimized_nonSSEgcc_-O3_-fomit-frame-pointer2019112920190816
13321652624 0 071012 952 1024refgcc_-O3_-fomit-frame-pointer2019112920190816
13321654348 0 070260 952 1024refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
133245117780 0 0133472 952 1120optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
13992364952 0 080523 944 992refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
14152553544 0 071884 952 1024refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
14152527388 0 039304 936 992refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
146586101812 0 0114584 952 1120optimized_nonSSEgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
14985082228 0 094848 952 1120optimized_nonSSEgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
14997627388 0 039328 936 992refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
15817532324 0 045019 944 992refgcc_-O_-fomit-frame-pointer2019112920190816
15817532340 0 045075 944 992refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
16650078128 0 090149 944 1120optimized_nonSSEgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
174825115096 0 0131064 952 1120optimized_nonSSEgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
175395115096 0 0131064 952 1120optimized_nonSSEgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
175395101828 0 0114640 952 1120optimized_nonSSEgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
186904116984 0 0131345 960 1152optimized_nonSSEgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
19147578156 0 090149 944 1120optimized_nonSSEgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
20812552640 0 066924 952 1024refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
22216781312 0 093992 952 1120optimized_nonSSEgcc_-O2_-fomit-frame-pointer2019112920190816
23310036748 0 049355 944 992refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
24975078156 0 090149 944 1120optimized_nonSSEgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
25807549676 0 065571 944 992refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
26012527388 0 039304 936 992refgcc_-Os_-fomit-frame-pointer2019112920190816
26640027388 0 039328 936 992refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
26652027388 0 039304 936 992refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
26893978156 0 090149 944 1120optimized_nonSSEgcc_-Os_-fomit-frame-pointer2019112920190816
28038082116 0 094800 952 1120optimized_nonSSEgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
420570101812 0 0114584 952 1120optimized_nonSSEgcc_-O_-fomit-frame-pointer2019112920190816
43264136668 0 049275 944 992refgcc_-O2_-fomit-frame-pointer2019112920190816
49110632324 0 045019 944 992refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
624375321164 0 0342412 936 1120optimized_nonSSEgcc2019112920190816
624375321164 0 0342412 936 1120optimized_nonSSEgcc_-funroll-loops2019112920190816
865282321164 0 0342412 936 1120optimized_nonSSEcc2019112920190816
2705625121660 0 0146927 928 992refcc2019112920190816
3928848121660 0 0146927 928 992refgcc2019112920190816
3975620121660 0 0146927 928 992refgcc_-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:346:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:448: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:593: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:231:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:333: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:478: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