Implementation notes: riscv64, hifiveunleashedriscv, crypto_hash/blake2b

Computer: hifiveunleashedriscv
Architecture: riscv64
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_hash
Primitive: blake2b
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3532616546 0 022693 728 728regsgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
453699282 0 015126 720 728refgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
497599056 0 015192 736 728refgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
5837024854 0 031105 728 728regsgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
5838624856 0 032580 736 728regsgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
5967712688 0 020318 736 728refgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6352619166 0 025108 720 728regsgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
7038212578 0 018816 736 728refgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221

Compiler output

Implementation: avx2-1
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: blake2b.c:11:10: fatal error: immintrin.h: No such file or directory
blake2b.c: 11 | #include <immintrin.h>
blake2b.c: | ^~~~~~~~~~~~~
blake2b.c: compilation terminated.

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

Compiler output

Implementation: avx2-2
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: blake2b.c:12:10: fatal error: immintrin.h: No such file or directory
blake2b.c: 12 | #include <immintrin.h>
blake2b.c: | ^~~~~~~~~~~~~
blake2b.c: compilation terminated.

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

Compiler output

Implementation: avxicc
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.s: blake2b.s: Assembler messages:
blake2b.s: blake2b.s:3: Error: unknown pseudo-op: `.intel_syntax'
blake2b.s: blake2b.s:14: Error: illegal operands `sub rsp,552'
blake2b.s: blake2b.s:16: Error: illegal operands `xor r11d,r11d'
blake2b.s: blake2b.s:17: Error: illegal operands `xor ecx,ecx'
blake2b.s: blake2b.s:18: Error: unrecognized opcode `mov r9,rsi'
blake2b.s: blake2b.s:19: Error: unrecognized opcode `vmovdqu xmm2,XMMWORD PTR .L_2il0floatpacket.13[rip]'
blake2b.s: blake2b.s:20: Error: illegal operands `xor eax,eax'
blake2b.s: blake2b.s:21: Error: unrecognized opcode `vmovdqu xmm3,XMMWORD PTR .L_2il0floatpacket.14[rip]'
blake2b.s: blake2b.s:22: Error: unrecognized opcode `mov r8,rdx'
blake2b.s: blake2b.s:23: Error: unrecognized opcode `vmovdqu xmm4,XMMWORD PTR .L_2il0floatpacket.15[rip]'
blake2b.s: blake2b.s:24: Error: illegal operands `xor r10d,r10d'
blake2b.s: blake2b.s:25: Error: unrecognized opcode `vmovdqu xmm11,XMMWORD PTR .L_2il0floatpacket.16[rip]'
blake2b.s: blake2b.s:26: Error: unrecognized opcode `vmovdqu xmm1,XMMWORD PTR .L_2il0floatpacket.11[rip]'
blake2b.s: blake2b.s:27: Error: unrecognized opcode `vmovdqu xmm0,XMMWORD PTR .L_2il0floatpacket.12[rip]'
blake2b.s: blake2b.s:28: Error: unrecognized opcode `vmovdqu XMMWORD PTR[448+rsp],xmm2'
blake2b.s: blake2b.s:29: Error: unrecognized opcode `vmovdqu XMMWORD PTR[464+rsp],xmm3'
blake2b.s: blake2b.s:30: Error: unrecognized opcode `vmovdqu XMMWORD PTR[496+rsp],xmm4'
blake2b.s: blake2b.s:31: Error: unrecognized opcode `vmovdqu XMMWORD PTR[480+rsp],xmm11'
blake2b.s: blake2b.s:32: Error: unrecognized opcode `vmovdqu xmm5,XMMWORD PTR .L_2il0floatpacket.17[rip]'
blake2b.s: blake2b.s:33: Error: unrecognized opcode `cmp rdx,128'
blake2b.s: blake2b.s:34: Error: unrecognized opcode `jbe ..B1.5'
blake2b.s: blake2b.s:37: Error: unrecognized opcode `mov QWORD PTR[rsp],rbp'
blake2b.s: blake2b.s:38: Error: unrecognized opcode `lea rsi,QWORD PTR[-1+rdx]'
blake2b.s: blake2b.s:39: Error: unrecognized opcode `sar rsi,6'
blake2b.s: ...

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

Compiler output

Implementation: xmm
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b.c: In file included from blake2b.c:6:
blake2b.c: blake2-config.h:68:2: error: #error "This code requires at least SSE2."
blake2b.c: 68 | #error "This code requires at least SSE2."
blake2b.c: | ^~~~~
blake2b.c: blake2b.c:11:10: fatal error: immintrin.h: No such file or directory
blake2b.c: 11 | #include <immintrin.h>
blake2b.c: | ^~~~~~~~~~~~~
blake2b.c: compilation terminated.

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake2b-ref.o blake2b T
blake2b-ref.o blake2b_final T
blake2b-ref.o blake2b_init T
blake2b-ref.o blake2b_init_key T
blake2b-ref.o blake2b_init_param T
blake2b-ref.o blake2b_update T

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