Implementation notes: aarch64, supercoplxc, crypto_kem/mceliece8192128

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_kem
Primitive: mceliece8192128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6032960105484 0 0142208 952 1552vecgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
6127280119054 0 0155959 864 1584vecclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019112920190816
6156960111242 0 0148167 864 1584vecclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112920190816
6288080182004 0 0217824 952 1568vecgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
6328640106388 0 0143248 952 1552vecgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
6423680117998 0 0154935 864 1584vecclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112920190816
6629440117998 0 0154935 864 1584vecclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112920190816
6636480249816 0 0287064 952 1568vecgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
6653440117998 0 0154935 864 1584vecclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112920190816
6712320183720 0 0219608 952 1568vecgcc_-O3_-fomit-frame-pointer2019112920190816
6747920249788 0 0286968 952 1568vecgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
7808560108008 0 0145944 952 1552vecgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
7825520108008 0 0145944 952 1552vecgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
1064128063952 0 097894 936 1544vecgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
1067264063952 0 097894 936 1544vecgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
1110304063800 0 097686 936 1544vecgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
1120744063800 0 097686 936 1544vecgcc_-Os_-fomit-frame-pointer2019112920190816
1139256071508 0 0106168 952 1552vecgcc_-O2_-fomit-frame-pointer2019112920190816
1252536071852 0 0106496 952 1552vecgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
1327592073572 0 0108264 952 1552vecgcc_-O_-fomit-frame-pointer2019112920190816
1333144073572 0 0108264 952 1552vecgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
602519680165356 0 0202682 960 1568refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
628511760106516 0 0142482 960 1568refgcc_-O3_-fomit-frame-pointer2019112820190816
657897120164872 0 0202162 960 1568refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
757343600104400 0 0140346 960 1568refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
83123264031320 0 068343 864 1584refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019112820190816
83704264031944 0 068999 864 1584refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112920190816
84229536031944 0 068999 864 1584refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112920190816
84325592031944 0 068999 864 1584refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112920190816
86828800029656 0 066695 864 1584refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112920190816

Test failure

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

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

Compiler output

Implementation: avx
Security model: unknown
Compiler: cc
benes.c: In file included from benes.h:8,
benes.c: from benes.c:5:
benes.c: vec128.h:12:10: 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: 38, 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
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

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-7/lib/clang/7.0.1/include/smmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/tmmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/pmmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/emmintrin.h:27:
benes.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/xmmintrin.h:27:
benes.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64: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-7/lib/clang/7.0.1/include/mmintrin.h:143: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-7/lib/clang/7.0.1/include/mmintrin.h:173: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-7/lib/clang/7.0.1/include/mmintrin.h:203: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-7/lib/clang/7.0.1/include/mmintrin.h:230: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-7/lib/clang/7.0.1/include/mmintrin.h:253: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: 10, 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 -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -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
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments sse