Implementation notes: aarch64, hikey960, crypto_kem/mceliece460896

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: mceliece460896
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
107484360492 0 083863 880 1584vecclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
162337593872 0 0119182 976 1568vecgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
1698504236956 0 0262462 976 1600vecgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
171495094596 0 0119950 976 1568vecgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
183150097404 0 0123038 976 1568vecgcc_-funroll-loops_-O_-fomit-frame-pointer2019120920190816
198135061360 0 084631 880 1584vecclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120920190816
202297597404 0 0123038 976 1568vecgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
251388960492 0 083863 880 1584vecclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816
2572425165816 0 0189758 976 1600vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
257607048276 0 069850 960 1568vecgcc_-Os_-fomit-frame-pointer2019120920190816
2597400175300 0 0199230 976 1600vecgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
2664000237468 0 0262974 976 1600vecgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
300152356088 0 078494 976 1568vecgcc_-O2_-fomit-frame-pointer2019120920190816
309690060492 0 083863 880 1584vecclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
311355048356 0 070106 960 1568vecgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
314306548276 0 069850 960 1568vecgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
354271357416 0 079774 976 1568vecgcc_-O_-fomit-frame-pointer2019120920190816
4109975175888 0 0199742 976 1600vecgcc_-O3_-fomit-frame-pointer2019120920190816
465965857416 0 079774 976 1568vecgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
466854256500 0 078750 976 1568vecgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
538275957428 0 079774 976 1568vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
710353055432 0 077726 976 1568vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
736762548356 0 070106 960 1568vecgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
771044488542 0 0114010 960 1568vecgcc_-funroll-loops2019120920190816
840825048308 0 069850 960 1568vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
1446052588542 0 0114010 960 1568veccc2019120920190816
5710950088542 0 0114010 960 1568vecgcc2019120920190816
12246103816324 0 039751 880 1584refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
132908625160072 0 0185752 984 1600refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
15821662599056 0 0123032 984 1600refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
1640874809432 0 031130 960 1568refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
16515135030104 0 055374 976 1568refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
16826490029692 0 055118 976 1568refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
16955870410612 0 032862 976 1568refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
177006150104324 0 0128408 984 1600refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
22312319416844 0 040263 880 1584refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120920190816
25546249511364 0 033886 976 1568refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
269167091158236 0 0183960 984 1600refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
2715684199356 0 030874 960 1568refgcc_-Os_-fomit-frame-pointer2019120920190816
281693025106264 0 0130200 984 1600refgcc_-O3_-fomit-frame-pointer2019120920190816
2891938509488 0 031130 960 1568refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
3032620619356 0 030874 960 1568refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
32152820016324 0 039751 880 1584refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816
32734732516324 0 039751 880 1584refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
4399491259432 0 031130 960 1568refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
45319289410596 0 032862 976 1568refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
84875872510552 0 032862 976 1568refgcc_-O2_-fomit-frame-pointer2019120920190816

Test failure

Implementation: ref
Security model: unknown
Compiler: cc
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 7, namely:
CompilerImplementations
cc ref
gcc ref
gcc -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref

Compiler output

Implementation: avx
Security model: unknown
Compiler: cc
benes.c: In file included from benes.h:8:0,
benes.c: from benes.c:5:
benes.c: vec128.h:12:23: fatal error: smmintrin.h: No such file or directory
benes.c: #include <smmintrin.h>
benes.c: ^
benes.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 46, namely:
CompilerImplementations
cc avx
gcc avx
gcc -O2 -fomit-frame-pointer avx
gcc -O3 -fomit-frame-pointer avx
gcc -O -fomit-frame-pointer avx
gcc -Os -fomit-frame-pointer avx
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx
gcc -fno-schedule-insns -O -fomit-frame-pointer avx
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx
gcc -funroll-loops avx
gcc -funroll-loops -O2 -fomit-frame-pointer avx
gcc -funroll-loops -O3 -fomit-frame-pointer avx
gcc -funroll-loops -O -fomit-frame-pointer avx
gcc -funroll-loops -Os -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv avx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv avx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv avx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv avx
cc sse
gcc sse
gcc -O2 -fomit-frame-pointer sse
gcc -O3 -fomit-frame-pointer sse
gcc -O -fomit-frame-pointer sse
gcc -Os -fomit-frame-pointer sse
gcc -fno-schedule-insns -O2 -fomit-frame-pointer sse
gcc -fno-schedule-insns -O3 -fomit-frame-pointer sse
gcc -fno-schedule-insns -O -fomit-frame-pointer sse
gcc -fno-schedule-insns -Os -fomit-frame-pointer sse
gcc -funroll-loops sse
gcc -funroll-loops -O2 -fomit-frame-pointer sse
gcc -funroll-loops -O3 -fomit-frame-pointer sse
gcc -funroll-loops -O -fomit-frame-pointer sse
gcc -funroll-loops -Os -fomit-frame-pointer sse
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer sse
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer sse
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer sse
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer sse
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv sse
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv sse
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv sse
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv sse

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
benes.c: In file included from benes.c:5:
benes.c: In file included from ./benes.h:8:
benes.c: In file included from ./vec128.h:12:
benes.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/smmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/tmmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/pmmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/emmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/xmmintrin.h:27:
benes.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:45:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
benes.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
benes.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
benes.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:69:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
benes.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
benes.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
benes.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:75:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
benes.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
benes.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
benes.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:81:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
benes.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
benes.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
benes.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:87:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
benes.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
benes.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
benes.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:93:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
benes.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
benes.c: ...

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