Implementation notes: aarch64, supercoplxc, crypto_core/aes128decrypt

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_core
Primitive: aes128decrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3201444 0 014782 800 792dolbeau/armv8cryptoclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
8805768 0 017841 888 784dolbeau/std-1rt-nodkgcc_-O3_-fomit-frame-pointer2019082820190816
8805768 0 019225 888 784dolbeau/std-1rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
8807844 0 021305 888 784dolbeau/std-2rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
88011964 0 024041 888 784dolbeau/std-4rt-nodkgcc_-O3_-fomit-frame-pointer2019082820190816
88011964 0 025417 888 784dolbeau/std-4rt-nodkgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
9605200 0 015992 880 768dolbeau/std-1rt-nodkgcc_-O2_-fomit-frame-pointer2019082820190816
9605780 0 018656 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
9607292 0 018096 880 768dolbeau/std-2rt-nodkgcc_-O2_-fomit-frame-pointer2019082820190816
9607844 0 019921 888 784dolbeau/std-2rt-nodkgcc_-O3_-fomit-frame-pointer2019082820190816
9607888 0 020752 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
96011404 0 022200 880 768dolbeau/std-4rt-nodkgcc_-O2_-fomit-frame-pointer2019082820190816
96011984 0 024848 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
10405072 0 018406 800 792dolbeau/std-1rt-nodkclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
10407136 0 020470 800 792dolbeau/std-2rt-nodkclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
104011276 0 024614 800 792dolbeau/std-4rt-nodkclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
11205080 0 018366 800 792dolbeau/std-1rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11205080 0 018414 800 792dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11205080 0 018414 800 792dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11205080 0 018414 800 792dolbeau/std-1rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11207144 0 020430 800 792dolbeau/std-2rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11207144 0 020478 800 792dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11207144 0 020478 800 792dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
11207144 0 020478 800 792dolbeau/std-2rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
112011280 0 024566 800 792dolbeau/std-4rt-nodkclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
112011280 0 024614 800 792dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
112011280 0 024614 800 792dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
112011280 0 024614 800 792dolbeau/std-4rt-nodkclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
128011376 0 021512 864 760dolbeau/std-4rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
128011936 0 024904 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
128011920 0 025361 888 784dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
128011376 0 021512 864 760dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
13605156 0 015288 864 760dolbeau/std-1rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
13605724 0 018696 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
13605712 0 019153 888 784dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
13605156 0 015288 864 760dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
13607232 0 017368 864 760dolbeau/std-2rt-nodkgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
13607788 0 021225 888 784dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
13607232 0 017368 864 760dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
14407812 0 020784 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
144011376 0 021448 864 760dolbeau/std-4rt-nodkgcc_-Os_-fomit-frame-pointer2019082820190816
144011380 0 022144 880 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
144011376 0 021448 864 760dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
152011920 0 024001 888 784dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
16005156 0 015224 864 760dolbeau/std-1rt-nodkgcc_-Os_-fomit-frame-pointer2019082820190816
16005160 0 015920 880 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
16005712 0 017793 888 784dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
16005156 0 015224 864 760dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
16007232 0 017304 864 760dolbeau/std-2rt-nodkgcc_-Os_-fomit-frame-pointer2019082820190816
16007236 0 017992 880 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
16007788 0 019865 888 784dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
16007232 0 017304 864 760dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
160076 0 013568 816 792opensslclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160076 0 013624 816 792opensslclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160076 0 013624 816 792opensslclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160076 0 013624 816 792opensslclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
160076 0 013624 816 792opensslclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
1600132 0 011146 896 768opensslgcc_-O2_-fomit-frame-pointer2019082820190816
1600132 0 012427 904 784opensslgcc_-O3_-fomit-frame-pointer2019082820190816
1600132 0 011250 896 768opensslgcc_-O_-fomit-frame-pointer2019082820190816
1600132 0 010378 880 760opensslgcc_-Os_-fomit-frame-pointer2019082820190816
1600132 0 011098 896 768opensslgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
1600132 0 012419 904 784opensslgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
1600132 0 011250 896 768opensslgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
1600132 0 010378 880 760opensslgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
1600132 0 013218 896 768opensslgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
1600132 0 013803 904 784opensslgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
1600132 0 014474 896 768opensslgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
1600132 0 010442 880 760opensslgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
1600132 0 013314 896 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
1600132 0 013779 904 784opensslgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
1600132 0 014474 896 768opensslgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
1600132 0 010442 880 760opensslgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
1680132 0 013826 880 768opensslcc2019082820190816
1680132 0 013826 880 768opensslgcc2019082820190816
1680132 0 013826 880 768opensslgcc_-funroll-loops2019082820190816
19205256 0 016208 880 768dolbeau/std-1rt-nodkgcc_-O_-fomit-frame-pointer2019082820190816
19205256 0 016208 880 768dolbeau/std-1rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
19205844 0 020008 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
19205844 0 020008 880 768dolbeau/std-1rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
19207320 0 018272 880 768dolbeau/std-2rt-nodkgcc_-O_-fomit-frame-pointer2019082820190816
19207320 0 018272 880 768dolbeau/std-2rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
19207920 0 022096 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
19207920 0 022096 880 768dolbeau/std-2rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
200011492 0 022448 880 768dolbeau/std-4rt-nodkgcc_-O_-fomit-frame-pointer2019082820190816
200011492 0 022448 880 768dolbeau/std-4rt-nodkgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
200012104 0 026272 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
200012104 0 026272 880 768dolbeau/std-4rt-nodkgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
64803828 14336 017360 15200 768dolbeau/std-4rt-nodkcc2019082820190816
64803828 14336 017360 15200 768dolbeau/std-4rt-nodkgcc2019082820190816
64803828 14336 017360 15200 768dolbeau/std-4rt-nodkgcc_-funroll-loops2019082820190816
77604004 14336 017536 15200 768dolbeau/std-2rt-nodkcc2019082820190816
77604004 14336 017536 15200 768dolbeau/std-2rt-nodkgcc2019082820190816
77604004 14336 017536 15200 768dolbeau/std-2rt-nodkgcc_-funroll-loops2019082820190816
84004052 14336 017584 15200 768dolbeau/std-1rt-nodkcc2019082820190816
84004052 14336 017584 15200 768dolbeau/std-1rt-nodkgcc2019082820190816
84004052 14336 017584 15200 768dolbeau/std-1rt-nodkgcc_-funroll-loops2019082820190816
3996005656 0 017785 888 784refgcc_-O3_-fomit-frame-pointer2019082820190816
4007205668 0 019177 888 784refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082820190816
4252805748 0 019233 888 784refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
4573605712 0 017833 888 784refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082820190816
4767205364 0 018686 800 792refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082820190816
6828805604 0 018870 800 792refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082820190816
6830405624 0 018942 800 792refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082820190816
6830405624 0 018942 800 792refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082820190816
6872005624 0 018942 800 792refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019082820190816
7005602976 0 015856 880 768refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082820190816
7018402980 0 015960 880 768refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
9454403172 0 017312 880 768refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
9455203172 0 017312 880 768refgcc_-funroll-loops_-O_-fomit-frame-pointer2019082820190816
25888002196 0 012312 864 760refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082820190816
25895202196 0 012312 864 760refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
26118402096 0 012160 864 760refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082820190816
26119202096 0 012160 864 760refgcc_-Os_-fomit-frame-pointer2019082820190816
27416002228 0 013048 880 768refgcc_-O2_-fomit-frame-pointer2019082820190816
28197602220 0 012992 880 768refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082820190816
32784802332 0 013248 880 768refgcc_-O_-fomit-frame-pointer2019082820190816
32784802332 0 013248 880 768refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082820190816
141280004564 0 022192 864 768refgcc2019082820190816
141322404564 0 022192 864 768refcc2019082820190816
141375204564 0 022192 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 'aes128_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[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