Implementation notes: x86, thoth, crypto_hash/echosp256

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: echosp256
TimeImplementationCompilerBenchmark dateSUPERCOP version
55404pentium/pentiummmxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
55405pentium/pentiummmxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
55414pentium/pentiummmxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
55426pentium/pentiummmxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
66187pentium/pentiumvnommxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
66190pentium/pentiumvnommxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
66209pentium/pentiumvnommxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
66213pentium/pentiumvnommxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
95588generic/opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
98148generic/opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
104403generic/opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
109888generic/opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
124305generic/opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
127450generic/opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
128850generic/opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
132626generic/opt32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
133778powerpc/pp32cv2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
137938powerpc/pp32cv2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
147120powerpc/pp32cv1clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
147910powerpc/pp32cv2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
147952powerpc/pp32cv2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
152843generic/opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
160343powerpc/pp32cv2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
168172generic/opt64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
193702powerpc/pp32cv1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
212094powerpc/pp32cv1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
213423powerpc/pp32cv1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
222317powerpc/pp32cv1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724

Test failure

Implementation: crypto_hash/echosp256/aes/aes32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv aes/aes32 core2/core2 pentium/pentium4
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv aes/aes32 core2/core2 pentium/pentium4
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv aes/aes32 core2/core2 pentium/pentium4
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv aes/aes32 core2/core2 pentium/pentium4

Compiler output

Implementation: crypto_hash/echosp256/generic/opt32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo32.c: echo32.c:37:4: warning: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Wimplicit-function-declaration]
echo32.c: printf ("row %d,col %d :",i,j);
echo32.c: ^
echo32.c: echo32.c:37:4: note: include the header gt; or explicitly provide a declaration for 'printf'
echo32.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments generic/opt32

Compiler output

Implementation: crypto_hash/echosp256/aes/aes32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo32.s: echo32.c:613:2: error: '.att_syntax noprefix' is not supported: registers must have a '%' prefix in .att_syntax
echo32.s: .att_syntax noprefix
echo32.s: ^
echo32.s: echo32.c:613:2: error: unknown directive
echo32.s: .att_syntax noprefix
echo32.s: ^
echo32.s: echo32.s:1211:7: error: unknown token in expression
echo32.s: popl %ebp
echo32.s: ^
echo32.s: echo32.s:1211:7: error: unknown token in expression
echo32.s: popl %ebp
echo32.s: ^
echo32.s: echo32.s:1218:8: error: unknown token in expression
echo32.s: pushl %ebp
echo32.s: ^
echo32.s: echo32.s:1218:8: error: unknown token in expression
echo32.s: pushl %ebp
echo32.s: ^
echo32.s: echo32.s:1219:7: error: unknown token in expression
echo32.s: movl %esp, %ebp
echo32.s: ^
echo32.s: echo32.s:1219:7: error: unknown token in expression
echo32.s: movl %esp, %ebp
echo32.s: ^
echo32.s: echo32.s:1220:8: error: unknown token in expression
echo32.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aes/aes32

Compiler output

Implementation: crypto_hash/echosp256/pentium/pentium4
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo32.s: echo32.c:638:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:638:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:638:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:638:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:639:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:639:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:639:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:639:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:640:2: error: invalid instruction mnemonic 'addd'
echo32.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments pentium/pentium4

Compiler output

Implementation: crypto_hash/echosp256/core2/core2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo32.s: echo32.c:654:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:654:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:654:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:654:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:655:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:655:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:655:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:655:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:656:2: error: invalid instruction mnemonic 'addd'
echo32.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments core2/core2

Compiler output

Implementation: crypto_hash/echosp256/pentium/pentiummmx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo32.s: echo32.c:765:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:765:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:765:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:765:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:766:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:766:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:766:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:766:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:767:2: error: invalid instruction mnemonic 'addd'
echo32.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments pentium/pentiummmx

Compiler output

Implementation: crypto_hash/echosp256/pentium/pentiumvnommx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo32.s: echo32.c:800:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:800:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:800:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:800:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:801:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:801:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:801:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:801:2: error: invalid instruction mnemonic 'addd'
echo32.s: addd [SHA3_CNT], 1
echo32.s: ^
echo32.s: echo32.c:802:2: error: invalid instruction mnemonic 'addd'
echo32.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments pentium/pentiumvnommx

Compiler output

Implementation: crypto_hash/echosp256/generic/opt64
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
echo64.c: echo64.c:555:29: warning: passing 'const unsigned char *' to parameter of type 'BitSequence *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
echo64.c: if (Hash(CRYPTO_BYTES * 8,in,inlen * 8,out) == SUCCESS) return 0;
echo64.c: ^~
echo64.c: echo64.c:542:46: note: passing argument to parameter 'data' here
echo64.c: HashReturn Hash(int hashbitlen, BitSequence *data, DataLength databitlen, BitSequence *hashval)
echo64.c: ^
echo64.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments generic/opt64

Compiler output

Implementation: crypto_hash/echosp256/generic/opt32
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
echo32.c: echo32.c: In function 'PrintState':
echo32.c: echo32.c:37:4: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
echo32.c: 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:37:4: note: include 'gt;' or provide a declaration of 'printf'
echo32.c: echo32.c:47:2: warning: incompatible implicit declaration of built-in function 'printf'
echo32.c: printf("-----------------------------------\n");
echo32.c: ^
echo32.c: echo32.c:47:2: note: include 'gt;' 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 generic/opt32
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv generic/opt32
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv generic/opt32
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv generic/opt32

Compiler output

Implementation: crypto_hash/echosp256/generic/opt64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
echo64.c: echo64.c: In function 'crypto_hash_echosp256_generic_opt64':
echo64.c: echo64.c:555:29: warning: passing argument 2 of 'Hash' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
echo64.c: if (Hash(CRYPTO_BYTES * 8,in,inlen * 8,out) == SUCCESS) return 0;
echo64.c: ^
echo64.c: echo64.c:542:12: note: expected 'BitSequence * {aka unsigned char *}' but argument is of type 'const unsigned char *'
echo64.c: 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 generic/opt64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv generic/opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv generic/opt64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv generic/opt64