Implementation notes: aarch64, hikey960, crypto_kem/mceliece348864

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: mceliece348864
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
377570171476 0 0195342 976 1600vecgcc_-O3_-fomit-frame-pointer2019120920190816
59522862608 0 086119 880 1584vecclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
66600081860 0 0107086 976 1568vecgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
666000223772 0 0249358 976 1600vecgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
69739440932 0 063342 976 1568vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
699300165304 0 0189198 976 1600vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
74092586716 0 0112238 976 1568vecgcc_-funroll-loops_-O_-fomit-frame-pointer2019120920190816
970519169840 0 0193806 976 1600vecgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
108654362608 0 086119 880 1584vecclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816
109070681672 0 0107086 976 1568vecgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
110722562608 0 086119 880 1584vecclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
119880041288 0 063598 976 1568vecgcc_-O2_-fomit-frame-pointer2019120920190816
120712537472 0 059050 960 1568vecgcc_-Os_-fomit-frame-pointer2019120920190816
133200042724 0 065134 976 1568vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
134881242692 0 065134 976 1568vecgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
1436235225316 0 0250894 976 1600vecgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
156340837568 0 059306 960 1568vecgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
163465641332 0 063598 976 1568vecgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
188977537568 0 059306 960 1568vecgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
190665486716 0 0112238 976 1568vecgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
210622542692 0 065134 976 1568vecgcc_-O_-fomit-frame-pointer2019120920190816
311355037472 0 059050 960 1568vecgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
323465137548 0 059306 960 1568vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
542855267436 0 092938 960 1568vecgcc2019120920190816
939260967436 0 092938 960 1568veccc2019120920190816
1158997067436 0 092938 960 1568vecgcc_-funroll-loops2019120920190816
3376428328404 0 054014 976 1568refgcc_-funroll-loops_-O_-fomit-frame-pointer2019120920190816
3768168627644 0 052958 976 1568refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
4031559215884 0 039239 880 1584refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019120920190816
4051326115884 0 039239 880 1584refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019120920190816
5859135027884 0 053214 976 1568refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019120920190816
5947168510224 0 032510 976 1568refgcc_-O_-fomit-frame-pointer2019120920190816
7627864915884 0 039239 880 1584refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019120920190816
81551700154540 0 0180280 984 1600refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019120920190816
82983600100188 0 0124216 984 1600refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019120920190816
8893695828404 0 054014 976 1568refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
985513508508 0 030266 960 1568refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019120920190816
11141347510224 0 032510 976 1568refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019120920190816
114228917152932 0 0178488 984 1600refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
115468375102996 0 0127032 984 1600refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019120920190816
116345350104928 0 0129080 984 1600refgcc_-O3_-fomit-frame-pointer2019120920190816
13171315716380 0 039751 880 1584refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019120920190816
1379540148420 0 030010 960 1568refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019120920190816
1382814188352 0 030010 960 1568refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
1383164978352 0 030010 960 1568refgcc_-Os_-fomit-frame-pointer2019120920190816
1398273809472 0 031742 976 1568refgcc_-O2_-fomit-frame-pointer2019120920190816
1709750468420 0 030010 960 1568refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019120920190816
2818595259516 0 031998 976 1568refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019120920190816
2868129009512 0 031742 976 1568refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019120920190816
30559410010276 0 032766 976 1568refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019120920190816
36188542721604 0 046986 960 1568refcc2019120920190816

Test failure

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

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc ref
gcc -funroll-loops ref

Compiler output

Implementation: avx
Security model: unknown
Compiler: cc
benes.c: In file included from util.h:9: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 ./util.h:9:
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

Compiler output

Implementation: vec
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
fft_tr.c: Alarm clock

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments vec