Implementation notes: aarch64, hikey960, crypto_kem/oddmanhattan256

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: oddmanhattan256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4492577255532 0 0189349 1088 1656optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
4508921974052 0 0185569 1072 1624optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
4666587524472 0 0186677 1088 1624optgcc_-O2_-fomit-frame-pointer2019121120190816
4868061664052 0 0185569 1072 1624optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
4899418654788 0 0188222 1000 1640optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
51656684310120 0 0195589 1088 1656optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
5412865738932 0 0194289 1072 1624optgcc2019121120190816
5895222514044 0 0185585 1072 1624optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
8901589504424 0 0186581 1088 1624optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
91389352510080 0 0195317 1088 1624optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
9196649824044 0 0185585 1072 1624optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
95326245010280 0 0195733 1088 1624optgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
9805851004680 0 0186933 1088 1624optgcc_-O_-fomit-frame-pointer2019121120190816
10391307028932 0 0194289 1072 1624optgcc_-funroll-loops2019121120190816
10871383094796 0 0188254 1000 1640optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
11210028754796 0 0188254 1000 1640optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
11314034888932 0 0194289 1072 1624optcc2019121120190816
13722026514472 0 0186677 1088 1624optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
13797963906000 0 0186513 1072 1624refcc2019121120190816
139097454310016 0 0195461 1088 1656optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
14103094955476 0 0189269 1088 1656optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
14350042355540 0 0189365 1088 1656optgcc_-O3_-fomit-frame-pointer2019121120190816
146511760510224 0 0195429 1088 1624optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
14663701084092 0 0182702 1000 1640refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
14860799843736 0 0181093 1088 1624refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
14866285713452 0 0180129 1072 1624refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
14872237997864 0 0188501 1088 1656refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
14933915167636 0 0188245 1088 1624refgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
14954441673932 0 0181333 1088 1624refgcc_-O_-fomit-frame-pointer2019121120190816
14971538903452 0 0180145 1072 1624refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
15015581334092 0 0182702 1000 1640refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
15103676076000 0 0186513 1072 1624refgcc2019121120190816
15136470364084 0 0182686 1000 1640refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
15152927977992 0 0188389 1088 1624refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
15207251853696 0 0181013 1088 1624refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
15223733453944 0 0181349 1088 1624refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
15235926747768 0 0188373 1088 1656refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
15379980806000 0 0186513 1072 1624refgcc_-funroll-loops2019121120190816
24872384694052 0 0185569 1072 1624optgcc_-Os_-fomit-frame-pointer2019121120190816
25473026574092 0 0182702 1000 1640refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
26077804873452 0 0180145 1072 1624refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
26089842697636 0 0188245 1088 1624refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
26651234594716 0 0186965 1088 1624optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
27753926943932 0 0181333 1088 1624refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
28003252104680 0 0186933 1088 1624optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
28191863253452 0 0180129 1072 1624refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
28210181674796 0 0188254 1000 1640optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
302578785010280 0 0195733 1088 1624optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
30415392004748 0 0183701 1088 1656refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
30496528794780 0 0183749 1088 1656refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
30759606243736 0 0181093 1088 1624refgcc_-O2_-fomit-frame-pointer2019121120190816
30788012838048 0 0188405 1088 1624refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
33151667663452 0 0180129 1072 1624refgcc_-Os_-fomit-frame-pointer2019121120190816
57145630504788 0 0183765 1088 1656refgcc_-O3_-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