Implementation notes: aarch64, hikey960, crypto_kem/oddmanhattan128

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: oddmanhattan128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1007845384316 0 0186517 1088 1624optgcc_-O2_-fomit-frame-pointer2019121120190816
10092224010064 0 0195301 1088 1624optgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
10115072110296 0 0195749 1088 1624optgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
1016485077408 0 0192753 1072 1624optgcc2019121120190816
1020745534000 0 0185537 1072 1624optgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
1889275505196 0 0188654 1000 1640optclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
1892938509920 0 0195365 1088 1656optgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
1893438005600 0 0189429 1088 1656optgcc_-O3_-fomit-frame-pointer2019121120190816
18935212510192 0 0195397 1088 1624optgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
1895352754008 0 0185521 1072 1624optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
18955192510296 0 0195749 1088 1624optgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
1897350755536 0 0189333 1088 1656optgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
19086727510048 0 0195525 1088 1656optgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
1913085005196 0 0188654 1000 1640optclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
1932964167408 0 0192753 1072 1624optgcc_-funroll-loops2019121120190816
1966531505592 0 0189413 1088 1656optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
2189003905196 0 0188654 1000 1640optclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
2358657584316 0 0186517 1088 1624optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
2414665894008 0 0185521 1072 1624optgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
2517442204268 0 0186437 1088 1624optgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
2519413564000 0 0185537 1072 1624optgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
2661954404528 0 0186773 1088 1624optgcc_-O_-fomit-frame-pointer2019121120190816
2707804894528 0 0186773 1088 1624optgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
3100344667408 0 0192753 1072 1624optcc2019121120190816
3369523527696 0 0188309 1088 1624refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
3427860874232 0 0182830 1000 1640refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
3559951087696 0 0188309 1088 1624refgcc_-funroll-loops_-O_-fomit-frame-pointer2019121120190816
3569189405188 0 0188622 1000 1640optclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019121120190816
3596332043432 0 0180129 1072 1624refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019121120190816
3601168203432 0 0180129 1072 1624refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
3614255518048 0 0188453 1088 1624refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
3616920714984 0 0183973 1088 1656refgcc_-O3_-fomit-frame-pointer2019121120190816
3621296083432 0 0180113 1072 1624refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019121120190816
3623908683684 0 0181013 1088 1624refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019121120190816
3629860293916 0 0181317 1088 1624refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019121120190816
3632525196184 0 0186689 1072 1624refgcc2019121120190816
3648036926184 0 0186689 1072 1624refgcc_-funroll-loops2019121120190816
5047197754552 0 0186805 1088 1624optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
5403507754008 0 0185521 1072 1624optgcc_-Os_-fomit-frame-pointer2019121120190816
6186831844240 0 0182862 1000 1640refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019121120190816
6358815984240 0 0182862 1000 1640refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019121120190816
6575337133432 0 0180113 1072 1624refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019121120190816
6689720258120 0 0188485 1088 1624refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019121120190816
6737315943916 0 0181317 1088 1624refgcc_-O_-fomit-frame-pointer2019121120190816
6762460467904 0 0188533 1088 1656refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019121120190816
6768807754976 0 0183957 1088 1656refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019121120190816
6834378583716 0 0181077 1088 1624refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019121120190816
6852673403708 0 0181077 1088 1624refgcc_-O2_-fomit-frame-pointer2019121120190816
7060847733432 0 0180113 1072 1624refgcc_-Os_-fomit-frame-pointer2019121120190816
7150376244944 0 0188005 1088 1656refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019121120190816
7561794283932 0 0181349 1088 1624refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019121120190816
11593705224240 0 0182862 1000 1640refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019121120190816
11717720996184 0 0186689 1072 1624refcc2019121120190816
13467804567800 0 0188405 1088 1656refgcc_-funroll-loops_-fno-schedule-insns_-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