Implementation notes: riscv64, hifiveunleashedriscv, crypto_hash/echo512

Computer: hifiveunleashedriscv
Architecture: riscv64
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_hash
Primitive: echo512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
48468016160 0 023628 736 728sphlib-smallgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
4904258042 0 014178 736 728sphlib-smallgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
50240120382 0 026603 744 736generic/opt64gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
5085267714 0 013404 720 728sphlib-smallgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
52001242678 0 050178 736 728sphlibgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
52180720528 0 026477 728 736generic/opt64gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
52632530120 0 036204 736 728sphlibgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
53451229108 0 034834 720 728sphlibgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
5541328432 0 014484 736 728sphlib-smallgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
55825419300 0 025303 744 744generic/opt32gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
57835819152 0 025415 760 744generic/opt32gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
67588436276 0 044021 744 736generic/opt64gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
67632625074 0 031397 744 736generic/opt64gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
67811325946 0 031949 744 744powerpc/pp32cv2gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
70875725340 0 031603 760 744powerpc/pp32cv2gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
72459738038 0 044214 736 728sphlibgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
82382829940 0 037757 760 744generic/opt32gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
82790127058 0 033453 760 744generic/opt32gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
90414632476 0 038871 760 744powerpc/pp32cv2gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
90612834280 0 042097 760 744powerpc/pp32cv2gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
108029817096 0 023491 760 744powerpc/pp32cv1gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
108039218626 0 026443 760 744powerpc/pp32cv1gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
110971816434 0 022437 744 744powerpc/pp32cv1gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
112756516358 0 022621 760 744powerpc/pp32cv1gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221

Compiler output

Implementation: ccalik/bitsliced
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:18:10: fatal error: tmmintrin.h: No such file or directory
hash.c: 18 | #include <tmmintrin.h>
hash.c: | ^~~~~~~~~~~~~
hash.c: compilation terminated.

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

Compiler output

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

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

Namespace violations

Implementation: generic/opt32
Security model: unknown
Compiler: gcc -march=rv64gc -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: 12, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt32
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt32
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt32
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt32
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv1
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv1
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv1
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv1
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv2
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv2
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv2
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE powerpc/pp32cv2

Namespace violations

Implementation: generic/opt64
Security model: unknown
Compiler: gcc -march=rv64gc -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=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64

Namespace violations

Implementation: sphlib
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo.o sph_echo224 T
echo.o sph_echo224_addbits_and_close T
echo.o sph_echo224_close T
echo.o sph_echo224_init T
echo.o sph_echo256 T
echo.o sph_echo256_addbits_and_close T
echo.o sph_echo256_close T
echo.o sph_echo256_init T
echo.o sph_echo384 T
echo.o sph_echo384_addbits_and_close T
echo.o sph_echo384_close T
echo.o sph_echo384_init T
echo.o sph_echo512 T
echo.o sph_echo512_addbits_and_close T
echo.o sph_echo512_close T
echo.o sph_echo512_init T

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib-small
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib-small
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib-small
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE sphlib-small