Implementation notes: aarch64, hikey960, crypto_aead/aeadaes128ocbtaglen128v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aeadaes128ocbtaglen128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
05236 0 021273 992 864optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
06972 0 023094 848 880refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
08104 0 027265 976 896refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
83259760 0 026939 944 896dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
116934740 0 020242 936 864dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
116934276 0 018758 920 864dolbeau/armv8cryptogcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
249754928 0 020402 936 864dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
532986908 0 026145 992 864optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
799477428 0 026256 968 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
915755236 0 021273 992 864optgcc_-O_-fomit-frame-pointer2019112720190816
915755276 0 021321 992 864optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
916525064 0 021350 864 880optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
977135308 0 023001 992 896optgcc_-O3_-fomit-frame-pointer2019112720190816
977135260 0 024569 992 896optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
1248756972 0 023094 848 880refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1286235064 0 021326 864 880optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1286235420 0 024489 992 864optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1286234972 0 021049 992 864optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
1332008180 0 025673 976 896refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1498504960 0 020961 992 864optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1498506908 0 026145 992 864optgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
1498504316 0 019397 976 864optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
1498507512 0 026360 968 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1637027376 0 029493 976 864optcc2019112720190816
1831505064 0 021350 864 880optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1831505064 0 021350 864 880optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1831504940 0 021017 992 864optgcc_-O2_-fomit-frame-pointer2019112720190816
1831505404 0 023041 992 896optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1831505376 0 024417 992 864optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
1831505364 0 024625 992 896optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1831505364 0 023049 992 896optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
1865644340 0 019397 976 864optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
1870888172 0 027289 976 896refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1914752044 0 017904 968 864refgcc_-O2_-fomit-frame-pointer2019112720190816
1914751848 0 017680 968 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
2104744340 0 019397 976 864optgcc_-Os_-fomit-frame-pointer2019112720190816
2289107376 0 029493 976 864optgcc_-funroll-loops2019112720190816
2398411612 0 016468 952 864refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
2572464340 0 019397 976 864optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
2580756972 0 023078 848 880refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
2580756972 0 023094 848 880refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
2689392040 0 017824 968 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
3271107376 0 029493 976 864optgcc2019112720190816
3274042808 0 021832 968 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
3496504316 0 019397 976 864optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
3624838136 0 025681 976 896refgcc_-O3_-fomit-frame-pointer2019112720190816
4329002044 0 017904 968 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
4454411612 0 016468 952 864refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
4495502568 0 024541 960 864refcc2019112720190816
4495501612 0 016452 952 864refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
4578751844 0 017672 968 864refgcc_-O_-fomit-frame-pointer2019112720190816
4578751844 0 017672 968 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
4995008128 0 025665 976 896refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
6308011612 0 016452 952 864refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
6660002808 0 021832 968 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
7284062568 0 024541 960 864refgcc2019112720190816
8325001612 0 016452 952 864refgcc_-Os_-fomit-frame-pointer2019112720190816
13736252568 0 024541 960 864refgcc_-funroll-loops2019112720190816

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: cc
encrypt.c: In file included from encrypt.c:47:0:
encrypt.c: encrypt.c: In function 'aes128ni_setkey_e2d':
encrypt.c: /usr/lib/gcc/aarch64-linux-gnu/6/include/arm_neon.h:11460:1: error: inlining failed in call to always_inline 'vaesimcq_u8': target specific option mismatch
encrypt.c: vaesimcq_u8 (uint8x16_t data)
encrypt.c: ^~~~~~~~~~~
encrypt.c: encrypt.c:81:16: note: called from here
encrypt.c: dkeys[i] = vaesimcq_u8(ekeys[10-i]);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
cc dolbeau/armv8crypto
gcc dolbeau/armv8crypto
gcc -O2 -fomit-frame-pointer dolbeau/armv8crypto
gcc -O3 -fomit-frame-pointer dolbeau/armv8crypto
gcc -O -fomit-frame-pointer dolbeau/armv8crypto
gcc -Os -fomit-frame-pointer dolbeau/armv8crypto
gcc -fno-schedule-insns -O2 -fomit-frame-pointer dolbeau/armv8crypto
gcc -fno-schedule-insns -O3 -fomit-frame-pointer dolbeau/armv8crypto
gcc -fno-schedule-insns -O -fomit-frame-pointer dolbeau/armv8crypto
gcc -fno-schedule-insns -Os -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops dolbeau/armv8crypto
gcc -funroll-loops -O2 -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -O3 -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -O -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -Os -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer dolbeau/armv8crypto
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer dolbeau/armv8crypto

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:81:16: warning: implicit declaration of function 'vaesimcq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: dkeys[i] = vaesimcq_u8(ekeys[10-i]);
encrypt.c: ^
encrypt.c: encrypt.c:81:14: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: dkeys[i] = vaesimcq_u8(ekeys[10-i]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:118:10: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^
encrypt.c: encrypt.c:118:8: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:158:10: warning: implicit declaration of function 'vaesdq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: temp = vaesdq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^
encrypt.c: encrypt.c:158:8: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: temp = vaesdq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:281:1: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: FUNC(4, MAKE4, MAKE4COMMA)
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:238:11: note: expanded from macro 'FUNC'
encrypt.c: MAKEN(AESENCLASTx); \
encrypt.c: ~~~~~~^~~~~~~~~~~~
encrypt.c: encrypt.c:213:3: note: expanded from macro 'MAKE4'
encrypt.c: ...

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