Implementation notes: aarch64, pi4b, crypto_aead/aeadaes128ocbtaglen128v1

Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240808
Operation: crypto_aead
Primitive: aeadaes128ocbtaglen128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2760396248 18 025363 946 864T:optgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2764466544 18 024683 938 848T:optgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2764755687 18 022483 922 840T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808
2765055888 18 023931 938 848T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024082120240808

Test failure


error 111

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


encrypt.c: encrypt.c:518:20: warning: variable 'sum' is uninitialized when used here [-Wuninitialized]
encrypt.c:     sum = veorq_u8(sum,sum);
encrypt.c:                    ^~~
encrypt.c: encrypt.c:458:5: note: variable 'sum' is declared here
encrypt.c:     uint8x16_t lstar, ldollar, sum, offset, ktop, pad, nonce, tag, tmp, outv;
encrypt.c:     ^
encrypt.c: encrypt.c:123:20: warning: unused function 'aes128armv8_encrypt1' [-Wunused-function]
encrypt.c: static inline void aes128armv8_encrypt1(unsigned char *out, const unsigned char *n, const unsigned char *rkeys) {
encrypt.c:                    ^
encrypt.c: encrypt.c:163:20: warning: unused function 'aes128armv8_decrypt1' [-Wunused-function]
encrypt.c: static inline void aes128armv8_decrypt1(const unsigned char *n, unsigned char *out, const unsigned char *rkeys) {
encrypt.c:                    ^
encrypt.c: encrypt.c:281:1: warning: unused function 'aes128armv8_encrypt4' [-Wunused-function]
encrypt.c: FUNC(4, MAKE4, MAKE4COMMA)
encrypt.c: ^
encrypt.c: encrypt.c:231:22: note: expanded from macro 'FUNC'
encrypt.c:   static inline void aes128armv8_encrypt##N(unsigned char *out, unsigned char *n, const unsigned char *rkeys) { \
encrypt.c:                      ^
encrypt.c: <scratch space>:164:1: note: expanded from here
encrypt.c: aes128armv8_encrypt4
encrypt.c: ^
encrypt.c: encrypt.c:281:1: warning: unused function 'aes128armv8_decrypt4' [-Wunused-function]
encrypt.c: encrypt.c:241:22: note: expanded from macro 'FUNC'
encrypt.c:   static inline void aes128armv8_decrypt##N(unsigned char *out, unsigned char *n, const unsigned char *rkeys) { \
encrypt.c:                      ^
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:dolbeau/armv8cryptoclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


encrypt.c: encrypt.c: In function 'aes128ni_setkey_e2d':
encrypt.c: encrypt.c:79: warning: ignoring '#pragma unroll ' [-Wunknown-pragmas]
encrypt.c:    79 | #pragma unroll(9)
encrypt.c:       |
encrypt.c: encrypt.c: In function 'aes128armv8_encrypt1_neon':
encrypt.c: encrypt.c:98: warning: ignoring '#pragma unroll ' [-Wunknown-pragmas]
encrypt.c:    98 | #pragma unroll(9)
encrypt.c:       |
encrypt.c: encrypt.c: In function 'aes128armv8_decrypt1_neon':
encrypt.c: encrypt.c:138: warning: ignoring '#pragma unroll ' [-Wunknown-pragmas]
encrypt.c:   138 | #pragma unroll(9)
encrypt.c:       |
encrypt.c: In file included from encrypt.c:45:
encrypt.c: At top level:
encrypt.c: stdaes-common.h:548:21: warning: 'KT3' defined but not used [-Wunused-variable]
encrypt.c:   548 | static unsigned int KT3[256] = KT0Data;
encrypt.c:       |                     ^~~
encrypt.c: stdaes-common.h:541:21: warning: 'KT2' defined but not used [-Wunused-variable]
encrypt.c:   541 | static unsigned int KT2[256] = KT0Data;
encrypt.c:       |                     ^~~
encrypt.c: stdaes-common.h:534:21: warning: 'KT1' defined but not used [-Wunused-variable]
encrypt.c:   534 | static unsigned int KT1[256] = KT0Data;
encrypt.c:       |                     ^~~
encrypt.c: stdaes-common.h:527:21: warning: 'KT0' defined but not used [-Wunused-variable]
encrypt.c:   527 | static unsigned int KT0[256] = KT0Data;
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:dolbeau/armv8cryptogcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/armv8cryptogcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/armv8cryptogcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/armv8cryptogcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


encrypt.c: encrypt.c:86:5: warning: 'AES_set_encrypt_key' is deprecated [-Wdeprecated-declarations]
encrypt.c:     AES_set_encrypt_key(k, KEYBYTES*8, &aes_key);
encrypt.c:     ^
encrypt.c: /usr/include/openssl/aes.h:50:1: note: 'AES_set_encrypt_key' has been explicitly marked deprecated here
encrypt.c: OSSL_DEPRECATEDIN_3_0
encrypt.c: ^
encrypt.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
encrypt.c: #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
encrypt.c:                                                 ^
encrypt.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
encrypt.c: #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
encrypt.c:                                                    ^
encrypt.c: encrypt.c:88:5: warning: 'AES_encrypt' is deprecated [-Wdeprecated-declarations]
encrypt.c:     AES_encrypt(tmp, lstar, &aes_key);
encrypt.c:     ^
encrypt.c: /usr/include/openssl/aes.h:56:1: note: 'AES_encrypt' has been explicitly marked deprecated here
encrypt.c: OSSL_DEPRECATEDIN_3_0
encrypt.c: ^
encrypt.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
encrypt.c: #   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
encrypt.c:                                                 ^
encrypt.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
encrypt.c: #     define OSSL_DEPRECATED(since) __attribute__((deprecated))
encrypt.c:                                                    ^
encrypt.c: encrypt.c:104:9: warning: 'AES_encrypt' is deprecated [-Wdeprecated-declarations]
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


encrypt.c: encrypt.c: In function 'hash':
encrypt.c: encrypt.c:86:5: warning: 'AES_set_encrypt_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
encrypt.c:    86 |     AES_set_encrypt_key(k, KEYBYTES*8, &aes_key);
encrypt.c:       |     ^~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:39:
encrypt.c: /usr/include/openssl/aes.h:51:5: note: declared here
encrypt.c:    51 | int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
encrypt.c:       |     ^~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:88:5: warning: 'AES_encrypt' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
encrypt.c:    88 |     AES_encrypt(tmp, lstar, &aes_key);
encrypt.c:       |     ^~~~~~~~~~~
encrypt.c: In file included from encrypt.c:39:
encrypt.c: /usr/include/openssl/aes.h:57:6: note: declared here
encrypt.c:    57 | void AES_encrypt(const unsigned char *in, unsigned char *out,
encrypt.c:       |      ^~~~~~~~~~~
encrypt.c: encrypt.c:104:9: warning: 'AES_encrypt' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
encrypt.c:   104 |         AES_encrypt(tmp, tmp, &aes_key);
encrypt.c:       |         ^~~~~~~~~~~
encrypt.c: In file included from encrypt.c:39:
encrypt.c: /usr/include/openssl/aes.h:57:6: note: declared here
encrypt.c:    57 | void AES_encrypt(const unsigned char *in, unsigned char *out,
encrypt.c:       |      ^~~~~~~~~~~
encrypt.c: encrypt.c:120:9: warning: 'AES_encrypt' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
encrypt.c:   120 |         AES_encrypt(tmp, tmp, &aes_key);
encrypt.c:       |         ^~~~~~~~~~~
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


ocb_vaes.c: In file included from ocb_vaes.c:71:
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
ocb_vaes.c: #error "This header is only meant to be used on x86 and x64 architecture"
ocb_vaes.c:  ^
ocb_vaes.c: In file included from ocb_vaes.c:71:
ocb_vaes.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:17:
ocb_vaes.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/x86gprintrin.h:15:
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/hresetintrin.h:42:27: error: invalid input constraint 'a' in asm
ocb_vaes.c:   __asm__ ("hreset $0" :: "a"(__eax));
ocb_vaes.c:                           ^
ocb_vaes.c: In file included from ocb_vaes.c:71:
ocb_vaes.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:21:
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
ocb_vaes.c: #error "This header is only meant to be used on x86 and x64 architecture"
ocb_vaes.c:  ^
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:54:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
ocb_vaes.c:     return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
ocb_vaes.c:            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:133:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
ocb_vaes.c:     return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
ocb_vaes.c:            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:163:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
ocb_vaes.c:     return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
ocb_vaes.c:            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ocb_vaes.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:193:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
ocb_vaes.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:vaesclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


ocb_vaes.c: ocb_vaes.c:71:10: fatal error: immintrin.h: No such file or directory
ocb_vaes.c:    71 | #include <immintrin.h>
ocb_vaes.c:       |          ^~~~~~~~~~~~~
ocb_vaes.c: compilation terminated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:vaesgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:vaesgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:vaesgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:vaesgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Namespace violations


ocb.o ae_allocate T
ocb.o ae_clear T
ocb.o ae_ctx_sizeof T
ocb.o ae_decrypt T
ocb.o ae_encrypt T
ocb.o ae_free T
ocb.o ae_init T
ocb.o gen_offset T
ocb.o infoString D

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:optgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)