Implementation notes: riscv64, hifiveunleashedriscv, crypto_hash/simd512

Computer: hifiveunleashedriscv
Architecture: riscv64
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_hash
Primitive: simd512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
35828345825 388 053473 1148 728optgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
36635754504 0 060062 720 728sphlibgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
39333554860 0 060928 736 728sphlibgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
39809031454 0 038954 736 728sphlib-smallgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
40055028262 0 034374 736 728sphlib-smallgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
42397726486 0 032140 720 728sphlib-smallgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
43831726968 0 032988 736 728sphlib-smallgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
43963668558 0 074718 736 728sphlibgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
44055273092 0 080640 736 728sphlibgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
45651213829 388 020205 1148 728optgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
50903013195 388 019175 1132 728optgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
58285514309 388 020569 1148 728optgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
123512928747 388 016393 1148 728refgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
124553843695 388 010065 1148 728refgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
125968563685 388 09945 1148 728refgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
150554863421 388 09419 1132 728refgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221

Compiler output

Implementation: vect128
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
vector.c: In file included from vector.c:5:
vector.c: vector.h:252:2: error: #error "I don't know how to vectorize on this architecture."
vector.c: 252 | #error "I don't know how to vectorize on this architecture."
vector.c: | ^~~~~
vector.c: vector.h:344:25: error: array type has incomplete element type 'union cv'
vector.c: 344 | static const union cv FFT64_Twiddle[] = {
vector.c: | ^~~~~~~~~~~~~
vector.c: vector.h:355:25: error: array type has incomplete element type 'union cv'
vector.c: 355 | static const union cv FFT128_Twiddle[] = {
vector.c: | ^~~~~~~~~~~~~~
vector.c: vector.h:367:25: error: array type has incomplete element type 'union cv'
vector.c: 367 | static const union cv FFT256_Twiddle[] = {
vector.c: | ^~~~~~~~~~~~~~
vector.c: vector.c:24:20: error: variable 'V128' has initializer but incomplete type
vector.c: 24 | static const union cv V128 = CV(128);
vector.c: | ^~
vector.c: vector.c:24:30: warning: implicit declaration of function 'CV' [-Wimplicit-function-declaration]
vector.c: 24 | static const union cv V128 = CV(128);
vector.c: | ^~
vector.c: vector.c:25:20: error: variable 'V255' has initializer but incomplete type
vector.c: 25 | static const union cv V255 = CV(255);
vector.c: | ^~
vector.c: vector.c:26:20: error: variable 'V257' has initializer but incomplete type
vector.c: 26 | static const union cv V257 = CV(257);
vector.c: | ^~
vector.c: ...

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

Namespace violations

Implementation: opt
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
nist.o Final T
nist.o Hash T
nist.o IV_224 D
nist.o IV_256 D
nist.o IV_384 D
nist.o IV_512 D
nist.o IncreaseCounter T
nist.o Init T
nist.o InitIV T
nist.o Update T
optimized.o FFT_128_full T
optimized.o FFT_128_halfzero T
optimized.o FFT_256_halfzero T
optimized.o FFT_64 T
optimized.o RequiredAlignment T
optimized.o Round4 T
optimized.o Round8 T
optimized.o SIMD_Compress T
optimized.o SupportedLength T
optimized.o VERSION T
optimized.o fft128_natural T
optimized.o fft256_natural T
optimized.o p8_xor R
optimized.o revbin T

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
nist.o Final T
nist.o Hash T
nist.o IV_224 D
nist.o IV_256 D
nist.o IV_384 D
nist.o IV_512 D
nist.o IncreaseCounter T
nist.o Init T
nist.o InitIV T
nist.o Update T
reference.o IF T
reference.o MAJ T
reference.o P R
reference.o RequiredAlignment T
reference.o Round T
reference.o SIMD_Compress T
reference.o Step T
reference.o SupportedLength T
reference.o VERSION T
reference.o message_expansion T
reference.o p4 R
reference.o p8 R

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

Namespace violations

Implementation: sphlib
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
simd.o sph_simd224 T
simd.o sph_simd224_addbits_and_close T
simd.o sph_simd224_close T
simd.o sph_simd224_init T
simd.o sph_simd256 T
simd.o sph_simd256_addbits_and_close T
simd.o sph_simd256_close T
simd.o sph_simd256_init T
simd.o sph_simd384 T
simd.o sph_simd384_addbits_and_close T
simd.o sph_simd384_close T
simd.o sph_simd384_init T
simd.o sph_simd512 T
simd.o sph_simd512_addbits_and_close T
simd.o sph_simd512_close T
simd.o sph_simd512_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