Implementation notes: aarch64, hikey960, crypto_hash/sha3256

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: sha3256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
07148 0 019733 896 744kcp/optimized1600ARMv8Agcc2019112720190816
05900 0 016281 912 744kcp/optimized1600ARMv8Agcc_-O_-fomit-frame-pointer2019112720190816
04260 0 030494 904 744oncore32bitsgcc_-funroll-loops2019112720190816
01944 0 029122 920 744oncore32bitsgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
0876 0 0136792 816 760oncore64bitsclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
0772 0 0135794 920 744oncore64bitsgcc_-O2_-fomit-frame-pointer2019112720190816
0688 0 0135046 904 744oncore64bitsgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
03044 0 0141346 920 776oncore64bitsgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
166506004 0 016281 912 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
249756072 0 018130 920 776kcp/optimized1600ARMv8Agcc_-O3_-fomit-frame-pointer2019112720190816
249757148 0 019733 896 744kcp/optimized1600ARMv8Agcc_-funroll-loops2019112720190816
249756088 0 019666 920 776kcp/optimized1600ARMv8Agcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
249755752 0 015333 896 744kcp/optimized1600ARMv8Agcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
249755900 0 016281 912 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
249786088 0 018130 920 776kcp/optimized1600ARMv8Agcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
266495760 0 015333 896 744kcp/optimized1600ARMv8Agcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
266496004 0 019329 912 744kcp/optimized1600ARMv8Agcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
266496020 0 019329 912 744kcp/optimized1600ARMv8Agcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
266491088 0 025928 816 760oncore32bitsclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112720190816
333005760 0 015333 896 744kcp/optimized1600ARMv8Agcc_-Os_-fomit-frame-pointer2019112720190816
333005892 0 019353 912 744kcp/optimized1600ARMv8Agcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
333006072 0 018130 920 776kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
350795760 0 015333 896 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
416256004 0 016281 912 744kcp/optimized1600ARMv8Agcc_-O2_-fomit-frame-pointer2019112720190816
416253136 0 028698 920 776oncore32bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
444151088 0 025928 816 760oncore32bitsclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816
499507148 0 019733 896 744kcp/optimized1600ARMv8Acc2019112720190816
499506020 0 016281 912 744kcp/optimized1600ARMv8Agcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
499505752 0 015333 896 744kcp/optimized1600ARMv8Agcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
499501424 0 025402 920 744oncore32bitsgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
499501332 0 024622 904 744oncore32bitsgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
499501424 0 025370 920 744oncore32bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
499501332 0 024622 904 744oncore32bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
499502384 0 0139702 904 744oncore64bitsgcc2019112720190816
49950772 0 0135754 920 744oncore64bitsgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
49950772 0 0135794 920 744oncore64bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112720190816
49950688 0 0135046 904 744oncore64bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112720190816
499566072 0 019666 920 776kcp/optimized1600ARMv8Agcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
499561392 0 025338 920 744oncore32bitsgcc_-O2_-fomit-frame-pointer2019112720190816
532985892 0 019353 912 744kcp/optimized1600ARMv8Agcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
532981392 0 025298 920 744oncore32bitsgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
62181876 0 0136776 816 760oncore64bitsclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
624453160 0 028730 920 776oncore32bitsgcc_-O3_-fomit-frame-pointer2019112720190816
666004260 0 030494 904 744oncore32bitsgcc2019112720190816
686731332 0 024622 904 744oncore32bitsgcc_-Os_-fomit-frame-pointer2019112720190816
701581424 0 025402 920 744oncore32bitsgcc_-O_-fomit-frame-pointer2019112720190816
701583176 0 028722 920 776oncore32bitsgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
701582064 0 0140322 920 744oncore64bitsgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
749252064 0 0140322 920 744oncore64bitsgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
832501944 0 029122 920 744oncore32bitsgcc_-funroll-loops_-O_-fomit-frame-pointer2019112720190816
915751856 0 028810 920 744oncore32bitsgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
915753624 0 030850 920 776oncore32bitsgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112720190816
915751896 0 028890 920 744oncore32bitsgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
915753680 0 030874 920 776oncore32bitsgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
915751332 0 024654 904 744oncore32bitsgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
915861332 0 024654 904 744oncore32bitsgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
936455900 0 016281 912 744kcp/optimized1600ARMv8Agcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
999001496 0 025474 920 744oncore32bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
1052371456 0 026272 816 760oncore32bitsclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112720190816
124875760 0 0135818 920 744oncore64bitsgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112720190816
124875688 0 0135078 904 744oncore64bitsgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112720190816
1248751748 0 0138386 920 776oncore64bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112720190816
124890760 0 0135818 920 744oncore64bitsgcc_-O_-fomit-frame-pointer2019112720190816
1665001088 0 025928 816 760oncore32bitsclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
166500784 0 0135842 920 744oncore64bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112720190816
174825876 0 0136792 816 760oncore64bitsclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112720190816
1748251748 0 0138394 920 776oncore64bitsgcc_-O3_-fomit-frame-pointer2019112720190816
174825688 0 0135046 904 744oncore64bitsgcc_-Os_-fomit-frame-pointer2019112720190816
1748251748 0 0138370 920 776oncore64bitsgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1748252384 0 0139702 904 744oncore64bitsgcc_-funroll-loops2019112720190816
1748252064 0 0140098 920 744oncore64bitsgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112720190816
1748253044 0 0141314 920 776oncore64bitsgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112720190816
1753954260 0 030494 904 744oncore32bitscc2019112720190816
1753952384 0 0139702 904 744oncore64bitscc2019112720190816
1753952064 0 0140138 920 744oncore64bitsgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112720190816
233860688 0 0135078 904 744oncore64bitsgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112720190816
245553876 0 0136792 816 760oncore64bitsclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112720190816

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: unknown
Compiler: cc
keccak.s: keccak.s: Assembler messages:
keccak.s: keccak.s:1: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:2: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:3: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:4: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:5: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:6: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:7: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:8: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:9: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:10: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:11: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:12: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:13: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:14: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:16: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:17: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:18: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:23: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:24: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:26: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:53: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:269: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:270: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:271: Error: junk at end of line, first unrecognized character is `@'
keccak.s: ...

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

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
keccak.s: keccak.s:1:2: error: unexpected token at start of statement
keccak.s: @
keccak.s: ^
keccak.s: keccak.s:2:3: error: unexpected token at start of statement
keccak.s: @ Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni,
keccak.s: ^
keccak.s: keccak.s:3:3: error: unexpected token at start of statement
keccak.s: @ Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby
keccak.s: keccak.s:3:21: error: invalid character in input
keccak.s: @ Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby
keccak.s: keccak.s:3:22: error: invalid character in input
keccak.s: @ Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby
keccak.s: keccak.s:4:3: error: unexpected token at start of statement
keccak.s: @ denoted as "the implementer".
keccak.s: ^
keccak.s: keccak.s:5:2: error: unexpected token at start of statement
keccak.s: @
keccak.s: ^
keccak.s: keccak.s:6:3: error: unexpected token at start of statement
keccak.s: @ For more information, feedback or questions, please refer to our websites:
keccak.s: ^
keccak.s: keccak.s:7:3: error: unexpected token at start of statement
keccak.s: @ http://keccak.noekeon.org/
keccak.s: ^
keccak.s: keccak.s:8:3: error: unexpected token at start of statement
keccak.s: ...

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

Compiler output

Implementation: kcp/optimized1600ARMv8A
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
keccak.s: <instantiation>:18:18: error: invalid operand for instruction
keccak.s: mov v5.2d[0], v0.2d[1] // v5 = (A[4] ^ A[14]) || ????
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: KeccakRound
keccak.s: ^
keccak.s: <instantiation>:23:18: error: invalid operand for instruction
keccak.s: mov v4.2d[1], v3.2d[0] // v4 = B[4] || B[3]
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: KeccakRound
keccak.s: ^
keccak.s: <instantiation>:57:18: error: expected compatible register or logical immediate
keccak.s: mov x11, v20.2d[0] // x11 = A[1]
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: KeccakRound
keccak.s: ^
keccak.s: <instantiation>:2:18: error: expected compatible register or logical immediate
keccak.s: mov x10, v25.2d[0]
keccak.s: ^
keccak.s: <instantiation>:59:5: note: while in macro instantiation
keccak.s: RhoPi v25.2d[0], x11, x10, 1 // A[10] = ROTL64(A[1], 1)
keccak.s: ^
keccak.s: keccak.s:524:5: note: while in macro instantiation
keccak.s: ...

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

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
KeccakSpongeWidth1600.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
SHA3-256.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
KeccakP-1600-AVX2.cpp: In file included from KeccakP-1600-AVX2.cpp:18:
KeccakP-1600-AVX2.cpp: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/x86intrin.h:27:
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:48:10: error: use of undeclared identifier '__builtin_ia32_readeflags_u32'
KeccakP-1600-AVX2.cpp: return __builtin_ia32_readeflags_u32();
KeccakP-1600-AVX2.cpp: ^
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:54:3: error: use of undeclared identifier '__builtin_ia32_writeeflags_u32'
KeccakP-1600-AVX2.cpp: __builtin_ia32_writeeflags_u32(__f);
KeccakP-1600-AVX2.cpp: ^
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:60:10: error: use of undeclared identifier '__builtin_ia32_rdpmc'; did you mean '__builtin_arm_dmb'?
KeccakP-1600-AVX2.cpp: return __builtin_ia32_rdpmc(__A);
KeccakP-1600-AVX2.cpp: ^
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:60:10: note: '__builtin_arm_dmb' declared here
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:60:10: error: argument to '__builtin_arm_dmb' must be a constant integer
KeccakP-1600-AVX2.cpp: return __builtin_ia32_rdpmc(__A);
KeccakP-1600-AVX2.cpp: ^ ~~~
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:66:10: error: use of undeclared identifier '__builtin_ia32_rdtsc'
KeccakP-1600-AVX2.cpp: return __builtin_ia32_rdtsc();
KeccakP-1600-AVX2.cpp: ^
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:72:10: error: use of undeclared identifier '__builtin_ia32_rdtscp'; did you mean '__builtin_arm_rsrp'?
KeccakP-1600-AVX2.cpp: return __builtin_ia32_rdtscp(__A);
KeccakP-1600-AVX2.cpp: ^
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:72:10: note: '__builtin_arm_rsrp' declared here
KeccakP-1600-AVX2.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/ia32intrin.h:72:32: error: cannot initialize a parameter of type 'const char *' with an lvalue of type 'unsigned int *'
KeccakP-1600-AVX2.cpp: return __builtin_ia32_rdtscp(__A);
KeccakP-1600-AVX2.cpp: ^~~
KeccakP-1600-AVX2.cpp: ...

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

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: unknown
Compiler: g++
KeccakP-1600-AVX2.cpp: KeccakP-1600-AVX2.cpp:18:27: fatal error: x86intrin.h: No such file or directory
KeccakP-1600-AVX2.cpp: #include <x86intrin.h>
KeccakP-1600-AVX2.cpp: ^
KeccakP-1600-AVX2.cpp: compilation terminated.

Number of similar (compiler,implementation) pairs: 17, namely:
CompilerImplementations
g++ kcp/optimized1600AVX2
g++ -O2 -fomit-frame-pointer kcp/optimized1600AVX2
g++ -O3 -fomit-frame-pointer kcp/optimized1600AVX2
g++ -O -fomit-frame-pointer kcp/optimized1600AVX2
g++ -Os -fomit-frame-pointer kcp/optimized1600AVX2
g++ -fno-schedule-insns -O2 -fomit-frame-pointer kcp/optimized1600AVX2
g++ -fno-schedule-insns -O3 -fomit-frame-pointer kcp/optimized1600AVX2
g++ -fno-schedule-insns -O -fomit-frame-pointer kcp/optimized1600AVX2
g++ -fno-schedule-insns -Os -fomit-frame-pointer kcp/optimized1600AVX2
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer kcp/optimized1600AVX2
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer kcp/optimized1600AVX2
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer kcp/optimized1600AVX2
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer kcp/optimized1600AVX2
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv kcp/optimized1600AVX2
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv kcp/optimized1600AVX2
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv kcp/optimized1600AVX2
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv kcp/optimized1600AVX2

Compiler output

Implementation: kcp/optimized1600AVX512
Security model: unknown
Compiler: cc
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:24:23: fatal error: smmintrin.h: No such file or directory
KeccakP-1600-AVX512.c: #include <smmintrin.h>
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: compilation terminated.

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

Compiler output

Implementation: kcp/optimized1600AVX512
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
KeccakP-1600-AVX512.c: In file included from KeccakP-1600-AVX512.c:24:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/smmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/tmmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/pmmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/emmintrin.h:27:
KeccakP-1600-AVX512.c: In file included from /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/xmmintrin.h:27:
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
KeccakP-1600-AVX512.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakP-1600-AVX512.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
KeccakP-1600-AVX512.c: ...

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

Compiler output

Implementation: openssl
Security model: unknown
Compiler: cc
hash.c: hash.c: In function 'crypto_hash_sha3256_openssl':
hash.c: hash.c:14:19: warning: implicit declaration of function 'EVP_sha3_256' [-Wimplicit-function-declaration]
hash.c: if (EVP_MD_size(EVP_sha3_256()) != crypto_hash_BYTES) ok = 0;
hash.c: ^~~~~~~~~~~~
hash.c: hash.c:14:19: warning: passing argument 1 of 'EVP_MD_size' makes pointer from integer without a cast [-Wint-conversion]
hash.c: In file included from hash.c:2:0:
hash.c: /usr/include/openssl/evp.h:410:5: note: expected 'const EVP_MD * {aka const struct evp_md_st *}' but argument is of type 'int'
hash.c: int EVP_MD_size(const EVP_MD *md);
hash.c: ^~~~~~~~~~~
hash.c: hash.c:15:36: warning: passing argument 2 of 'EVP_DigestInit_ex' makes pointer from integer without a cast [-Wint-conversion]
hash.c: if (ok) ok = EVP_DigestInit_ex(x,EVP_sha3_256(),NULL);
hash.c: ^~~~~~~~~~~~
hash.c: In file included from hash.c:2:0:
hash.c: /usr/include/openssl/evp.h:507:12: note: expected 'const EVP_MD * {aka const struct evp_md_st *}' but argument is of type 'int'
hash.c: __owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,
hash.c: ^~~~~~~~~~~~~~~~~
try.c: crypto_hash_sha3256.a(hash.o): In function `crypto_hash_sha3256_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `EVP_sha3_256'
try.c: hash.c:(.text+0x...): undefined reference to `EVP_sha3_256'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: openssl
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
hash.c: hash.c:14:19: warning: implicit declaration of function 'EVP_sha3_256' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: if (EVP_MD_size(EVP_sha3_256()) != crypto_hash_BYTES) ok = 0;
hash.c: ^
hash.c: hash.c:14:19: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'const EVP_MD *' (aka 'const struct evp_md_st *') [-Wint-conversion]
hash.c: if (EVP_MD_size(EVP_sha3_256()) != crypto_hash_BYTES) ok = 0;
hash.c: ^~~~~~~~~~~~~~
hash.c: /usr/include/openssl/evp.h:410:31: note: passing argument to parameter 'md' here
hash.c: int EVP_MD_size(const EVP_MD *md);
hash.c: ^
hash.c: hash.c:15:36: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'const EVP_MD *' (aka 'const struct evp_md_st *') [-Wint-conversion]
hash.c: if (ok) ok = EVP_DigestInit_ex(x,EVP_sha3_256(),NULL);
hash.c: ^~~~~~~~~~~~~~
hash.c: /usr/include/openssl/evp.h:507:61: note: passing argument to parameter 'type' here
hash.c: __owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,
hash.c: ^
hash.c: 3 warnings generated.
try.c: crypto_hash_sha3256.a(hash.o): In function `crypto_hash_sha3256_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `EVP_sha3_256'
try.c: hash.c:(.text+0x...): undefined reference to `EVP_sha3_256'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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