Implementation notes: aarch64, hikey960, crypto_aead/aeadaes256ocbtaglen128v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aeadaes256ocbtaglen128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
08760 0 025971 944 896dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
05236 0 021305 992 864optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
06908 0 026177 992 864optgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
116934280 0 018790 920 864dolbeau/armv8cryptogcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
249754896 0 020402 936 864dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
541194780 0 020314 936 864dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
710644940 0 021049 992 864optgcc_-O2_-fomit-frame-pointer2019112720190816
799477376 0 029525 976 864optgcc_-funroll-loops2019112720190816
999004972 0 021081 992 864optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
1154792040 0 017856 968 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1227795064 0 021382 864 880optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1243625064 0 021382 864 880optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1243624340 0 019429 976 864optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
1248754960 0 020993 992 864optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1248755376 0 024449 992 864optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
1248755420 0 024521 992 864optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1621338172 0 027321 976 896refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1748251844 0 017704 968 864refgcc_-O_-fomit-frame-pointer2019112720190816
1748257512 0 026392 968 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
1748252808 0 021864 968 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
1753954340 0 019429 976 864optgcc_-Os_-fomit-frame-pointer2019112720190816
1998004316 0 019429 976 864optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
1998005276 0 021353 992 864optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
1999681612 0 016484 952 864refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
2164502044 0 017936 968 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
2206392044 0 017936 968 864refgcc_-O2_-fomit-frame-pointer2019112720190816
2221678180 0 025705 976 896refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
2247756972 0 023126 848 880refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
2331005064 0 021382 864 880optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
2372915064 0 021358 864 880optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
2393154316 0 019429 976 864optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
2414255404 0 023073 992 896optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
2414255260 0 024601 992 896optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
2414545364 0 024657 992 896optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
2455531612 0 016484 952 864refgcc_-Os_-fomit-frame-pointer2019112720190816
2455532808 0 021864 968 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
2497505364 0 023081 992 896optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
2830507376 0 029525 976 864optcc2019112720190816
2830507376 0 029525 976 864optgcc2019112720190816
2997008104 0 027297 976 896refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
3080258136 0 025713 976 896refgcc_-O3_-fomit-frame-pointer2019112720190816
3163506972 0 023110 848 880refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
3270825308 0 023033 992 896optgcc_-O3_-fomit-frame-pointer2019112720190816
3390976908 0 026177 992 864optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
3496501612 0 016484 952 864refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
3663007428 0 026288 968 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
3738706972 0 023126 848 880refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
3738701612 0 016500 952 864refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
4443346972 0 023126 848 880refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
4495505236 0 021305 992 864optgcc_-O_-fomit-frame-pointer2019112720190816
4496044340 0 019429 976 864optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
4828502568 0 024573 960 864refgcc2019112720190816
4911751612 0 016500 952 864refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
5078251844 0 017704 968 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
5494501848 0 017712 968 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
5744258128 0 025697 976 896refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
7477402568 0 024573 960 864refcc2019112720190816
14235752568 0 024573 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 'aes256ni_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[14-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[14-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[14-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+208)));
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+208)));
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+208)));
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+208)));
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