Implementation notes: aarch64, supercoplxc, crypto_aead/aezv4

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aezv4
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1008011472 0 028942 800 888aesniclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090420190816
89680036156 0 054233 936 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090420190816
99456035720 0 053721 936 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090420190816
110712040680 0 057857 936 880refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090420190816
111208046680 0 065201 936 880refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090420190816
113816030720 0 048470 816 888refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090420190816
116416030384 0 048062 816 888refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090420190816
117760030540 0 048270 816 888refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090420190816
117768030540 0 048270 816 888refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090420190816
117784030540 0 048270 816 888refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090420190816
129872046540 0 065089 936 880refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090420190816
136104040556 0 057761 936 880refgcc_-O3_-fomit-frame-pointer2019090420190816
227360031500 0 050769 936 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090420190816
227392031500 0 050769 936 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090420190816
253656025896 0 041841 936 864refgcc_-O2_-fomit-frame-pointer2019090420190816
263488025796 0 041689 936 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090420190816
289656023284 0 038297 920 856refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090420190816
289792023284 0 038297 920 856refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090420190816
294064023288 0 042345 920 856refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090420190816
294104023288 0 042345 920 856refgcc_-Os_-fomit-frame-pointer2019090420190816
303760024836 0 040897 936 864refgcc_-O_-fomit-frame-pointer2019090420190816
304128024836 0 040897 936 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090420190816
1309016036140 0 058617 920 864refcc2019090420190816
1309320036140 0 058617 920 864refgcc2019090420190816
1309600036140 0 058617 920 864refgcc_-funroll-loops2019090420190816

Compiler output

Implementation: aesni
Security model: unknown
Compiler: cc
encrypt.c: encrypt.c:182:2: error: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: ^~~~~
encrypt.c: encrypt.c:211:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c:211:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c:215:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c:215:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c:220:1: error: unknown type name 'block'
encrypt.c: block zero_set_byte(char val, unsigned idx) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c: In function 'zero_set_byte':
encrypt.c: encrypt.c:221:5: error: unknown type name 'block'
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^~~~~
encrypt.c: encrypt.c:221:17: error: 'zero' undeclared (first use in this function)
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^~~~
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 19, 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

Compiler output

Implementation: aesni
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:182:2: error: - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: ^
encrypt.c: encrypt.c:211:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:211:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:212:12: warning: implicit declaration of function 'vand' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: return vand(x, loadu(pad + zero_bytes));
encrypt.c: ^
encrypt.c: encrypt.c:212:20: warning: implicit declaration of function 'loadu' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: return vand(x, loadu(pad + zero_bytes));
encrypt.c: ^
encrypt.c: encrypt.c:215:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:215:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:216:5: error: use of undeclared identifier 'block'
encrypt.c: block *p = (block*)(pad + one_zero_bytes);
encrypt.c: ^
encrypt.c: encrypt.c:216:12: error: use of undeclared identifier 'p'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, 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