Implementation notes: aarch64, hikey960, crypto_core/aes256decrypt

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_core
Primitive: aes256decrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
01468 0 012030 904 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
01588 0 013831 912 800dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
01516 0 012142 904 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
01460 0 011362 888 768dolbeau/armv8cryptogcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
05076 0 016672 816 784dolbeau/std-1rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05076 0 016688 816 784dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05076 0 016688 816 784dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
05076 0 016688 816 784dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03968 14336 017250 15224 768dolbeau/std-1rt-nodkgcc2019112520190816
05160 0 015718 904 768dolbeau/std-1rt-nodkgcc_-O2_-fomit-frame-pointer2019112520190816
05160 0 017407 912 800dolbeau/std-1rt-nodkgcc_-O3_-fomit-frame-pointer2019112520190816
05212 0 015838 904 768dolbeau/std-1rt-nodkgcc_-O_-fomit-frame-pointer2019112520190816
05112 0 015010 888 768dolbeau/std-1rt-nodkgcc_-Os_-fomit-frame-pointer2019112520190816
05116 0 015630 904 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
05116 0 017335 912 800dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
05212 0 015838 904 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
05112 0 015010 888 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
05160 0 018726 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
05160 0 019063 912 800dolbeau/std-1rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
05212 0 019038 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
05112 0 015042 888 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
05116 0 018718 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
05116 0 018983 912 800dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
05212 0 019038 904 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
05112 0 015042 888 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
05160 0 015718 904 768dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
05160 0 017399 912 800dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
05212 0 015838 904 768dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
05112 0 015010 888 768dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
07148 0 018744 816 784dolbeau/std-2rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
07148 0 018760 816 784dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
07148 0 018760 816 784dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
07148 0 018760 816 784dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03920 14336 017202 15224 768dolbeau/std-2rt-nodkgcc2019112520190816
07212 0 017774 904 768dolbeau/std-2rt-nodkgcc_-O2_-fomit-frame-pointer2019112520190816
07212 0 019463 912 800dolbeau/std-2rt-nodkgcc_-O3_-fomit-frame-pointer2019112520190816
07284 0 017910 904 768dolbeau/std-2rt-nodkgcc_-O_-fomit-frame-pointer2019112520190816
07176 0 017074 888 768dolbeau/std-2rt-nodkgcc_-Os_-fomit-frame-pointer2019112520190816
07172 0 017686 904 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
07172 0 019391 912 800dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
07284 0 017910 904 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
07176 0 017074 888 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
03920 14336 017202 15224 768dolbeau/std-2rt-nodkgcc_-funroll-loops2019112520190816
07212 0 020782 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
07212 0 021119 912 800dolbeau/std-2rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
07284 0 021110 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
07176 0 017106 888 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
07172 0 020774 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
07172 0 021039 912 800dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
07284 0 021110 904 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
07176 0 017106 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
07212 0 019455 912 800dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
07276 0 017902 904 768dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
07176 0 017074 888 768dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
03776 14336 017058 15224 768dolbeau/std-4rt-nodkcc2019112520190816
011284 0 022880 816 784dolbeau/std-4rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
011284 0 022896 816 784dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
011284 0 022896 816 784dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
011284 0 022896 816 784dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
03776 14336 017058 15224 768dolbeau/std-4rt-nodkgcc2019112520190816
011328 0 021886 904 768dolbeau/std-4rt-nodkgcc_-O2_-fomit-frame-pointer2019112520190816
011328 0 023575 912 800dolbeau/std-4rt-nodkgcc_-O3_-fomit-frame-pointer2019112520190816
011380 0 022006 904 768dolbeau/std-4rt-nodkgcc_-O_-fomit-frame-pointer2019112520190816
011300 0 021202 888 768dolbeau/std-4rt-nodkgcc_-Os_-fomit-frame-pointer2019112520190816
011296 0 021806 904 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
011296 0 023511 912 800dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
011380 0 022006 904 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
011300 0 021202 888 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
03776 14336 017058 15224 768dolbeau/std-4rt-nodkgcc_-funroll-loops2019112520190816
011328 0 024894 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
011328 0 025231 912 800dolbeau/std-4rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
011380 0 025206 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
011300 0 021234 888 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
011296 0 024894 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
011296 0 025159 912 800dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
011380 0 025206 904 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
011300 0 021234 888 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
011328 0 021886 904 768dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
011328 0 023567 912 800dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
011380 0 022006 904 768dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
011300 0 021202 888 768dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
076 0 013556 904 768opensslcc2019112520190816
088 0 011890 832 784opensslclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
088 0 011914 832 784opensslclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
088 0 011914 832 784opensslclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
088 0 011914 832 784opensslclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
076 0 013556 904 768opensslgcc2019112520190816
072 0 010832 920 768opensslgcc_-O2_-fomit-frame-pointer2019112520190816
072 0 012529 928 800opensslgcc_-O3_-fomit-frame-pointer2019112520190816
068 0 010896 920 768opensslgcc_-O_-fomit-frame-pointer2019112520190816
068 0 010164 904 768opensslgcc_-Os_-fomit-frame-pointer2019112520190816
068 0 010784 920 768opensslgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
068 0 012497 928 800opensslgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
068 0 010896 920 768opensslgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
068 0 010164 904 768opensslgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
076 0 013556 904 768opensslgcc_-funroll-loops2019112520190816
072 0 013840 920 768opensslgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
072 0 014185 928 800opensslgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
068 0 014096 920 768opensslgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
068 0 010196 904 768opensslgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
068 0 013872 920 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
068 0 014145 928 800opensslgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
068 0 014096 920 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
068 0 010196 904 768opensslgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
072 0 010832 920 768opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
072 0 012521 928 800opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
068 0 010896 920 768opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
068 0 010164 904 768opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
41633968 14336 017250 15224 768dolbeau/std-1rt-nodkgcc_-funroll-loops2019112520190816
83253968 14336 017250 15224 768dolbeau/std-1rt-nodkcc2019112520190816
83253920 14336 017202 15224 768dolbeau/std-2rt-nodkcc2019112520190816
1687774976 0 017215 912 800refgcc_-O3_-fomit-frame-pointer2019112520190816
2664903040 0 016846 904 768refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112520190816
2997005184 0 019039 912 800refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
3163504992 0 017199 912 800refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112520190816
4209485184 0 019071 912 800refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112520190816
4578755040 0 017263 912 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112520190816
4829083048 0 016598 904 768refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112520190816
4911753120 0 016702 904 768refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
5661003380 0 014960 816 784refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112520190816
5661003380 0 014976 816 784refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112520190816
6928742048 0 012542 904 768refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112520190816
7160363040 0 016846 904 768refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
7372892176 0 012782 904 768refgcc_-O_-fomit-frame-pointer2019112520190816
7951243380 0 014976 816 784refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112520190816
8824503380 0 014976 816 784refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112520190816
12987002112 0 012026 888 768refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112520190816
13819502176 0 012782 904 768refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112520190816
13902752168 0 012782 904 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112520190816
20479502016 0 011898 888 768refgcc_-Os_-fomit-frame-pointer2019112520190816
28471502112 0 012026 888 768refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
30514792016 0 011898 888 768refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112520190816
35260612032 0 011914 888 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112520190816
43848752048 0 012590 904 768refgcc_-O2_-fomit-frame-pointer2019112520190816
48603102064 0 012606 904 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112520190816
52364254460 0 017722 888 768refgcc_-funroll-loops2019112520190816
52447504460 0 017722 888 768refcc2019112520190816
164502004460 0 017722 888 768refgcc2019112520190816

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 'aes256_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[14-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[14-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[14-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+208)));
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+208)));
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