Implementation notes: amd64, wyvern1, crypto_hash/shake256

Computer: wyvern1
Architecture: amd64
CPU ID: GenuineIntel-000306f2-bfebfbff
SUPERCOP version: 20191221
Operation: crypto_hash
Primitive: shake256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
14732743 0 066843 744 808oncore64bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
14768709 0 069979 744 808oncore64bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
14791606 0 065723 736 776oncore64bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
14803670 0 066587 744 808oncore64bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
1669822784 0 036020 736 808gil/singlefile_unrolledgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
170284465 0 017660 736 808gil/singlefilegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
185244119 0 014059 728 808gil/singlefilegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
187313937 0 013699 728 808gil/singlefilegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
1917822411 0 032371 728 808gil/singlefile_unrolledgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
2116122468 0 031303 712 776gil/singlefile_unrolledgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
215731997 0 010871 712 776gil/singlefilegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
2236845708 0 055499 728 808gil/singlefile_unrolledgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
317083772 0 029562 752 808oncore32bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
351971960 0 024578 752 808oncore32bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
352691841 0 023466 744 776oncore32bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
353041944 0 024299 744 808oncore32bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A

Compiler output

Implementation: kcp/optimized1600ARMv8A
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
keccak.s: keccak.s: Assembler messages:
keccak.s: keccak.s:258: Error: no such instruction: `movi v0.2d,'
keccak.s: keccak.s:259: Error: no such instruction: `movi v1.2d,'
keccak.s: keccak.s:260: Error: no such instruction: `movi v2.2d,'
keccak.s: keccak.s:261: Error: no such instruction: `movi v3.2d,'
keccak.s: keccak.s:262: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d},[x0],'
keccak.s: keccak.s:263: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d},[x0],'
keccak.s: keccak.s:264: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d},[x0],'
keccak.s: keccak.s:265: Error: no such instruction: `st1 { v0.d}[0],[x0],'
keccak.s: keccak.s:276: Error: no such instruction: `ldrb w3,[x0,x2]'
keccak.s: keccak.s:277: Error: no such instruction: `eor w3,w3,w1'
keccak.s: keccak.s:278: Error: invalid char '[' beginning operand 2 `[x0'
keccak.s: keccak.s:289: Error: too many memory references for `add'
keccak.s: keccak.s:290: Error: too many memory references for `sub'
keccak.s: keccak.s:291: Error: no such instruction: `b.cc KeccakP1600_AddBytes_Exit//length 0,move along'
keccak.s: keccak.s:293: Error: too many memory references for `sub'
keccak.s: keccak.s:294: Error: no such instruction: `b.cc KeccakP1600_AddBytes_Lanes//Jump if length is negative'
keccak.s: keccak.s:295: Error: no such instruction: `ld4 { v0.2d,v1.2d,v2.2d,v3.2d},[x0]'
keccak.s: keccak.s:296: Error: no such instruction: `ld4 { v4.2d,v5.2d,v6.2d,v7.2d},[x1],'
keccak.s: keccak.s:297: Error: no such instruction: `eor v0.16b,v0.16b,v4.16b'
keccak.s: keccak.s:298: Error: no such instruction: `eor v1.16b,v1.16b,v5.16b'
keccak.s: keccak.s:299: Error: no such instruction: `eor v2.16b,v2.16b,v6.16b'
keccak.s: keccak.s:300: Error: no such instruction: `eor v3.16b,v3.16b,v7.16b'
keccak.s: keccak.s:301: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d},[x0],'
keccak.s: keccak.s:302: Error: no such instruction: `b KeccakP1600_AddBytes_8LanesLoop'
keccak.s: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: unknown
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_Sponge(unsigned int, unsigned int, unsigned char const*, unsigned long, unsigned char, unsigned char*, unsigned long)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_StaticInitialize()'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Initialize(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddByte(void*, unsigned char, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddByte(void*, unsigned char, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_ExtractBytes(void const*, unsigned char*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_ExtractBytes(void const*, unsigned char*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakF1600_FastLoop_Absorb(void*, unsigned int, unsigned char const*, unsigned long)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_SpongeInitialize(KeccakWidth1600_SpongeInstanceStruct*, unsigned int, unsigned int)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_StaticInitialize()'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Initialize(void*)'
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_SpongeAbsorb(KeccakWidth1600_SpongeInstanceStruct*, unsigned char const*, unsigned long)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakF1600_FastLoop_Absorb(void*, unsigned int, unsigned char const*, unsigned long)'
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_SpongeAbsorbLastFewBits(KeccakWidth1600_SpongeInstanceStruct*, unsigned char)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddByte(void*, unsigned char, unsigned int)'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: unknown
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_Sponge(unsigned int, unsigned int, unsigned char const*, unsigned long, unsigned char, unsigned char*, unsigned long)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_StaticInitialize()'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Initialize(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakF1600_FastLoop_Absorb(void*, unsigned int, unsigned char const*, unsigned long)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddByte(void*, unsigned char, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddByte(void*, unsigned char, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_ExtractBytes(void const*, unsigned char*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_ExtractBytes(void const*, unsigned char*, unsigned int, unsigned int)'
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_SpongeInitialize(KeccakWidth1600_SpongeInstanceStruct*, unsigned int, unsigned int)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_StaticInitialize()'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Initialize(void*)'
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_SpongeAbsorb(KeccakWidth1600_SpongeInstanceStruct*, unsigned char const*, unsigned long)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakF1600_FastLoop_Absorb(void*, unsigned int, unsigned char const*, unsigned long)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddBytes(void*, unsigned char const*, unsigned int, unsigned int)'
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_Permute_24rounds(void*)'
try.cpp: crypto_hash_shake256.a(KeccakSpongeWidth1600.o): In function `KeccakWidth1600_SpongeAbsorbLastFewBits(KeccakWidth1600_SpongeInstanceStruct*, unsigned char)':
try.cpp: KeccakSpongeWidth1600.c:(.text+0x...): undefined reference to `KeccakP1600_AddByte(void*, unsigned char, unsigned int)'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2

Compiler output

Implementation: kcp/optimized1600AVX512
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c: In function 'KeccakP1600_AddBytes':
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:216:37: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi]
KeccakP-1600-AVX512.c: #define STORE_Lanes(a,m,v) _mm512_mask_storeu_epi64(a,m,v)
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:219:37: note: in expansion of macro 'STORE_Lanes'
KeccakP-1600-AVX512.c: #define STORE_8Lanes(a,v) STORE_Lanes(a,0xFF,v)
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:238:9: note: in expansion of macro 'STORE_8Lanes'
KeccakP-1600-AVX512.c: STORE_8Lanes( stateAsLanes, XOR(LOAD_8Lanes(stateAsLanes), LOAD_8Lanes((const UINT64*)data)));
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:45:0,
KeccakP-1600-AVX512.c: from KeccakP-1600-AVX512.c:26:
KeccakP-1600-AVX512.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h:5781:1: error: inlining failed in call to always_inline '_mm512_mask_storeu_epi64': target specific option mismatch
KeccakP-1600-AVX512.c: _mm512_mask_storeu_epi64 (void *__P, __mmask8 __U, __m512i __A)
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:216:37: error: called from here
KeccakP-1600-AVX512.c: #define STORE_Lanes(a,m,v) _mm512_mask_storeu_epi64(a,m,v)
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:219:37: note: in expansion of macro 'STORE_Lanes'
KeccakP-1600-AVX512.c: #define STORE_8Lanes(a,v) STORE_Lanes(a,0xFF,v)
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:238:9: note: in expansion of macro 'STORE_8Lanes'
KeccakP-1600-AVX512.c: STORE_8Lanes( stateAsLanes, XOR(LOAD_8Lanes(stateAsLanes), LOAD_8Lanes((const UINT64*)data)));
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:45:0,
KeccakP-1600-AVX512.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX512

Compiler output

Implementation: openssl
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function 'crypto_hash_shake256_openssl':
hash.c: hash.c:13:36: warning: implicit declaration of function 'EVP_shake256' [-Wimplicit-function-declaration]
hash.c: if (ok) ok = EVP_DigestInit_ex(x,EVP_shake256(),NULL);
hash.c: ^
hash.c: hash.c:13:36: warning: passing argument 2 of 'EVP_DigestInit_ex' 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:594:5: note: expected 'const EVP_MD * {aka const struct env_md_st *}' but argument is of type 'int'
hash.c: int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
hash.c: ^
hash.c: hash.c:15:16: warning: implicit declaration of function 'EVP_DigestFinalXOF' [-Wimplicit-function-declaration]
hash.c: if (ok) ok = EVP_DigestFinalXOF(x,out,crypto_hash_BYTES);
hash.c: ^
try.c: crypto_hash_shake256.a(hash.o): In function `crypto_hash_shake256_openssl':
try.c: hash.c:(.text+0x...): undefined reference to `EVP_shake256'
try.c: hash.c:(.text+0x...): undefined reference to `EVP_DigestFinalXOF'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE openssl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE openssl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE openssl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE openssl

Compiler output

Implementation: usekcp
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:1:55: fatal error: libkeccak.a.headers/KeccakSpongeWidth1600.h: No such file or directory
hash.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE usekcp
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE usekcp
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE usekcp
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE usekcp