Implementation notes: aarch64, hikey960, crypto_sign/gemss128

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_sign
Primitive: gemss128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
771105692732084 112 71379485 3480 6480refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
771287558432188 112 71379589 3480 6480refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019113020190816
772498669734467 112 71387954 3480 6480refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019113020190816
772953356729194 112 71377242 3464 6480refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2019113020190816
773861199384483 112 71405756 3464 6480refg++2019113020190816
775426836147393 112 71397393 3480 6480refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019113020190816
777315130334419 112 71383682 3480 6480refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2019113020190816
1441624432540552 56 71387947 3592 6448refclang++_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019113020190816
1444208512540652 56 71387979 3592 6448refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2019113020190816
1445846040029178 112 71377242 3464 6480refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019113020190816
1448543340036169 112 71388622 3480 6496refg++_-O3_-fomit-frame-pointer2019113020190816
1450847546340552 56 71387947 3592 6448refclang++_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019113020190816
1453439430136321 112 71388694 3480 6496refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2019113020190816

Test failure

Implementation: ref
Security model: unknown
Compiler: clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
g++ -O2 -fomit-frame-pointer ref
g++ -O -fomit-frame-pointer ref
g++ -Os -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
KAT_int.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
arith.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
arith.c: In file included from arith.c:1:
arith.c: In file included from ./arith.h:5:
arith.c: In file included from ./config_HFE.h:483:
arith.c: ./mul.h:23:14: fatal error: 'gf2x/gf2x_mul1.h' file not found
arith.c: #include <gf2x/gf2x_mul1.h>
arith.c: ^
arith.c: 1 error 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: opt
Security model: unknown
Compiler: g++
arith.c: In file included from config_HFE.h:483:0,
arith.c: from arith.h:5,
arith.c: from arith.c:1:
arith.c: mul.h:23:32: fatal error: gf2x/gf2x_mul1.h: No such file or directory
arith.c: #include <gf2x/gf2x_mul1.h>
arith.c: ^
arith.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 17, namely:
CompilerImplementations
g++ opt
g++ -O2 -fomit-frame-pointer opt
g++ -O3 -fomit-frame-pointer opt
g++ -O -fomit-frame-pointer opt
g++ -Os -fomit-frame-pointer opt
g++ -fno-schedule-insns -O2 -fomit-frame-pointer opt
g++ -fno-schedule-insns -O3 -fomit-frame-pointer opt
g++ -fno-schedule-insns -O -fomit-frame-pointer opt
g++ -fno-schedule-insns -Os -fomit-frame-pointer opt
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer opt
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer opt
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer opt
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer opt
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv opt
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv opt
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv opt
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv opt

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
KAT_int.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
bit.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
printgf2x.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
sign.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
sign_openHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
signHFE.cpp: signHFE.cpp:241:26: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
signHFE.cpp: for(i=0;i<(NB_WORD_GFqv-1);++i)
signHFE.cpp: ~^~~~~~~~~~~~~~~~~
signHFE.cpp: 1 warning 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

Compiler output

Implementation: sse2
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
KAT_int.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
arith.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
bit.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
changeEquationMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
changeVariableMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
determinant.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
determinantnv.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
encrypt_keypairHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
evaluateMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
evaluateMQSnoconst.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
frobeniusMap.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
genCanonicalBasis.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
genHFEtab.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
genSecretMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
initMatrixIdn.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
init_list_differences.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
invMatrix.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
invMatrixnv.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
matVecProduct.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
mul.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
printgf2x.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
rem.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
sign.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
signHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
signHFE.c: signHFE.c:65:17: error: use of undeclared identifier 'malloc'
signHFE.c: UINT* F=MALLOC_HFEPOLY_EVAL;
signHFE.c: ^
signHFE.c: ./config_HFE.h:462:36: note: expanded from macro 'MALLOC_HFEPOLY_EVAL'
signHFE.c: #define MALLOC_HFEPOLY_EVAL (UINT*)malloc(NB_UINT_HFEPOLY_EVAL*sizeof(UINT));
signHFE.c: ^
signHFE.c: signHFE.c:222:21: error: use of undeclared identifier 'free'
signHFE.c: free(F);
signHFE.c: ^
signHFE.c: signHFE.c:234:26: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
signHFE.c: for(i=0;i<(NB_WORD_GFqv-1);++i)
signHFE.c: ~^~~~~~~~~~~~~~~~~
signHFE.c: signHFE.c:279:9: error: use of undeclared identifier 'free'
signHFE.c: free(F);
signHFE.c: ^
signHFE.c: 1 warning and 3 errors generated.

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

Compiler output

Implementation: sse2
Security model: unknown
Compiler: g++
signHFE.c: In file included from signHFE.h:4:0,
signHFE.c: from signHFE.c:1:
signHFE.c: signHFE.c: In function 'int signHFE(uint64_t*, const unsigned char*, size_t, const uint64_t*)':
signHFE.c: config_HFE.h:462:76: error: 'malloc' was not declared in this scope
signHFE.c: #define MALLOC_HFEPOLY_EVAL (UINT*)malloc(NB_UINT_HFEPOLY_EVAL*sizeof(UINT));
signHFE.c: ^
signHFE.c: signHFE.c:65:17: note: in expansion of macro 'MALLOC_HFEPOLY_EVAL'
signHFE.c: UINT* F=MALLOC_HFEPOLY_EVAL;
signHFE.c: ^~~~~~~~~~~~~~~~~~~
signHFE.c: signHFE.c:222:27: error: 'free' was not declared in this scope
signHFE.c: free(F);
signHFE.c: ^
signHFE.c: signHFE.c:279:15: error: 'free' was not declared in this scope
signHFE.c: free(F);
signHFE.c: ^

Number of similar (compiler,implementation) pairs: 17, namely:
CompilerImplementations
g++ sse2
g++ -O2 -fomit-frame-pointer sse2
g++ -O3 -fomit-frame-pointer sse2
g++ -O -fomit-frame-pointer sse2
g++ -Os -fomit-frame-pointer sse2
g++ -fno-schedule-insns -O2 -fomit-frame-pointer sse2
g++ -fno-schedule-insns -O3 -fomit-frame-pointer sse2
g++ -fno-schedule-insns -O -fomit-frame-pointer sse2
g++ -fno-schedule-insns -Os -fomit-frame-pointer sse2
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer sse2
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer sse2
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer sse2
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer sse2
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv sse2
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv sse2
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv sse2
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv sse2