Implementation notes: armeabi, tinker, crypto_core/aes128encrypt

Computer: tinker
Microarchitecture: armeabi; Cortex-A17 (410fc0d1)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_core
Primitive: aes128encrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
13013512 0 015182 412 760T:dolbeau/std-1ftclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
13074548 0 016218 412 760T:dolbeau/std-2ftclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
131352 0 09822 400 760T:opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
131552 0 08709 396 752T:opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
132536 0 07518 392 752T:opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
133252 0 09090 400 760T:opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
13426648 0 018318 412 760T:dolbeau/std-4ftclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
135372 0 011916 420 760T:opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
13874052 0 012981 384 760T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
13886092 0 015021 384 760T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
13886048 0 014568 380 752T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14033992 0 012512 380 752T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14102968 0 011488 380 752T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14245932 0 013265 376 752T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14303864 0 011197 376 752T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14312840 0 010173 376 752T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14323036 0 011965 384 760T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14836856 0 016517 384 760T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14894828 0 014489 384 760T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
14933796 0 013457 384 760T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
2983533308 0 014978 412 760refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012720240107
5084603188 0 012785 384 760refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
6433021580 0 010441 384 760refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
12155411050 0 08361 376 752refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107
12608341300 0 09784 380 752refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012720240107

Compiler output

Implementation: T:dolbeau/armv8crypto
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: In file included from core.c:9:
core.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/arm_neon.h:32:2: error: "NEON support not enabled"
core.c: #error "NEON support not enabled"
core.c: ^
core.c: core.c:15:3: error: use of undeclared identifier 'uint8x16_t'
core.c: uint8x16_t temp = vld1q_u8(n);
core.c: ^
core.c: core.c:29:5: error: use of undeclared identifier 'uint32x4_t'
core.c: uint32x4_t t;
core.c: ^
core.c: core.c:30:5: error: use of undeclared identifier 't'
core.c: t = vld1q_u32((unsigned int*)(rkeys+i*16));\
core.c: ^
core.c: core.c:30:9: warning: implicit declaration of function 'vld1q_u32' is invalid in C99 [-Wimplicit-function-declaration]
core.c: t = vld1q_u32((unsigned int*)(rkeys+i*16));\
core.c: ^
core.c: core.c:31:62: error: use of undeclared identifier 'temp'
core.c: asm("aese %0.16b, %1.16b\naesmc %0.16b, %0.16b\n" : "+w"(temp) : "w"(t));
core.c: ^
core.c: core.c:46:3: error: use of undeclared identifier 'temp'
core.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ^
core.c: core.c:46:10: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
core.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
core.c: ^
core.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:dolbeau/armv8crypto

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/arm-linux-gnueabihf/12/include/arm_neon.h: In function ‘aes128_armv8_encrypt’:
core.c: /usr/lib/gcc/arm-linux-gnueabihf/12/include/arm_neon.h:17014:1: error: inlining failed in call to ‘always_inline’ ‘vaeseq_u8’: target specific option mismatch
core.c: 17014 | 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/arm-linux-gnueabihf/12/include/arm_neon.h:17014:1: error: inlining failed in call to ‘always_inline’ ‘vaeseq_u8’: target specific option mismatch
core.c: 17014 | 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: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: core.c:12:3: warning: 'AES_set_encrypt_key' is deprecated [-Wdeprecated-declarations]
core.c: AES_set_encrypt_key(k,128,&kexp);
core.c: ^
core.c: /usr/include/openssl/aes.h:50:1: note: 'AES_set_encrypt_key' has been explicitly marked deprecated here
core.c: OSSL_DEPRECATEDIN_3_0
core.c: ^
core.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
core.c: # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
core.c: ^
core.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
core.c: # define OSSL_DEPRECATED(since) __attribute__((deprecated))
core.c: ^
core.c: core.c:13:3: warning: 'AES_encrypt' is deprecated [-Wdeprecated-declarations]
core.c: AES_encrypt(in,out,&kexp);
core.c: ^
core.c: /usr/include/openssl/aes.h:56:1: note: 'AES_encrypt' has been explicitly marked deprecated here
core.c: OSSL_DEPRECATEDIN_3_0
core.c: ^
core.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
core.c: # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
core.c: ^
core.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
core.c: # define OSSL_DEPRECATED(since) __attribute__((deprecated))
core.c: ^
core.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl

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