Implementation notes: aarch64, rockpi4, crypto_aead/aes256cpfbv1

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aes256cpfbv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1317472812 0 022999 920 880refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091220190816
1325732804 0 021671 920 880refgcc_-O3_-fomit-frame-pointer2019091220190816
1325732812 0 021671 920 880refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091220190816
1325732804 0 023015 920 880refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091220190816
1325732812 0 021783 920 880refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091220190816
1387683964 0 023622 912 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091220190816
1395944028 0 023774 912 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091220190816
1453762492 0 022052 800 888refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091220190816
1453762492 0 022052 800 888refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091220190816
1453762436 0 022020 800 888refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091220190816
1457892508 0 022020 800 888refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091220190816
15611416656 0 034748 800 888gladmanclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091220190816
1635485180 0 026134 912 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019091220190816
1647875180 0 026134 912 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091220190816
17593816532 0 034556 800 888gladmanclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091220190816
17676416564 0 034636 800 888gladmanclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091220190816
17717716564 0 034636 800 888gladmanclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091220190816
17841616320 0 034412 800 888aesrefclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091220190816
17841616564 0 034636 800 888gladmanclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091220190816
1813071948 0 018590 896 856refgcc_-Os_-fomit-frame-pointer2019091220190816
1813071948 0 018590 896 856refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091220190816
1813071948 0 018590 896 856refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091220190816
1829592176 0 019894 912 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091220190816
1837852160 0 019766 912 864refgcc_-O2_-fomit-frame-pointer2019091220190816
1870892168 0 019726 912 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091220190816
1891541948 0 018654 896 856refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091220190816
1891541948 0 018654 896 856refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091220190816
1908062164 0 019910 912 864refgcc_-O_-fomit-frame-pointer2019091220190816
1908062164 0 019910 912 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091220190816
1908062164 0 019910 912 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091220190816
19287119756 0 039198 912 864aesrefgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091220190816
19411019756 0 039198 912 864aesrefgcc_-funroll-loops_-O_-fomit-frame-pointer2019091220190816
19411016260 0 031502 920 856gladmangcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091220190816
19452316260 0 031502 920 856gladmangcc_-funroll-loops_-Os_-fomit-frame-pointer2019091220190816
19989216300 0 032526 912 864aesrefgcc_-O_-fomit-frame-pointer2019091220190816
20030516264 0 031454 920 856gladmangcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091220190816
20071816300 0 032526 912 864aesrefgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091220190816
20071816324 0 032558 912 864aesrefgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091220190816
20195716264 0 031454 920 856gladmangcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091220190816
20360918020 0 035407 920 880aesrefgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091220190816
20402216264 0 031454 920 856gladmangcc_-Os_-fomit-frame-pointer2019091220190816
20567418016 0 036743 920 880aesrefgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091220190816
20608715808 0 030974 896 856aesrefgcc_-Os_-fomit-frame-pointer2019091220190816
20608715808 0 030974 896 856aesrefgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091220190816
20608715824 0 030990 896 856aesrefgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091220190816
20773916304 0 034332 800 888aesrefclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091220190816
20773916296 0 034380 800 888aesrefclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091220190816
20773916296 0 034380 800 888aesrefclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091220190816
20939116296 0 034380 800 888aesrefclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091220190816
21228218796 0 037054 912 864aesrefgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091220190816
21352118888 0 037198 936 864gladmangcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091220190816
21599916828 0 032942 936 864gladmangcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091220190816
21599920032 0 039518 936 864gladmangcc_-funroll-loops_-O_-fomit-frame-pointer2019091220190816
21641215808 0 031030 896 856aesrefgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091220190816
21641215808 0 031030 896 856aesrefgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091220190816
21723817376 0 033630 936 864gladmangcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091220190816
21723820032 0 039518 936 864gladmangcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091220190816
21765117376 0 033630 936 864gladmangcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091220190816
21889017376 0 033630 936 864gladmangcc_-O_-fomit-frame-pointer2019091220190816
22054216916 0 038439 944 880gladmangcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091220190816
22178118256 0 037031 944 880gladmangcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091220190816
22343316668 0 032830 936 864gladmangcc_-O2_-fomit-frame-pointer2019091220190816
22425916148 0 032222 912 864aesrefgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091220190816
22508516684 0 032974 936 864gladmangcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091220190816
22508516904 0 038591 944 880gladmangcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091220190816
22549816888 0 038447 944 880gladmangcc_-O3_-fomit-frame-pointer2019091220190816
2263242492 0 022052 800 888refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091220190816
23045417996 0 036743 920 880aesrefgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091220190816
23169318052 0 035559 920 880aesrefgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091220190816
23334518716 0 036886 912 864aesrefgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091220190816
23912718244 0 037055 944 880gladmangcc_-funroll-loops_-O3_-fomit-frame-pointer2019091220190816
24160518552 0 036766 936 864gladmangcc_-funroll-loops_-O2_-fomit-frame-pointer2019091220190816
24367016108 0 032238 912 864aesrefgcc_-O2_-fomit-frame-pointer2019091220190816
24367016140 0 032382 912 864aesrefgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091220190816
26019017996 0 035399 920 880aesrefgcc_-O3_-fomit-frame-pointer2019091220190816
4167173060 0 027230 896 864refcc2019091220190816
4167173060 0 027230 896 864refgcc_-funroll-loops2019091220190816
4183693060 0 027230 896 864refgcc2019091220190816
52657527720 0 050502 920 864gladmangcc_-funroll-loops2019091220190816
52946627720 0 050502 920 864gladmancc2019091220190816
54763827720 0 050502 920 864gladmangcc2019091220190816
58522122400 0 045118 896 864aesrefcc2019091220190816
58687322400 0 045118 896 864aesrefgcc2019091220190816
58811222400 0 045118 896 864aesrefgcc_-funroll-loops2019091220190816

Compiler output

Implementation: aesni
Security model: unknown
Compiler: cc
cpfbkey.c: cpfbkey.c:15:10: fatal error: wmmintrin.h: No such file or directory
cpfbkey.c: #include <wmmintrin.h>
cpfbkey.c: ^~~~~~~~~~~~~
cpfbkey.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 23, namely:
CompilerImplementations
cc aesni
gcc aesni
gcc -O2 -fomit-frame-pointer aesni
gcc -O3 -fomit-frame-pointer aesni
gcc -O -fomit-frame-pointer aesni
gcc -Os -fomit-frame-pointer aesni
gcc -fno-schedule-insns -O2 -fomit-frame-pointer aesni
gcc -fno-schedule-insns -O3 -fomit-frame-pointer aesni
gcc -fno-schedule-insns -O -fomit-frame-pointer aesni
gcc -fno-schedule-insns -Os -fomit-frame-pointer aesni
gcc -funroll-loops aesni
gcc -funroll-loops -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -O -fomit-frame-pointer aesni
gcc -funroll-loops -Os -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer aesni
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer aesni
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv aesni
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv aesni
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv aesni
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv aesni

Compiler output

Implementation: aesni
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
cpfbkey.c: In file included from cpfbkey.c:15:
cpfbkey.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/wmmintrin.h:27:
cpfbkey.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/emmintrin.h:27:
cpfbkey.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/xmmintrin.h:27:
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
cpfbkey.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
cpfbkey.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cpfbkey.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments aesni
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments aesni
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments aesni
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments aesni
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aesni

Compiler output

Implementation: evp
Security model: unknown
Compiler: cc
encrypt.c: encrypt.c:170:82: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: static void gen_kappa(unsigned char* nonce, unsigned char* kappa, EVP_CIPHER_CTX ctx_key[1]){
encrypt.c: ^~~~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_aes256cpfbv1_evp_encrypt':
encrypt.c: encrypt.c:188:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: EVP_CIPHER_CTX ctx_k[1];
encrypt.c: ^~~~~
encrypt.c: encrypt.c:189:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: EVP_CIPHER_CTX ctx_kappa_0[1];
encrypt.c: ^~~~~~~~~~~
encrypt.c: encrypt.c:190:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: EVP_CIPHER_CTX ctx_kappa_m[1];
encrypt.c: ^~~~~~~~~~~
encrypt.c: encrypt.c:204:31: error: type of formal parameter 3 is incomplete
encrypt.c: gen_kappa(nonce, kappa_0, ctx_k);
encrypt.c: ^~~~~
encrypt.c: encrypt.c:265:28: error: type of formal parameter 3 is incomplete
encrypt.c: gen_kappa(nonce, kappa_m, ctx_k);
encrypt.c: ^~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_aes256cpfbv1_evp_decrypt':
encrypt.c: encrypt.c:330:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: EVP_CIPHER_CTX ctx_k[1];
encrypt.c: ^~~~~
encrypt.c: encrypt.c:331:20: error: array type has incomplete element type 'EVP_CIPHER_CTX' {aka 'struct evp_cipher_ctx_st'}
encrypt.c: EVP_CIPHER_CTX ctx_kappa_0[1];
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 23, namely:
CompilerImplementations
cc evp
gcc evp
gcc -O2 -fomit-frame-pointer evp
gcc -O3 -fomit-frame-pointer evp
gcc -O -fomit-frame-pointer evp
gcc -Os -fomit-frame-pointer evp
gcc -fno-schedule-insns -O2 -fomit-frame-pointer evp
gcc -fno-schedule-insns -O3 -fomit-frame-pointer evp
gcc -fno-schedule-insns -O -fomit-frame-pointer evp
gcc -fno-schedule-insns -Os -fomit-frame-pointer evp
gcc -funroll-loops evp
gcc -funroll-loops -O2 -fomit-frame-pointer evp
gcc -funroll-loops -O3 -fomit-frame-pointer evp
gcc -funroll-loops -O -fomit-frame-pointer evp
gcc -funroll-loops -Os -fomit-frame-pointer evp
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer evp
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer evp
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer evp
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer evp
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv evp
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv evp
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv evp
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv evp

Compiler output

Implementation: evp
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:170:89: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: static void gen_kappa(unsigned char* nonce, unsigned char* kappa, EVP_CIPHER_CTX ctx_key[1]){
encrypt.c: ^
encrypt.c: /usr/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:188:25: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: EVP_CIPHER_CTX ctx_k[1];
encrypt.c: ^
encrypt.c: /usr/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:189:31: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: EVP_CIPHER_CTX ctx_kappa_0[1];
encrypt.c: ^
encrypt.c: /usr/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:190:31: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: EVP_CIPHER_CTX ctx_kappa_m[1];
encrypt.c: ^
encrypt.c: /usr/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
encrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
encrypt.c: ^
encrypt.c: encrypt.c:330:25: error: array has incomplete element type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments evp
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments evp
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments evp
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments evp
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments evp