Implementation notes: aarch64, pi3bplus, crypto_core/aes128encrypt

Computer: pi3bplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 202311020231107
Operation: crypto_core
Primitive: aes128encrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5002992 0 015359 824 784T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
5003528 0 016727 824 784T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
5004008 0 016375 824 784T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
5004560 0 017759 824 784T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
5006072 0 018439 824 784T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
5006616 0 019831 824 784T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
625132 0 012704 856 784T:opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
625132 0 017640 856 784T:opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
625132 0 012543 848 768T:opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
625132 0 011592 840 760T:opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
7506016 0 017271 808 760T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
8752940 0 014199 808 760T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
8753960 0 015207 808 760T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
10006076 0 018286 816 768T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
11254012 0 016222 816 768T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
12503000 0 015214 816 768T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
3500003732 0 016943 824 784refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
5547501924 0 014295 824 784refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
21345001636 0 012903 808 760refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107
24325001844 0 014038 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820231107

Compiler output

Implementation: T:dolbeau/armv8crypto
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: In file included from core.c:9:
core.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h: In function 'aes128_armv8_encrypt':
core.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h:10251:1: error: inlining failed in call to 'always_inline' 'vaeseq_u8': target specific option mismatch
core.c: 10251 | vaeseq_u8 (uint8x16_t data, uint8x16_t key)
core.c: | ^~~~~~~~~
core.c: core.c:46:10: note: called from here
core.c: 46 | temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h:10251:1: error: inlining failed in call to 'always_inline' 'vaeseq_u8': target specific option mismatch
core.c: 10251 | vaeseq_u8 (uint8x16_t data, uint8x16_t key)
core.c: | ^~~~~~~~~
core.c: core.c:46:10: note: called from here
core.c: 46 | temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:dolbeau/armv8crypto
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:dolbeau/armv8crypto
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:dolbeau/armv8crypto
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:dolbeau/armv8crypto

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: core.c: In function 'crypto_core_aes128encrypt_openssl_timingleaks':
core.c: core.c:12:3: warning: 'AES_set_encrypt_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
core.c: 12 | AES_set_encrypt_key(k,128,&kexp);
core.c: | ^~~~~~~~~~~~~~~~~~~
core.c: In file included from core.c:1:
core.c: /usr/include/openssl/aes.h:51:5: note: declared here
core.c: 51 | int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
core.c: | ^~~~~~~~~~~~~~~~~~~
core.c: core.c:13:3: warning: 'AES_encrypt' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
core.c: 13 | AES_encrypt(in,out,&kexp);
core.c: | ^~~~~~~~~~~
core.c: /usr/include/openssl/aes.h:57:6: note: declared here
core.c: 57 | void AES_encrypt(const unsigned char *in, unsigned char *out,
core.c: | ^~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl