Implementation notes: aarch64, supercoplxc, crypto_aead/aeadaes256ocbtaglen128v1

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aeadaes256ocbtaglen128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
165606712 0 024310 800 888dolbeau/armv8cryptoclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
2606406792 0 025087 968 864optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
2608806196 0 024999 968 880optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
2615206104 0 022359 968 864optgcc_-O2_-fomit-frame-pointer2019090220190816
2615206376 0 023815 968 880optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
2624005332 0 023436 848 888optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2625605420 0 023540 848 888optclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
2626405332 0 023436 848 888optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2626406332 0 022535 968 864optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
2627205320 0 023372 848 888optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2639205332 0 023436 848 888optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
2640006284 0 022639 968 864optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
2657607160 0 026727 968 864optgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
2660007160 0 026727 968 864optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
2662405292 0 020575 952 856optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
2663206284 0 022639 968 864optgcc_-O_-fomit-frame-pointer2019090220190816
2674405264 0 020599 952 856optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
2678406324 0 025103 968 880optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
2684005292 0 020575 952 856optgcc_-Os_-fomit-frame-pointer2019090220190816
2688005264 0 020599 952 856optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
2707206248 0 023703 968 880optgcc_-O3_-fomit-frame-pointer2019090220190816
2800006872 0 025263 968 864optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
3168007684 0 030511 952 864optcc2019090220190816
3169607684 0 030511 952 864optgcc2019090220190816
3176007684 0 030511 952 864optgcc_-funroll-loops2019090220190816
3411205904 0 024527 952 880refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
3424005856 0 023135 952 880refgcc_-O3_-fomit-frame-pointer2019090220190816
3456005952 0 024543 952 880refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
3468005944 0 023199 952 880refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
3632007024 0 024980 832 888refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
3636007024 0 024980 832 888refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
3638406696 0 024660 832 888refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
3639206768 0 024668 832 888refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
3651207024 0 024980 832 888refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
3942405696 0 023750 944 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
3952805776 0 023926 944 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
4688803052 0 022390 944 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
4693603052 0 022390 944 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
5736002712 0 018718 944 864refgcc_-O2_-fomit-frame-pointer2019090220190816
5764801796 0 016822 928 856refgcc_-Os_-fomit-frame-pointer2019090220190816
5770402712 0 018662 944 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
5770401796 0 016822 928 856refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
5777601792 0 016878 928 856refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
5780001792 0 016878 928 856refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
5887202076 0 018198 944 864refgcc_-O_-fomit-frame-pointer2019090220190816
5899202076 0 018198 944 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
17440802856 0 025487 936 864refgcc2019090220190816
17448802856 0 025487 936 864refgcc_-funroll-loops2019090220190816
17452002856 0 025487 936 864refcc2019090220190816

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 'aes256ni_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[14-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[14-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[14-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+208)));
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+208)));
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+208)));
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+208)));
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