Implementation notes: aarch64, hikey960, crypto_core/aes128encrypt

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_core
Primitive: aes128encrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
01408 0 011966 904 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
02048 0 014287 912 800dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
01448 0 012078 904 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
01408 0 011306 888 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
03416 14336 016698 15224 768dolbeau/std-1ftcc2019112520190816
02824 0 014408 816 784dolbeau/std-1ftclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
02824 0 014432 816 784dolbeau/std-1ftclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
02824 0 014432 816 784dolbeau/std-1ftclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
02824 0 014432 816 784dolbeau/std-1ftclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03416 14336 016698 15224 768dolbeau/std-1ftgcc2019112520190816
02932 0 013494 904 768dolbeau/std-1ftgcc_-O2_-fomit-frame-pointer2019112520190816
03496 0 015743 912 800dolbeau/std-1ftgcc_-O3_-fomit-frame-pointer2019112520190816
02960 0 013582 904 768dolbeau/std-1ftgcc_-O_-fomit-frame-pointer2019112520190816
02892 0 012786 888 768dolbeau/std-1ftgcc_-Os_-fomit-frame-pointer2019112520190816
02892 0 013406 904 768dolbeau/std-1ftgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
03444 0 015663 912 800dolbeau/std-1ftgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
02960 0 013582 904 768dolbeau/std-1ftgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
02892 0 012786 888 768dolbeau/std-1ftgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
03416 14336 016698 15224 768dolbeau/std-1ftgcc_-funroll-loops2019112520190816
03476 0 017046 904 768dolbeau/std-1ftgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
03496 0 017399 912 800dolbeau/std-1ftgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
03552 0 017374 904 768dolbeau/std-1ftgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
02892 0 012818 888 768dolbeau/std-1ftgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
03432 0 017030 904 768dolbeau/std-1ftgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
03444 0 017311 912 800dolbeau/std-1ftgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
03552 0 017374 904 768dolbeau/std-1ftgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
02892 0 012818 888 768dolbeau/std-1ftgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
02932 0 013494 904 768dolbeau/std-1ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
03496 0 015735 912 800dolbeau/std-1ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
02960 0 013590 904 768dolbeau/std-1ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
02892 0 012786 888 768dolbeau/std-1ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
03856 0 015440 816 784dolbeau/std-2ftclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03856 0 015464 816 784dolbeau/std-2ftclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03856 0 015464 816 784dolbeau/std-2ftclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03856 0 015464 816 784dolbeau/std-2ftclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03368 14336 016650 15224 768dolbeau/std-2ftgcc2019112520190816
03944 0 014502 904 768dolbeau/std-2ftgcc_-O2_-fomit-frame-pointer2019112520190816
04508 0 016759 912 800dolbeau/std-2ftgcc_-O3_-fomit-frame-pointer2019112520190816
03972 0 014598 904 768dolbeau/std-2ftgcc_-O_-fomit-frame-pointer2019112520190816
03904 0 013794 888 768dolbeau/std-2ftgcc_-Os_-fomit-frame-pointer2019112520190816
03904 0 014414 904 768dolbeau/std-2ftgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
04460 0 016679 912 800dolbeau/std-2ftgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
03972 0 014598 904 768dolbeau/std-2ftgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
03904 0 013794 888 768dolbeau/std-2ftgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
04488 0 018054 904 768dolbeau/std-2ftgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
04508 0 018415 912 800dolbeau/std-2ftgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
04564 0 018390 904 768dolbeau/std-2ftgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
03904 0 013826 888 768dolbeau/std-2ftgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
04444 0 018046 904 768dolbeau/std-2ftgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
04460 0 018327 912 800dolbeau/std-2ftgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
04564 0 018390 904 768dolbeau/std-2ftgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
03904 0 013826 888 768dolbeau/std-2ftgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
03944 0 014502 904 768dolbeau/std-2ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
04508 0 016751 912 800dolbeau/std-2ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
03972 0 014598 904 768dolbeau/std-2ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
03904 0 013794 888 768dolbeau/std-2ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
05920 0 017504 816 784dolbeau/std-4ftclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05920 0 017528 816 784dolbeau/std-4ftclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05920 0 017528 816 784dolbeau/std-4ftclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05920 0 017528 816 784dolbeau/std-4ftclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03268 14336 016546 15224 768dolbeau/std-4ftgcc2019112520190816
06008 0 016566 904 768dolbeau/std-4ftgcc_-O2_-fomit-frame-pointer2019112520190816
06576 0 018823 912 800dolbeau/std-4ftgcc_-O3_-fomit-frame-pointer2019112520190816
06036 0 016662 904 768dolbeau/std-4ftgcc_-O_-fomit-frame-pointer2019112520190816
05964 0 015858 888 768dolbeau/std-4ftgcc_-Os_-fomit-frame-pointer2019112520190816
05964 0 016478 904 768dolbeau/std-4ftgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
06520 0 018735 912 800dolbeau/std-4ftgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
06036 0 016662 904 768dolbeau/std-4ftgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
05964 0 015858 888 768dolbeau/std-4ftgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
06552 0 020118 904 768dolbeau/std-4ftgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
06576 0 020479 912 800dolbeau/std-4ftgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
06628 0 020454 904 768dolbeau/std-4ftgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
05964 0 015890 888 768dolbeau/std-4ftgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
06508 0 020110 904 768dolbeau/std-4ftgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
06520 0 020383 912 800dolbeau/std-4ftgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
06628 0 020454 904 768dolbeau/std-4ftgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
05964 0 015890 888 768dolbeau/std-4ftgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
06008 0 016566 904 768dolbeau/std-4ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
06576 0 018815 912 800dolbeau/std-4ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
06036 0 016662 904 768dolbeau/std-4ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
05964 0 015858 888 768dolbeau/std-4ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
076 0 013548 904 768opensslcc2019112520190816
088 0 011882 832 784opensslclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
088 0 011906 832 784opensslclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
088 0 011906 832 784opensslclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
088 0 011906 832 784opensslclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
076 0 013548 904 768opensslgcc2019112520190816
072 0 010816 920 768opensslgcc_-O2_-fomit-frame-pointer2019112520190816
072 0 012513 928 800opensslgcc_-O3_-fomit-frame-pointer2019112520190816
068 0 010872 920 768opensslgcc_-O_-fomit-frame-pointer2019112520190816
068 0 010156 904 768opensslgcc_-Os_-fomit-frame-pointer2019112520190816
068 0 010776 920 768opensslgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
068 0 012489 928 800opensslgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
068 0 010872 920 768opensslgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
068 0 010156 904 768opensslgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
076 0 013548 904 768opensslgcc_-funroll-loops2019112520190816
072 0 013824 920 768opensslgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
072 0 014169 928 800opensslgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
068 0 014072 920 768opensslgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
068 0 010188 904 768opensslgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
068 0 013864 920 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
068 0 014137 928 800opensslgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
068 0 014072 920 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
068 0 010188 904 768opensslgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
072 0 010816 920 768opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
072 0 012505 928 800opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
068 0 010880 920 768opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
068 0 010156 904 768opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
41623268 14336 016546 15224 768dolbeau/std-4ftgcc_-funroll-loops2019112520190816
41633368 14336 016650 15224 768dolbeau/std-2ftcc2019112520190816
41633268 14336 016546 15224 768dolbeau/std-4ftcc2019112520190816
83253368 14336 016650 15224 768dolbeau/std-2ftgcc_-funroll-loops2019112520190816
1799013248 0 015439 912 800refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
2039873472 0 017343 912 800refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
2122623264 0 015487 912 800refgcc_-O3_-fomit-frame-pointer2019112520190816
2806323456 0 017295 912 800refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
2997003152 0 016942 904 768refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
3080253300 0 015511 912 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
3413252544 0 014112 816 784refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
3738702996 0 016534 904 768refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
4263841496 0 011370 888 768refgcc_-Os_-fomit-frame-pointer2019112520190816
4745253152 0 016942 904 768refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
6165682544 0 014136 816 784refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
6243752544 0 014136 816 784refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
7477402544 0 014136 816 784refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
7477402972 0 016550 904 768refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
8034591496 0 011370 888 768refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
8075251544 0 011450 888 768refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
10926091628 0 012214 904 768refgcc_-O_-fomit-frame-pointer2019112520190816
13196711528 0 012054 904 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
14954801544 0 011450 888 768refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
18566981508 0 011998 904 768refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
19397251516 0 012046 904 768refgcc_-O2_-fomit-frame-pointer2019112520190816
20565221628 0 012214 904 768refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
21189671524 0 011402 888 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
21645001608 0 012198 904 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
31971843596 0 016850 888 768refgcc2019112520190816
32051253596 0 016850 888 768refcc2019112520190816
53614943596 0 016850 888 768refgcc_-funroll-loops2019112520190816

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: cc
core.c: In file included from core.c:9:0:
core.c: core.c: In function 'aes128_armv8_encrypt':
core.c: /usr/lib/gcc/aarch64-linux-gnu/6/include/arm_neon.h:11442:1: error: inlining failed in call to always_inline 'vaeseq_u8': target specific option mismatch
core.c: vaeseq_u8 (uint8x16_t data, uint8x16_t key)
core.c: ^~~~~~~~~
core.c: core.c:46:8: note: called from here
core.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: In file included from core.c:9:0:
core.c: /usr/lib/gcc/aarch64-linux-gnu/6/include/arm_neon.h:11442:1: error: inlining failed in call to always_inline 'vaeseq_u8': target specific option mismatch
core.c: vaeseq_u8 (uint8x16_t data, uint8x16_t key)
core.c: ^~~~~~~~~
core.c: core.c:46:8: note: called from here
core.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.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
core.c: core.c:46:10: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
core.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ^
core.c: core.c:46:8: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
core.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: 1 warning and 1 error generated.

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