Implementation notes: aarch64, supercoplxc, crypto_core/aes256decrypt

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_core
Primitive: aes256decrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4001472 0 014806 800 792dolbeau/armv8cryptoclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
12805216 0 016016 880 768dolbeau/std-1rt-nodkgcc_-O2_-fomit-frame-pointer2019082820190816
12805216 0 017297 888 784dolbeau/std-1rt-nodkgcc_-O3_-fomit-frame-pointer2019082820190816
12805216 0 018088 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
12805216 0 018673 888 784dolbeau/std-1rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
12807300 0 018096 880 768dolbeau/std-2rt-nodkgcc_-O2_-fomit-frame-pointer2019082820190816
12807300 0 019377 888 784dolbeau/std-2rt-nodkgcc_-O3_-fomit-frame-pointer2019082820190816
12807300 0 020168 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
12807300 0 020753 888 784dolbeau/std-2rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
128011404 0 022208 880 768dolbeau/std-4rt-nodkgcc_-O2_-fomit-frame-pointer2019082820190816
128011404 0 023489 888 784dolbeau/std-4rt-nodkgcc_-O3_-fomit-frame-pointer2019082820190816
128011404 0 024280 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
128011404 0 024865 888 784dolbeau/std-4rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
13607132 0 020470 800 792dolbeau/std-2rt-nodkclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
136011268 0 024606 800 792dolbeau/std-4rt-nodkclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
14405060 0 018398 800 792dolbeau/std-1rt-nodkclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
15207132 0 020414 800 792dolbeau/std-2rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
15207132 0 020470 800 792dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
15207132 0 020470 800 792dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
15207132 0 020470 800 792dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
16005068 0 018350 800 792dolbeau/std-1rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
16005068 0 018406 800 792dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
16005068 0 018406 800 792dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
16005068 0 018406 800 792dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160011268 0 024550 800 792dolbeau/std-4rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160011268 0 024606 800 792dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160011268 0 024606 800 792dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160011268 0 024606 800 792dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
17605184 0 015312 864 760dolbeau/std-1rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
17605180 0 018617 888 784dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
17605184 0 015312 864 760dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
184011400 0 021528 864 760dolbeau/std-4rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
184011388 0 024368 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
184011388 0 024833 888 784dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
184011400 0 021528 864 760dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
19205180 0 018152 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
192011400 0 021464 864 760dolbeau/std-4rt-nodkgcc_-Os_-fomit-frame-pointer2019082820190816
192011388 0 022152 880 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
192011388 0 023473 888 784dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
192011400 0 021464 864 760dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
20007244 0 017376 864 760dolbeau/std-2rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
20007244 0 020681 888 784dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
20007244 0 017376 864 760dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
20807244 0 020216 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
21605184 0 015248 864 760dolbeau/std-1rt-nodkgcc_-Os_-fomit-frame-pointer2019082820190816
21605180 0 015936 880 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
21605180 0 017257 888 784dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
21605184 0 015248 864 760dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
2160132 0 013834 880 768opensslcc2019082820190816
216076 0 013568 816 792opensslclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
216076 0 013624 816 792opensslclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
216076 0 013624 816 792opensslclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
216076 0 013624 816 792opensslclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
216076 0 013624 816 792opensslclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
2160132 0 013834 880 768opensslgcc2019082820190816
2160132 0 011130 896 768opensslgcc_-O2_-fomit-frame-pointer2019082820190816
2160132 0 012411 904 784opensslgcc_-O3_-fomit-frame-pointer2019082820190816
2160132 0 011282 896 768opensslgcc_-O_-fomit-frame-pointer2019082820190816
2160132 0 010386 880 760opensslgcc_-Os_-fomit-frame-pointer2019082820190816
2160132 0 011090 896 768opensslgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
2160132 0 012411 904 784opensslgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
2160132 0 011282 896 768opensslgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
2160132 0 010386 880 760opensslgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
2160132 0 013202 896 768opensslgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
2160132 0 013787 904 784opensslgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
2160132 0 014498 896 768opensslgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
2160132 0 010450 880 760opensslgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
2160132 0 013306 896 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
2160132 0 013771 904 784opensslgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
2160132 0 014498 896 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
2160132 0 010450 880 760opensslgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
22407244 0 017312 864 760dolbeau/std-2rt-nodkgcc_-Os_-fomit-frame-pointer2019082820190816
22407244 0 018000 880 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
22407244 0 019321 888 784dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
22407244 0 017312 864 760dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
2240132 0 013834 880 768opensslgcc_-funroll-loops2019082820190816
26405280 0 016232 880 768dolbeau/std-1rt-nodkgcc_-O_-fomit-frame-pointer2019082820190816
26405280 0 016232 880 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
26405280 0 019456 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
26405280 0 019456 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
26407344 0 018296 880 768dolbeau/std-2rt-nodkgcc_-O_-fomit-frame-pointer2019082820190816
26407344 0 018296 880 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
26407344 0 021520 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
26407344 0 021520 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
272011516 0 022472 880 768dolbeau/std-4rt-nodkgcc_-O_-fomit-frame-pointer2019082820190816
272011516 0 022472 880 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
272011512 0 025688 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
272011512 0 025688 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
87203912 14336 017440 15200 768dolbeau/std-4rt-nodkcc2019082820190816
87203912 14336 017440 15200 768dolbeau/std-4rt-nodkgcc2019082820190816
87203912 14336 017440 15200 768dolbeau/std-4rt-nodkgcc_-funroll-loops2019082820190816
105604088 14336 017616 15200 768dolbeau/std-2rt-nodkcc2019082820190816
105604088 14336 017616 15200 768dolbeau/std-2rt-nodkgcc2019082820190816
105604088 14336 017616 15200 768dolbeau/std-2rt-nodkgcc_-funroll-loops2019082820190816
114404136 14336 017664 15200 768dolbeau/std-1rt-nodkcc2019082820190816
114404136 14336 017664 15200 768dolbeau/std-1rt-nodkgcc2019082820190816
114404136 14336 017664 15200 768dolbeau/std-1rt-nodkgcc_-funroll-loops2019082820190816
5550405088 0 017201 888 784refgcc_-O3_-fomit-frame-pointer2019082820190816
5562405276 0 018769 888 784refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
5894405316 0 018793 888 784refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
6340805128 0 017241 888 784refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
6628006460 0 019782 800 792refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
9502406720 0 020038 800 792refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
9559206720 0 020038 800 792refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
9559206720 0 020038 800 792refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
9653606700 0 019966 800 792refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
9740803168 0 016048 880 768refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
9741603172 0 016160 880 768refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
13130403360 0 017544 880 768refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
13133603360 0 017544 880 768refgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
35278402300 0 012432 864 760refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
35279202300 0 012432 864 760refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
36358402196 0 012272 864 760refgcc_-Os_-fomit-frame-pointer2019082820190816
36360802196 0 012272 864 760refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
39440802324 0 013136 880 768refgcc_-O2_-fomit-frame-pointer2019082820190816
42253602316 0 013088 880 768refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
46816002448 0 013408 880 768refgcc_-O_-fomit-frame-pointer2019082820190816
46824002448 0 013408 880 768refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
196440804700 0 018240 864 768refcc2019082820190816
196444804700 0 018240 864 768refgcc2019082820190816
196521604700 0 018240 864 768refgcc_-funroll-loops2019082820190816

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: cc
core.c: In file included from core.c:9:
core.c: core.c: In function 'aes256_setkey_armv8_decrypt':
core.c: /usr/lib/gcc/aarch64-linux-gnu/8/include/arm_neon.h:12447: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