Implementation notes: aarch64, hikey960, crypto_aead/morus1280128v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: morus1280128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
06896 0 019282 936 864refgcc_-O2_-fomit-frame-pointer2019112820190816
04096 0 015734 920 864ref64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112820190816
83256768 0 019090 936 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112820190816
83257260 0 019730 936 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112820190816
83257388 0 023058 936 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112820190816
83256904 0 019290 936 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112820190816
83257852 0 021931 944 896refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112820190816
88837804 0 021891 944 896refgcc_-O3_-fomit-frame-pointer2019112820190816
166489844 0 023923 944 896ref64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112820190816
166503972 0 016912 816 880refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112820190816
166507684 0 021723 944 896refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112820190816
166507136 0 022490 936 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112820190816
166507804 0 023507 944 896refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112820190816
166507064 0 022458 936 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112820190816
166507652 0 023323 944 896refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112820190816
166507388 0 023058 936 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112820190816
166502792 0 014422 920 864refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112820190816
166509788 0 023875 944 896ref64gcc_-O3_-fomit-frame-pointer2019112820190816
166504096 0 015734 920 864ref64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112820190816
166509788 0 025491 944 896ref64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019112820190816
166509692 0 025363 944 896ref64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112820190816
166504168 0 016562 936 864ref64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112820190816
166523972 0 016928 816 880refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112820190816
166527260 0 019738 936 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112820190816
166525532 0 018488 816 880ref64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112820190816
177664240 0 016570 936 864ref64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112820190816
187295532 0 018472 816 880ref64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112820190816
199894100 0 015758 920 864ref64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019112820190816
233867260 0 019730 936 864refgcc_-O_-fomit-frame-pointer2019112820190816
233865532 0 018488 816 880ref64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112820190816
233869708 0 023747 944 896ref64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112820190816
249755532 0 018488 816 880ref64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112820190816
249754628 0 017106 936 864ref64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112820190816
291415816 0 021178 936 864ref64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019112820190816
333004176 0 016570 936 864ref64gcc_-O2_-fomit-frame-pointer2019112820190816
333004096 0 015734 920 864ref64gcc_-Os_-fomit-frame-pointer2019112820190816
333046144 0 021826 936 864ref64gcc_-funroll-loops_-O_-fomit-frame-pointer2019112820190816
374673972 0 016928 816 880refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112820190816
374674100 0 015758 920 864ref64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112820190816
416253972 0 016928 816 880refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112820190816
416252792 0 014422 920 864refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112820190816
416252812 0 014462 920 864refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112820190816
416252812 0 014462 920 864refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112820190816
467725872 0 021274 936 864ref64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112820190816
499504628 0 017114 936 864ref64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112820190816
541196144 0 021826 936 864ref64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112820190816
749252792 0 014422 920 864refgcc_-Os_-fomit-frame-pointer2019112820190816
999007432 0 024167 928 864refgcc2019112820190816
999007432 0 024167 928 864refgcc_-funroll-loops2019112820190816
999004628 0 017106 936 864ref64gcc_-O_-fomit-frame-pointer2019112820190816
1082257432 0 024167 928 864refcc2019112820190816
26643214328 0 031071 928 864ref64gcc_-funroll-loops2019112820190816
37462514328 0 031071 928 864ref64cc2019112820190816
69930014328 0 031071 928 864ref64gcc2019112820190816

Compiler output

Implementation: avx2
Security model: unknown
Compiler: cc
morus1280128v1avx2.c: morus1280128v1avx2.c:2:23: fatal error: immintrin.h: No such file or directory
morus1280128v1avx2.c: #include <immintrin.h>
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: compilation terminated.

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
morus1280128v1avx2.c: In file included from morus1280128v1avx2.c:2:
morus1280128v1avx2.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/immintrin.h:27:
morus1280128v1avx2.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
morus1280128v1avx2.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.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
morus1280128v1avx2.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.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
morus1280128v1avx2.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.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
morus1280128v1avx2.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.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
morus1280128v1avx2.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.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
morus1280128v1avx2.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:99:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1avx2.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
morus1280128v1avx2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:105:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1avx2.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
morus1280128v1avx2.c: ...

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

Compiler output

Implementation: sse2
Security model: unknown
Compiler: cc
morus1280128v1sse2.c: morus1280128v1sse2.c:2:23: fatal error: immintrin.h: No such file or directory
morus1280128v1sse2.c: #include <immintrin.h>
morus1280128v1sse2.c: ^
morus1280128v1sse2.c: compilation terminated.

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

Compiler output

Implementation: sse2
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
morus1280128v1sse2.c: In file included from morus1280128v1sse2.c:2:
morus1280128v1sse2.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/immintrin.h:27:
morus1280128v1sse2.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
morus1280128v1sse2.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.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
morus1280128v1sse2.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.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
morus1280128v1sse2.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.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
morus1280128v1sse2.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.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
morus1280128v1sse2.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.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
morus1280128v1sse2.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:99:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1sse2.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
morus1280128v1sse2.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1sse2.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/mmintrin.h:105:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
morus1280128v1sse2.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
morus1280128v1sse2.c: ...

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