Implementation notes: aarch64, hikey960, crypto_kem/oddmanhattan192

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: oddmanhattan192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1829682019988 0 0195429 1088 1624optgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
1879820464024 0 0185553 1072 1624optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
1883640159944 0 0195413 1088 1656optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
1965186094024 0 0185553 1072 1624optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
2065919315512 0 0188974 1000 1640optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
3479017504344 0 0186549 1088 1624optgcc_-O2_-fomit-frame-pointer2019121120190816
3494047534344 0 0186549 1088 1624optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
3499663504288 0 0186453 1088 1624optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
3518561254032 0 0185553 1072 1624optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
3568011754032 0 0185553 1072 1624optgcc_-Os_-fomit-frame-pointer2019121120190816
3601661084576 0 0186821 1088 1624optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
3622374005412 0 0189237 1088 1656optgcc_-O3_-fomit-frame-pointer2019121120190816
3626453255404 0 0189221 1088 1656optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
3924072005512 0 0188974 1000 1640optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
3952460255504 0 0188942 1000 1640optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
3987092257360 0 0192705 1072 1624optgcc_-funroll-loops2019121120190816
4605723005512 0 0188974 1000 1640optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
4636109257360 0 0192705 1072 1624optcc2019121120190816
50145430510112 0 0195317 1088 1624optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
5295441464552 0 0186805 1088 1624optgcc_-O_-fomit-frame-pointer2019121120190816
5423126754032 0 0185553 1072 1624optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
5510401604552 0 0186805 1088 1624optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
6309594909824 0 0195269 1088 1656optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
6939114726016 0 0186529 1072 1624refcc2019121120190816
7275729487816 0 0188421 1088 1656refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
7276331794756 0 0183717 1088 1656refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
7281128616016 0 0186529 1072 1624refgcc2019121120190816
7300160483744 0 0181109 1088 1624refgcc_-O2_-fomit-frame-pointer2019121120190816
7310554767700 0 0188309 1088 1624refgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
7316394123744 0 0181109 1088 1624refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
7316749444556 0 0183166 1000 1640refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
7327456574796 0 0183781 1088 1656refgcc_-O3_-fomit-frame-pointer2019121120190816
7354946343956 0 0181365 1088 1624refgcc_-O_-fomit-frame-pointer2019121120190816
7384158707360 0 0192705 1072 1624optgcc2019121120190816
7385592697920 0 0188549 1088 1656refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
7393731213456 0 0180129 1072 1624refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
7511111063956 0 0181365 1088 1624refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
7540383844548 0 0183150 1000 1640refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
7573592589988 0 0195429 1088 1624optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
11560927505348 0 0189141 1088 1656optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
13109294259968 0 0195205 1088 1624optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
13629911784556 0 0183166 1000 1640refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
13631604754556 0 0183166 1000 1640refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
13880650337700 0 0188309 1088 1624refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
14130522006016 0 0186529 1072 1624refgcc_-funroll-loops2019121120190816
14306107873456 0 0180145 1072 1624refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
15028525898152 0 0188517 1088 1624refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
15043743613456 0 0180129 1072 1624refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
15116414733968 0 0181381 1088 1624refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
15126327724788 0 0183765 1088 1656refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
15211451323456 0 0180145 1072 1624refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
26907746208064 0 0188469 1088 1624refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
27355031373704 0 0181029 1088 1624refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
30372680253456 0 0180129 1072 1624refgcc_-Os_-fomit-frame-pointer2019121120190816

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
kem.c: kem.c:30:15: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c: randombytes(seed,crypto_kem_BYTES);
kem.c: ^~~~
kem.c: /home/supercop/supercop/supercop-20190816/supercop-data/hikey960/aarch64/include/randombytes.h:8:40: note: passing argument to parameter here
kem.c: extern void randombytes(unsigned char *,unsigned long long);
kem.c: ^
kem.c: kem.c:35:25: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c: seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c: ^~~~
kem.c: ./rng.h:40:34: note: passing argument to parameter 'seed' here
kem.c: unsigned char *seed,
kem.c: ^
kem.c: kem.c:131:30: warning: passing 'char [8]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c: seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c: ^~~~~~~~~~~
kem.c: ./rng.h:41:34: note: passing argument to parameter 'diversifier' here
kem.c: unsigned char *diversifier,
kem.c: ^
kem.c: 3 warnings generated.

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: clang -O3 -fomit-frame-pointer -Qunused-arguments
kem.c: kem.c:30:15: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c: randombytes(seed,crypto_kem_BYTES);
kem.c: ^~~~
kem.c: /home/supercop/supercop/supercop-20190816/supercop-data/hikey960/aarch64/include/randombytes.h:8:40: note: passing argument to parameter here
kem.c: extern void randombytes(unsigned char *,unsigned long long);
kem.c: ^
kem.c: kem.c:35:25: warning: passing 'char [32]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c: seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c: ^~~~
kem.c: ./rng.h:40:34: note: passing argument to parameter 'seed' here
kem.c: unsigned char *seed,
kem.c: ^
kem.c: kem.c:125:30: warning: passing 'char [8]' to parameter of type 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c: seedexpander_init(ctx,seed,diversifier,maxlen);
kem.c: ^~~~~~~~~~~
kem.c: ./rng.h:41:34: note: passing argument to parameter 'diversifier' here
kem.c: unsigned char *diversifier,
kem.c: ^
kem.c: 3 warnings generated.

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