Implementation notes: aarch64, hikey960, crypto_aead/aezv5

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: aezv5
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
832510660 0 026194 936 864aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
832518160 0 035371 944 896aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
2497511064 0 026562 936 864aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
2497512828 0 027350 920 864aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
35532030196 0 046120 832 880refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
41625030196 0 046120 832 880refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
42878976772 0 095715 960 896refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
43526722476 0 037199 944 864refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
54945030520 0 046424 832 880refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
58698329904 0 048811 960 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
59634376204 0 095195 960 896refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
67432538452 0 057163 960 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
74092523300 0 039011 960 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
76590070856 0 088211 960 896refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
76590023340 0 039051 960 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
80752571372 0 088683 960 896refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
91575030196 0 046120 832 880refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
107575624076 0 039819 960 864refgcc_-O2_-fomit-frame-pointer2019112720190816
117255623300 0 039011 960 864refgcc_-O_-fomit-frame-pointer2019112720190816
130702522468 0 037207 944 864refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
140692570972 0 088347 960 896refgcc_-O3_-fomit-frame-pointer2019112720190816
152347522468 0 037207 944 864refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
168165038396 0 057131 960 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
170806024128 0 039867 960 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
211455022476 0 037199 944 864refgcc_-Os_-fomit-frame-pointer2019112720190816
214810823932 0 039603 960 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
224322029904 0 048811 960 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
266400034648 0 056399 944 864refgcc2019112720190816
297002222540 0 037263 944 864refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
371837434648 0 056399 944 864refcc2019112720190816
425625234648 0 056399 944 864refgcc_-funroll-loops2019112720190816

Compiler output

Implementation: aesni
Security model: unknown
Compiler: cc
encrypt.c: encrypt.c:187: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:216:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c:216:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c:220: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:220: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:225:8: error: unknown type name 'block'
encrypt.c: static block zero_set_byte(char val, unsigned idx) {
encrypt.c: ^~~~~
encrypt.c: encrypt.c: In function 'zero_set_byte':
encrypt.c: encrypt.c:226:5: error: unknown type name 'block'
encrypt.c: block tmp = zero; ((char *)&tmp)[idx] = val; return tmp;
encrypt.c: ^~~~~
encrypt.c: encrypt.c:226: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:187: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:216:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:216:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c: ^
encrypt.c: encrypt.c:217: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:217: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:220: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:220: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:221:5: error: use of undeclared identifier 'block'
encrypt.c: block *p = (block*)(pad + one_zero_bytes);
encrypt.c: ^
encrypt.c: encrypt.c:221: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