Implementation notes: aarch64, rockpi4, crypto_sign/gemss128

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_sign
Primitive: gemss128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1382360394848112 56 71396880 3384 6400refclang++_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120120190816
1383456538148200 56 71397112 3384 6400refclang++_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019120120190816
1383698638748112 56 71396880 3384 6400refclang++_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120120190816
1386509434159594 112 71417315 3440 6432refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
1386549866835362 112 71383377 3440 6432refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
1386594264332524 112 71379288 3440 6432refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120120190816
1389432193832287 112 71379189 3440 6432refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
1390840441228851 112 71380530 3424 6368refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
1391150521628859 112 71376394 3424 6368refg++_-Os_-fomit-frame-pointer2019120120190816
1396249419635306 112 71383425 3440 6432refg++_-O2_-fomit-frame-pointer2019120120190816
2327407768737714 112 71389756 3440 6432refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120120190816
2336383704255849 112 71401739 3440 6432refg++_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120120190816
2337108230132287 112 71379189 3440 6432refg++_-O_-fomit-frame-pointer2019120120190816
2340154600738441 112 71390394 3440 6432refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120120190816
2341035281928879 112 71380506 3424 6368refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120120190816
2345169990137745 112 71393874 3440 6432refg++_-O3_-fomit-frame-pointer2019120120190816
2352976598782579 112 71403649 3424 6432refg++2019120120190816
2353814988746829 112 71396713 3440 6432refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120120190816
2363841307128859 112 71376394 3424 6368refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120120190816
2387477627535499 112 71383794 3440 6432refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120120190816
2399543216048000 56 71396752 3384 6400refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2019120120190816
2419537372048112 56 71396880 3384 6400refclang++_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120120190816

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 [-Wdeprecated]
arith.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
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: 5, 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
clang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments opt

Compiler output

Implementation: opt
Security model: unknown
Compiler: g++
arith.c: In file included from config_HFE.h:483,
arith.c: from arith.h:5,
arith.c: from arith.c:1:
arith.c: mul.h:23:14: 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 [-Wdeprecated]
bit.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
printgf2x.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sign.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sign_openHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]

Number of similar (compiler,implementation) pairs: 5, 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
clang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -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 [-Wdeprecated]
arith.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
bit.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
changeEquationMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
changeVariableMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
determinant.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
determinantnv.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
encrypt_keypairHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
evaluateMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
evaluateMQSnoconst.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
frobeniusMap.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
genCanonicalBasis.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
genHFEtab.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
genSecretMQS.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
initMatrixIdn.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
init_list_differences.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
invMatrix.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
invMatrixnv.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
matVecProduct.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mul.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
printgf2x.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
rem.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sign.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
signHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
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:279:9: error: use of undeclared identifier 'free'
signHFE.c: free(F);
signHFE.c: ^
signHFE.c: 3 errors generated.

Number of similar (compiler,implementation) pairs: 5, 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
clang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments sse2

Compiler output

Implementation: sse2
Security model: unknown
Compiler: g++
signHFE.c: In file included from signHFE.h:4,
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:36: 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: config_HFE.h:462:36: note: 'malloc' is defined in header '<cstdlib>'; did you forget to '#include <cstdlib>'?
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:21: error: 'free' was not declared in this scope
signHFE.c: free(F);
signHFE.c: ^~~~
signHFE.c: signHFE.c:222:21: note: 'free' is defined in header '<cstdlib>'; did you forget to '#include <cstdlib>'?
signHFE.c: signHFE.c:279:9: error: 'free' was not declared in this scope
signHFE.c: free(F);
signHFE.c: ^~~~
signHFE.c: signHFE.c:279:9: note: 'free' is defined in header '<cstdlib>'; did you forget to '#include <cstdlib>'?

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