Implementation notes: aarch64, supercoplxc, crypto_aead/aeadaes128ocbtaglen128v1

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aeadaes128ocbtaglen128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
130406448 0 024046 800 888dolbeau/armv8cryptoclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
1987205332 0 023436 848 888optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
1992005420 0 023540 848 888optclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
1994405320 0 023372 848 888optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
1999205332 0 023436 848 888optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2000006196 0 024967 968 880optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
2000805332 0 023436 848 888optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2000806248 0 023671 968 880optgcc_-O3_-fomit-frame-pointer2019090220190816
2003206332 0 022503 968 864optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
2004806376 0 023783 968 880optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
2014406872 0 025231 968 864optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
2015205264 0 020567 952 856optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
2018406324 0 025071 968 880optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
2020805264 0 020567 952 856optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
2023205292 0 020543 952 856optgcc_-Os_-fomit-frame-pointer2019090220190816
2023205292 0 020543 952 856optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
2023206792 0 025055 968 864optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
2023207160 0 026695 968 864optgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
2029606284 0 022607 968 864optgcc_-O_-fomit-frame-pointer2019090220190816
2031206284 0 022607 968 864optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
2044807160 0 026695 968 864optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
2060806104 0 022327 968 864optgcc_-O2_-fomit-frame-pointer2019090220190816
2504807684 0 034583 952 864optgcc2019090220190816
2506407684 0 034583 952 864optcc2019090220190816
2588007684 0 034583 952 864optgcc_-funroll-loops2019090220190816
2731205904 0 024495 952 880refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
2764805856 0 023103 952 880refgcc_-O3_-fomit-frame-pointer2019090220190816
2782405952 0 024511 952 880refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
2802405944 0 023167 952 880refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
2972807024 0 024980 832 888refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2979206696 0 024660 832 888refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
2981606768 0 024668 832 888refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2999207024 0 024980 832 888refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
3016007024 0 024980 832 888refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
3271205696 0 023718 944 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
3287205776 0 023894 944 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
4020003052 0 022358 944 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
4032003052 0 022358 944 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
5123202712 0 018686 944 864refgcc_-O2_-fomit-frame-pointer2019090220190816
5154401796 0 016790 928 856refgcc_-Os_-fomit-frame-pointer2019090220190816
5155201792 0 016846 928 856refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
5165602712 0 018630 944 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
5166401796 0 016790 928 856refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
5166401792 0 016846 928 856refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
5347202076 0 018166 944 864refgcc_-O_-fomit-frame-pointer2019090220190816
5352802076 0 018166 944 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
16832802856 0 029551 936 864refcc2019090220190816
16836002856 0 029551 936 864refgcc2019090220190816
16840002856 0 029551 936 864refgcc_-funroll-loops2019090220190816

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: cc
encrypt.c: In file included from encrypt.c:47:
encrypt.c: encrypt.c: In function 'aes128ni_setkey_e2d':
encrypt.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
encrypt.c: vaesimcq_u8 (uint8x16_t data)
encrypt.c: ^~~~~~~~~~~
encrypt.c: encrypt.c:81:16: note: called from here
encrypt.c: dkeys[i] = vaesimcq_u8(ekeys[10-i]);
encrypt.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
encrypt.c: encrypt.c:81:16: warning: implicit declaration of function 'vaesimcq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: dkeys[i] = vaesimcq_u8(ekeys[10-i]);
encrypt.c: ^
encrypt.c: encrypt.c:81:14: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: dkeys[i] = vaesimcq_u8(ekeys[10-i]);
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:118:10: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^
encrypt.c: encrypt.c:118:8: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:158:10: warning: implicit declaration of function 'vaesdq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: temp = vaesdq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^
encrypt.c: encrypt.c:158:8: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: temp = vaesdq_u8(temp, vld1q_u8((rkeys+144)));
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:281:1: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: FUNC(4, MAKE4, MAKE4COMMA)
encrypt.c: ^
encrypt.c: encrypt.c:238:11: note: expanded from macro 'FUNC'
encrypt.c: MAKEN(AESENCLASTx); \
encrypt.c: ^
encrypt.c: encrypt.c:281:1: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
encrypt.c: ...

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