Implementation notes: amd64, avx512imath, crypto_hash/echosp256

Computer: avx512imath
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20210125
Operation: crypto_hash
Primitive: echosp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3572919777 0 030499 780 928T:generic/opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
3675119952 0 031688 804 960T:generic/opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
3682322136 0 036664 804 960T:generic/opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
3684920013 0 031696 804 960T:generic/opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
4245219501 0 030482 804 936T:generic/opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
4341025417 0 040247 828 968T:generic/opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
4369820345 0 032351 828 968T:generic/opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
4580619708 0 031655 828 968T:generic/opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
6451125993 0 036818 788 936T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
6808235368 0 050007 812 968T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
6969628381 0 040167 812 968T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
7080530008 0 041855 812 968T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
7600118808 0 030655 812 968T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
7795322904 0 037543 812 968T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
8035117087 0 027922 788 936T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
8124018381 0 030167 812 968T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125

Compiler output

Implementation: T:aes/aes64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_hash_echosp256.a(echo64.o): relocation R_X86_64_32S against symbol `OLDCV' can not be used when making a PIE object; recompile with -fPIE
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 T:aes/aes64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes/aes64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes/aes64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes/aes64

Compiler output

Implementation: T:athlon/athlon64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo64.S: echo64.c: Assembler messages:
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,ah'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,al'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,bl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,bh'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,al'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,ah'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,bh'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,bl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,ah'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,al'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,bl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,bh'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,al'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,ah'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,bl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,bh'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,dl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,dh'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,ch'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,cl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,cl'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,ch'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl ebp,dh'
echo64.S: echo64.c:729: Error: no such instruction: `movzbl esi,dl'
echo64.S: ...

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

Compiler output

Implementation: T:core2/core2v64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo64.S: echo64.c: Assembler messages:
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,ah'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,al'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,bl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,bh'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,al'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,ah'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,bh'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,bl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,ah'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,al'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,bl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,bh'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,al'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,ah'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,bl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,bh'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,dl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,dh'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,ch'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,cl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,cl'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,ch'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl ebp,dh'
echo64.S: echo64.c:635: Error: no such instruction: `movzbl esi,dl'
echo64.S: ...

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

Compiler output

Implementation: T:generic/opt32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo32.c: echo32.c: In function 'PrintState':
echo32.c: echo32.c:37:4: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
echo32.c: 37 | printf ("row %d,col %d :",i,j);
echo32.c: | ^~~~~~
echo32.c: echo32.c:37:4: warning: incompatible implicit declaration of built-in function 'printf'
echo32.c: echo32.c:12:1: note: include '<stdio.h>' or provide a declaration of 'printf'
echo32.c: 11 | #include "api.h"
echo32.c: +++ |+#include <stdio.h>
echo32.c: 12 |
echo32.c: echo32.c:47:2: warning: incompatible implicit declaration of built-in function 'printf'
echo32.c: 47 | printf("-----------------------------------\n");
echo32.c: | ^~~~~~
echo32.c: echo32.c:47:2: note: include '<stdio.h>' or provide a declaration of 'printf'

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

Compiler output

Implementation: T:generic/opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo64.c: echo64.c: In function 'crypto_hash_echosp256_generic_opt64_timingleaks':
echo64.c: echo64.c:555:29: warning: passing argument 2 of 'Hash' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
echo64.c: 555 | if (Hash(CRYPTO_BYTES * 8,in,inlen * 8,out) == SUCCESS) return 0;
echo64.c: | ^~
echo64.c: echo64.c:542:46: note: expected 'BitSequence *' {aka 'unsigned char *'} but argument is of type 'const unsigned char *'
echo64.c: 542 | HashReturn Hash(int hashbitlen, BitSequence *data, DataLength databitlen, BitSequence *hashval)
echo64.c: | ~~~~~~~~~~~~~^~~~

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

Compiler output

Implementation: T:pentium/pentium4v64v1
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_hash_echosp256.a(echo32.o): relocation R_X86_64_32S against symbol `SHA3_R' can not be used when making a PIE object; recompile with -fPIE
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 T:pentium/pentium4v64v1
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:pentium/pentium4v64v1
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:pentium/pentium4v64v1
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:pentium/pentium4v64v1

Compiler output

Implementation: T:pentium/pentium4v64v2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_hash_echosp256.a(echo64.o): relocation R_X86_64_32S against symbol `SHA3_R' can not be used when making a PIE object; recompile with -fPIE
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 T:pentium/pentium4v64v2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:pentium/pentium4v64v2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:pentium/pentium4v64v2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:pentium/pentium4v64v2

Namespace violations

Implementation: T:generic/opt32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo32.o CNT_r C
echo32.o Compress T
echo32.o Endianess T
echo32.o Final T
echo32.o Hash T
echo32.o Init T
echo32.o PrintState T
echo32.o PushString T
echo32.o Update T
echo32.o endian C
echo32.o flip_bits T
echo32.o r C

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

Namespace violations

Implementation: T:generic/opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo64.o Compress T
echo64.o Endianess T
echo64.o Final T
echo64.o Hash T
echo64.o Init T
echo64.o PushString T
echo64.o Update T
echo64.o endian C

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

Namespace violations

Implementation: T:powerpc/pp32cv1
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo32.o CNT_r C
echo32.o Compress T
echo32.o Endianess T
echo32.o Final T
echo32.o Hash T
echo32.o Init T
echo32.o PushString T
echo32.o Update T
echo32.o endian C
echo32.o flip_bits T
echo32.o r C

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv1
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv1
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv1
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv1
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:powerpc/pp32cv2