Implementation notes: aarch64, hikey960, crypto_aead/schwaemm256256v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: schwaemm256256v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1199343285 0 015094 936 864optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
2081256949 0 021082 952 896optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
2247753285 0 015094 936 864optgcc_-Os_-fomit-frame-pointer2019112920190816
2289653277 0 015102 936 864optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
24561711265 0 026874 960 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
2497506781 0 020954 952 896optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
2580753321 0 015126 936 864optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
25807519293 0 035170 960 896refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
25807519501 0 035346 960 896refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
2664003701 0 016266 952 864optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
2664004133 0 016778 960 864refgcc_-O2_-fomit-frame-pointer2019112920190816
27472511001 0 026922 960 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
2789214117 0 016762 960 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
2913753857 0 016498 952 864optgcc_-O_-fomit-frame-pointer2019112920190816
2923253661 0 016226 952 864optgcc_-O2_-fomit-frame-pointer2019112920190816
2997003792 0 015694 944 864refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
3246757197 0 022730 952 864optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
3464374149 0 016722 960 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
4092557125 0 022970 952 864optgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
4092557125 0 022970 952 864optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
44122510309 0 026106 952 896optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
4662003792 0 015694 944 864refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
4677207493 0 023066 952 864optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
4745254413 0 017138 960 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
48285010437 0 026202 952 896optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
4952833673 0 016170 952 864optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
50782511737 0 027386 960 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
5078863277 0 015102 936 864optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
5078863840 0 015726 944 864refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
53298010945 0 025210 960 896refgcc_-O3_-fomit-frame-pointer2019112920190816
58275011049 0 025266 960 896refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
6660003909 0 016554 952 864optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
6909754397 0 017122 960 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
7242753760 0 015646 944 864refgcc_-Os_-fomit-frame-pointer2019112920190816
7284063760 0 015646 944 864refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
7477406917 0 021098 952 896optgcc_-O3_-fomit-frame-pointer2019112920190816
74774011001 0 026922 960 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
7951249413 0 023666 960 896refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
9345203857 0 016498 952 864optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
18224704397 0 017122 960 864refgcc_-O_-fomit-frame-pointer2019112920190816

Compiler output

Implementation: opt
Security model: unknown
Compiler: cc
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc opt
gcc opt
gcc -funroll-loops opt

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_opt_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments opt

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc ref
gcc ref
gcc -funroll-loops ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `encryptPT'
try.c: crypto_aead_schwaemm256256v1.a(encrypt.o): In function `crypto_aead_schwaemm256256v1_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `initialize'
try.c: encrypt.c:(.text+0x...): undefined reference to `processAD'
try.c: encrypt.c:(.text+0x...): undefined reference to `decryptCT'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref