Implementation notes: aarch64, hikey960, crypto_core/aes128decrypt

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_core
Primitive: aes128decrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
01456 0 012014 904 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
02084 0 014327 912 800dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
01500 0 012126 904 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
01452 0 011354 888 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
03884 14336 017162 15224 768dolbeau/std-1rt-nodkcc2019112520190816
05080 0 016672 816 784dolbeau/std-1rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05080 0 016696 816 784dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05080 0 016696 816 784dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05080 0 016696 816 784dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03884 14336 017162 15224 768dolbeau/std-1rt-nodkgcc2019112520190816
05156 0 015718 904 768dolbeau/std-1rt-nodkgcc_-O2_-fomit-frame-pointer2019112520190816
05712 0 017959 912 800dolbeau/std-1rt-nodkgcc_-O3_-fomit-frame-pointer2019112520190816
05192 0 015814 904 768dolbeau/std-1rt-nodkgcc_-O_-fomit-frame-pointer2019112520190816
05104 0 015002 888 768dolbeau/std-1rt-nodkgcc_-Os_-fomit-frame-pointer2019112520190816
05104 0 015614 904 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
05660 0 017879 912 800dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
05192 0 015814 904 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
05104 0 015002 888 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
05712 0 019278 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
05712 0 019615 912 800dolbeau/std-1rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
05796 0 019622 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
05104 0 015034 888 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
05660 0 019262 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
05660 0 019527 912 800dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
05796 0 019622 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
05104 0 015034 888 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
05156 0 015718 904 768dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
05712 0 017951 912 800dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
05192 0 015822 904 768dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
05104 0 015002 888 768dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
03836 14336 017114 15224 768dolbeau/std-2rt-nodkcc2019112520190816
07152 0 018744 816 784dolbeau/std-2rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
07152 0 018768 816 784dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
07152 0 018768 816 784dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
07152 0 018768 816 784dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03836 14336 017114 15224 768dolbeau/std-2rt-nodkgcc2019112520190816
07212 0 017774 904 768dolbeau/std-2rt-nodkgcc_-O2_-fomit-frame-pointer2019112520190816
07768 0 020015 912 800dolbeau/std-2rt-nodkgcc_-O3_-fomit-frame-pointer2019112520190816
07264 0 017886 904 768dolbeau/std-2rt-nodkgcc_-O_-fomit-frame-pointer2019112520190816
07168 0 017066 888 768dolbeau/std-2rt-nodkgcc_-Os_-fomit-frame-pointer2019112520190816
07168 0 017678 904 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
07732 0 019951 912 800dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
07264 0 017886 904 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
03836 14336 017114 15224 768dolbeau/std-2rt-nodkgcc_-funroll-loops2019112520190816
07772 0 021342 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
07768 0 021671 912 800dolbeau/std-2rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
07868 0 021694 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
07168 0 017098 888 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
07732 0 021334 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
07732 0 021599 912 800dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
07868 0 021694 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
07168 0 017098 888 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
07212 0 017774 904 768dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
07768 0 020007 912 800dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
07264 0 017894 904 768dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
07168 0 017066 888 768dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
03692 14336 016970 15224 768dolbeau/std-4rt-nodkcc2019112520190816
011288 0 022880 816 784dolbeau/std-4rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
011288 0 022904 816 784dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
011288 0 022904 816 784dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
011288 0 022904 816 784dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03692 14336 016970 15224 768dolbeau/std-4rt-nodkgcc2019112520190816
011332 0 021894 904 768dolbeau/std-4rt-nodkgcc_-O2_-fomit-frame-pointer2019112520190816
011868 0 024119 912 800dolbeau/std-4rt-nodkgcc_-O3_-fomit-frame-pointer2019112520190816
011368 0 021990 904 768dolbeau/std-4rt-nodkgcc_-O_-fomit-frame-pointer2019112520190816
011288 0 021186 888 768dolbeau/std-4rt-nodkgcc_-Os_-fomit-frame-pointer2019112520190816
011288 0 021798 904 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
011852 0 024071 912 800dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
011368 0 021990 904 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
011288 0 021186 888 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
03692 14336 016970 15224 768dolbeau/std-4rt-nodkgcc_-funroll-loops2019112520190816
011868 0 025438 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
011868 0 025775 912 800dolbeau/std-4rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
011980 0 025806 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
011288 0 021218 888 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
011852 0 025454 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
011852 0 025719 912 800dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
011980 0 025806 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
011288 0 021218 888 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
011332 0 021894 904 768dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
011868 0 024111 912 800dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
011368 0 021998 904 768dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
011288 0 021186 888 768dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
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
178076 0 013548 904 768opensslcc2019112520190816
20817168 0 017066 888 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
83263884 14336 017162 15224 768dolbeau/std-1rt-nodkgcc_-funroll-loops2019112520190816
2164505568 0 019439 912 800refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
2913752884 0 016670 904 768refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
3246755640 0 017847 912 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
3496502868 0 016406 904 768refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
3579755568 0 017791 912 800refgcc_-O3_-fomit-frame-pointer2019112520190816
3579752884 0 016670 904 768refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
3579752940 0 016518 904 768refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
3738705584 0 017775 912 800refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
3738705568 0 019407 912 800refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
4079252964 0 014552 816 784refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
4079252964 0 014552 816 784refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
5240971988 0 012518 904 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
7285252964 0 014552 816 784refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
9490502056 0 011962 888 768refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
9741421968 0 012454 904 768refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
11216102964 0 014536 816 784refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
13330022056 0 011962 888 768refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
14903541960 0 011834 888 768refgcc_-Os_-fomit-frame-pointer2019112520190816
14954802100 0 012694 904 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
21894751960 0 011834 888 768refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
23060251968 0 012494 904 768refgcc_-O2_-fomit-frame-pointer2019112520190816
24392252120 0 012710 904 768refgcc_-O_-fomit-frame-pointer2019112520190816
24975001980 0 011858 888 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
34112902120 0 012710 904 768refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
37712254392 0 017650 888 768refgcc_-funroll-loops2019112520190816
45036814392 0 017650 888 768refgcc2019112520190816
166625254392 0 017650 888 768refcc2019112520190816

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_setkey_armv8_decrypt':
core.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
core.c: vaesimcq_u8 (uint8x16_t data)
core.c: ^~~~~~~~~~~
core.c: core.c:21:16: note: called from here
core.c: rkeys[i] = vaesimcq_u8(tkeys[10-i]);
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:21:16: warning: implicit declaration of function 'vaesimcq_u8' is invalid in C99 [-Wimplicit-function-declaration]
core.c: rkeys[i] = vaesimcq_u8(tkeys[10-i]);
core.c: ^
core.c: core.c:21:14: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
core.c: rkeys[i] = vaesimcq_u8(tkeys[10-i]);
core.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~
core.c: core.c:58:10: warning: implicit declaration of function 'vaesdq_u8' is invalid in C99 [-Wimplicit-function-declaration]
core.c: temp = vaesdq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ^
core.c: core.c:58:8: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
core.c: temp = vaesdq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: 2 warnings and 2 errors 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