Implementation notes: aarch64, supercoplxc, crypto_hash/gimli24v1

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: gimli24v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
104400696 0 013502 800 768littleendianclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
1065601712 0 013409 896 760littleendiangcc_-O3_-fomit-frame-pointer2019090120190816
106960988 0 013846 800 768littleendianclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
1072001688 0 014753 896 760littleendiangcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
111440996 0 013854 800 768littleendianclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
111440996 0 013854 800 768littleendianclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
111440996 0 013854 800 768littleendianclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
1141601712 0 014753 896 760littleendiangcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
1151201292 0 013784 888 744littleendiangcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
1200801716 0 013401 896 760littleendiangcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
1256801240 0 013816 888 744littleendiangcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
202480532 0 010240 872 736littleendiangcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
202640532 0 010240 872 736littleendiangcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
208640488 0 010136 872 736littleendiangcc_-Os_-fomit-frame-pointer2019090120190816
208640488 0 010136 872 736littleendiangcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
216320580 0 011000 888 744littleendiangcc_-O2_-fomit-frame-pointer2019090120190816
2187201292 0 015008 888 744littleendiangcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
2187201292 0 015008 888 744littleendiangcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
223120576 0 010936 888 744littleendiangcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
262400580 0 011072 888 744littleendiangcc_-O_-fomit-frame-pointer2019090120190816
262400580 0 011072 888 744littleendiangcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
3396001752 0 014598 800 768refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
3510401740 0 014590 800 768refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
3510401740 0 014590 800 768refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
3510401740 0 014590 800 768refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
3524001764 0 014558 800 768refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
4829601100 0 014121 896 760refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
4918401088 0 014137 896 760refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
4932801076 0 012761 896 760refgcc_-O3_-fomit-frame-pointer2019090120190816
5067201088 0 013560 888 744refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
510880736 0 011136 888 744refgcc_-O2_-fomit-frame-pointer2019090120190816
5152801108 0 013672 888 744refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
5958401060 0 012729 896 760refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
601360728 0 011080 888 744refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
12418401076 0 011584 888 744refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
12441601076 0 011584 888 744refgcc_-O_-fomit-frame-pointer2019090120190816
12522401424 0 015152 888 744refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
12523201424 0 015152 888 744refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
1342320924 0 010584 872 736refgcc_-Os_-fomit-frame-pointer2019090120190816
1342320924 0 010648 872 736refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
1342320924 0 010648 872 736refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
1349280924 0 010584 872 736refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
17825601208 0 018041 880 744littleendiancc2019090120190816
17826401208 0 018041 880 744littleendiangcc2019090120190816
18995201208 0 018041 880 744littleendiangcc_-funroll-loops2019090120190816
75886401804 0 018657 880 744refgcc2019090120190816
75910401804 0 018657 880 744refgcc_-funroll-loops2019090120190816
78345601804 0 018657 880 744refcc2019090120190816

Compiler output

Implementation: sse
Security model: unknown
Compiler: cc
gimli_hash.c: In file included from gimli_hash.c:5:
gimli_hash.c: gimli.inc:1:10: fatal error: x86intrin.h: No such file or directory
gimli_hash.c: #include <x86intrin.h>
gimli_hash.c: ^~~~~~~~~~~~~
gimli_hash.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 38, namely:
CompilerImplementations
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
cc ssealt
gcc ssealt
gcc -O2 -fomit-frame-pointer ssealt
gcc -O3 -fomit-frame-pointer ssealt
gcc -O -fomit-frame-pointer ssealt
gcc -Os -fomit-frame-pointer ssealt
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ssealt
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ssealt
gcc -fno-schedule-insns -O -fomit-frame-pointer ssealt
gcc -fno-schedule-insns -Os -fomit-frame-pointer ssealt
gcc -funroll-loops ssealt
gcc -funroll-loops -O2 -fomit-frame-pointer ssealt
gcc -funroll-loops -O3 -fomit-frame-pointer ssealt
gcc -funroll-loops -O -fomit-frame-pointer ssealt
gcc -funroll-loops -Os -fomit-frame-pointer ssealt
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ssealt
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ssealt
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ssealt
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ssealt

Compiler output

Implementation: sse
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
gimli_hash.c: In file included from gimli_hash.c:5:
gimli_hash.c: In file included from ./gimli.inc:1:
gimli_hash.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/x86intrin.h:29:
gimli_hash.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/immintrin.h:28:
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.c: ...

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