Implementation notes: aarch64, supercoplxc, crypto_aead/morus1280128v2

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: morus1280128v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
464805396 0 020102 800 888refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090920190816
464805396 0 020102 800 888ref64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090920190816
466405396 0 020102 800 888refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090920190816
466405396 0 020102 800 888ref64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090920190816
468005396 0 020054 800 888refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090920190816
468005396 0 020102 800 888refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090920190816
468005396 0 020102 800 888ref64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090920190816
468805396 0 020054 800 888ref64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090920190816
480805356 0 020078 800 888refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090920190816
481605356 0 020078 800 888ref64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090920190816
486405908 0 021097 920 880refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090920190816
491205908 0 021097 920 880ref64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019090920190816
492006132 0 020744 912 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090920190816
492006132 0 020752 912 864ref64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019090920190816
499206072 0 021281 920 880refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090920190816
499206368 0 021112 912 864ref64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090920190816
500006368 0 021104 912 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090920190816
500006072 0 021281 920 880ref64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090920190816
501604792 0 018641 920 880ref64gcc_-O3_-fomit-frame-pointer2019090920190816
503204792 0 018641 920 880refgcc_-O3_-fomit-frame-pointer2019090920190816
503204776 0 016632 896 856refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090920190816
503204776 0 016632 896 856ref64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019090920190816
504004776 0 016632 896 856refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090920190816
504804652 0 017224 912 864refgcc_-O2_-fomit-frame-pointer2019090920190816
504804776 0 016632 896 856ref64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090920190816
507204652 0 017232 912 864ref64gcc_-O2_-fomit-frame-pointer2019090920190816
524004960 0 018825 920 880refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090920190816
524804960 0 018825 920 880ref64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090920190816
526404868 0 017424 912 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090920190816
526404868 0 017432 912 864ref64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090920190816
528804728 0 016528 896 856refgcc_-Os_-fomit-frame-pointer2019090920190816
528804728 0 016528 896 856refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090920190816
528804728 0 016528 896 856ref64gcc_-Os_-fomit-frame-pointer2019090920190816
528804728 0 016528 896 856ref64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090920190816
828006860 0 022848 912 864ref64gcc_-funroll-loops_-O_-fomit-frame-pointer2019090920190816
828806860 0 022840 912 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090920190816
828806860 0 022840 912 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090920190816
828806860 0 022848 912 864ref64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090920190816
832805444 0 018200 912 864refgcc_-O_-fomit-frame-pointer2019090920190816
832805444 0 018200 912 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090920190816
832805444 0 018208 912 864ref64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090920190816
833605444 0 018208 912 864ref64gcc_-O_-fomit-frame-pointer2019090920190816
50840014632 0 035785 904 864refcc2019090920190816
50840014632 0 035785 904 864refgcc2019090920190816
50840014632 0 035785 904 864refgcc_-funroll-loops2019090920190816
50840014632 0 035793 904 864ref64cc2019090920190816
50840014632 0 035793 904 864ref64gcc2019090920190816
50840014632 0 035793 904 864ref64gcc_-funroll-loops2019090920190816

Compiler output

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

Number of similar (compiler,implementation) pairs: 38, 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
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

Compiler output

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

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