Implementation notes: aarch64, hikey960, crypto_aead/schwaemm256128v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: schwaemm256128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
888303317 0 015126 936 864optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
1021664141 0 016762 960 864refgcc_-O2_-fomit-frame-pointer2019112920190816
1065963832 0 015718 944 864refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
1154796245 0 020402 952 896optgcc_-O3_-fomit-frame-pointer2019112920190816
1154793873 0 016490 952 864optgcc_-O_-fomit-frame-pointer2019112920190816
1186177937 0 023442 952 864optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
1581753325 0 015110 936 864optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
1776603800 0 015662 944 864refgcc_-Os_-fomit-frame-pointer2019112920190816
1914757881 0 023698 952 864optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
19147518457 0 034306 960 896refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
19147511701 0 027602 960 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
19147518689 0 034498 960 896refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
19149810421 0 024610 960 896refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
1987819589 0 025322 952 896optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
2081253832 0 015718 944 864refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
2081254425 0 017130 960 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
2104743681 0 016154 952 864optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
2123134413 0 017114 960 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
2206393669 0 016210 952 864optgcc_-O2_-fomit-frame-pointer2019112920190816
2497503325 0 015110 936 864optgcc_-Os_-fomit-frame-pointer2019112920190816
2572468737 0 022962 960 896refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
2913753757 0 016298 952 864optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
3157119469 0 025242 952 896optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
31635011973 0 027554 960 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
3267173317 0 015126 936 864optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
37387010277 0 024514 960 896refgcc_-O3_-fomit-frame-pointer2019112920190816
37387012173 0 027786 960 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
3912753361 0 015142 936 864optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
4245754173 0 016794 960 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
4578753873 0 016490 952 864optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
4662007881 0 023698 952 864optgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
4662003921 0 016546 952 864optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
4672606285 0 020394 952 896optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
4828504413 0 017114 960 864refgcc_-O_-fomit-frame-pointer2019112920190816
5078253800 0 015662 944 864refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
5494503880 0 015742 944 864refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
5744257985 0 023522 952 864optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
6576756101 0 020250 952 896optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
7908754157 0 016706 960 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
84925211701 0 027602 960 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816

Compiler output

Implementation: opt
Security model: unknown
Compiler: cc
try.c: crypto_aead_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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_schwaemm256128v1.a(encrypt.o): In function `crypto_aead_schwaemm256128v1_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