Implementation notes: aarch64, hikey960, crypto_hash/gimli24v1

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: gimli24v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
0984 0 012096 816 760littleendianclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
01296 0 013154 920 776littleendiangcc_-O3_-fomit-frame-pointer2019112620190816
499501236 0 014409 912 744littleendiangcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
58275984 0 012112 816 760littleendianclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
666001192 0 014401 912 744littleendiangcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
666001228 0 014625 912 744littleendiangcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
70158984 0 012112 816 760littleendianclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
701581288 0 013138 920 776littleendiangcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
74925480 0 010673 912 744littleendiangcc_-O_-fomit-frame-pointer2019112620190816
801001200 0 013034 920 776littleendiangcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
81851984 0 012112 816 760littleendianclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
832501280 0 014794 920 776littleendiangcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
979001200 0 014682 920 776littleendiangcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
105237480 0 010673 912 744littleendiangcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
116550420 0 09949 896 744littleendiangcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
116930468 0 010633 912 744littleendiangcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
1243621320 0 014521 912 744refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
124875480 0 010601 912 744littleendiangcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
1403161228 0 014625 912 744littleendiangcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
144365852 0 011952 816 760refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112620190816
163576468 0 010633 912 744littleendiangcc_-O2_-fomit-frame-pointer2019112620190816
163702420 0 09949 896 744littleendiangcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
174825404 0 09901 896 744littleendiangcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
175395404 0 09901 896 744littleendiangcc_-Os_-fomit-frame-pointer2019112620190816
175395404 0 09901 896 744littleendiangcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
2164501372 0 014874 920 776refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112620190816
274956852 0 011976 816 760refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112620190816
283050852 0 011976 816 760refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112620190816
291375852 0 011976 816 760refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112620190816
373870484 0 010681 912 744littleendiangcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
3738701372 0 013210 920 776refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112620190816
3996001372 0 014842 920 776refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
407925820 0 011009 912 744refgcc_-O_-fomit-frame-pointer2019112620190816
407925820 0 011009 912 744refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
4079251204 0 014593 912 744refgcc_-funroll-loops_-O_-fomit-frame-pointer2019112620190816
407925820 0 011009 912 744refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112620190816
4162501320 0 014481 912 744refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112620190816
424575784 0 010277 896 744refgcc_-Os_-fomit-frame-pointer2019112620190816
424575784 0 010277 896 744refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
424575784 0 010309 896 744refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112620190816
424575784 0 010309 896 744refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112620190816
432900948 0 011105 912 744refgcc_-O2_-fomit-frame-pointer2019112620190816
520375932 0 011049 912 744refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112620190816
5244751356 0 013178 920 776refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112620190816
5846501372 0 013218 920 776refgcc_-O3_-fomit-frame-pointer2019112620190816
6411021204 0 014593 912 744refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112620190816
799200948 0 011105 912 744refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112620190816
11459141096 0 013622 904 744littleendiangcc_-funroll-loops2019112620190816
13569751096 0 013622 904 744littleendiancc2019112620190816
14954801096 0 013622 904 744littleendiangcc2019112620190816
1495480784 0 010277 896 744refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112620190816
21978001612 0 014134 904 744refgcc_-funroll-loops2019112620190816
29699301612 0 014134 904 744refcc2019112620190816
60439501612 0 014134 904 744refgcc2019112620190816

Compiler output

Implementation: sse
Security model: unknown
Compiler: cc
gimli_hash.c: In file included from gimli_hash.c:5:0:
gimli_hash.c: gimli.inc:1:23: 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: 46, 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
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
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
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ssealt
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ssealt
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ssealt
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv 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-3.8/bin/../lib/clang/3.8.1/include/x86intrin.h:29:
gimli_hash.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/immintrin.h:27:
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.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
gimli_hash.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
gimli_hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimli_hash.c: ...

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