Implementation notes: aarch64, hikey960spare, crypto_hash/sha3256

Computer: hikey960spare
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20191221
Operation: crypto_hash
Primitive: sha3256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
03136 0 027634 920 776oncore32bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
233865900 0 016281 912 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
23386772 0 029242 920 744oncore64bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
23386784 0 029290 920 744oncore64bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
23386688 0 028494 904 744oncore64bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
249751748 0 031834 920 776oncore64bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
320406072 0 018130 920 776kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
350796004 0 016281 912 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
350795760 0 015333 896 744kcp/optimized1600ARMv8Agcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
416601496 0 024418 920 744oncore32bitsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
499501332 0 023550 904 744oncore32bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017
818511424 0 024306 920 744oncore32bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121420191017

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/optimized1600AVX2
Security model: unknown
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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: 4, 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
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: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: 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_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: 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

Namespace violations

Implementation: kcp/optimized1600ARMv8A
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_Sponge T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeAbsorb T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeAbsorbLastFewBits T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeInitialize T
KeccakSpongeWidth1600.o KeccakWidth1600_12rounds_SpongeSqueeze T
KeccakSpongeWidth1600.o KeccakWidth1600_Sponge T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeAbsorb T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeAbsorbLastFewBits T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeInitialize T
KeccakSpongeWidth1600.o KeccakWidth1600_SpongeSqueeze T
keccak.o KeccakP1600_AddByte T
keccak.o KeccakP1600_AddBytes T
keccak.o KeccakP1600_ExtractAndAddBytes T
keccak.o KeccakP1600_ExtractBytes T
keccak.o KeccakP1600_Initialize T
keccak.o KeccakP1600_OverwriteBytes T
keccak.o KeccakP1600_OverwriteWithZeroes T
keccak.o KeccakP1600_Permute T
keccak.o KeccakP1600_Permute_12rounds T
keccak.o KeccakP1600_Permute_24rounds T
keccak.o KeccakP1600_Permute_Nrounds T

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