]> Cypherpunks repositories - gostls13.git/commit
crypto/sha1: provide optimised assembly for riscv64
authorJulian Zhu <julian.oerv@isrc.iscas.ac.cn>
Wed, 24 Dec 2025 12:31:46 +0000 (20:31 +0800)
committerJulian Zhu <julian.oerv@isrc.iscas.ac.cn>
Tue, 10 Feb 2026 04:08:28 +0000 (20:08 -0800)
commita59593313d75d9e7c99da0cff0e12555597621ec
tree298fd7b942f54bed8d213123b62962b00a76907d
parent86f7959aa6e4cb9a0ac67ccd84c5586701583ca4
crypto/sha1: provide optimised assembly for riscv64

Provide an optimised assembly implementation of sha1 for riscv64.

goos: linux
goarch: riscv64
pkg: crypto/sha1
cpu: Spacemit(R) X60
                   │   oldsha1    │              newsha1               │
                   │    sec/op    │   sec/op     vs base               │
Hash8Bytes/New-8      2.136µ ± 0%   1.173µ ± 0%  -45.09% (p=0.000 n=8)
Hash8Bytes/Sum-8      2.079µ ± 0%   1.116µ ± 0%  -46.32% (p=0.000 n=8)
Hash320Bytes/New-8   10.704µ ± 0%   4.954µ ± 0%  -53.72% (p=0.000 n=8)
Hash320Bytes/Sum-8   10.645µ ± 0%   4.872µ ± 0%  -54.23% (p=0.000 n=8)
Hash1K/New-8          29.66µ ± 0%   13.38µ ± 0%  -54.90% (p=0.000 n=8)
Hash1K/Sum-8          29.63µ ± 0%   13.24µ ± 0%  -55.32% (p=0.000 n=8)
Hash8K/New-8          226.8µ ± 1%   104.7µ ± 2%  -53.84% (p=0.000 n=8)
Hash8K/Sum-8          226.7µ ± 1%   102.9µ ± 1%  -54.62% (p=0.000 n=8)
geomean               19.72µ        9.387µ       -52.40%

                   │   oldsha1    │               newsha1                │
                   │     B/s      │     B/s       vs base                │
Hash8Bytes/New-8     3.572Mi ± 0%   6.504Mi ± 0%   +82.11% (p=0.000 n=8)
Hash8Bytes/Sum-8     3.672Mi ± 0%   6.838Mi ± 0%   +86.23% (p=0.000 n=8)
Hash320Bytes/New-8   28.51Mi ± 0%   61.60Mi ± 0%  +116.02% (p=0.000 n=8)
Hash320Bytes/Sum-8   28.67Mi ± 0%   62.64Mi ± 0%  +118.51% (p=0.000 n=8)
Hash1K/New-8         32.92Mi ± 0%   73.00Mi ± 0%  +121.74% (p=0.000 n=8)
Hash1K/Sum-8         32.96Mi ± 0%   73.76Mi ± 0%  +123.78% (p=0.000 n=8)
Hash8K/New-8         34.44Mi ± 1%   74.61Mi ± 2%  +116.61% (p=0.000 n=8)
Hash8K/Sum-8         34.46Mi ± 1%   75.93Mi ± 1%  +120.37% (p=0.000 n=8)
geomean              18.51Mi        38.89Mi       +110.07%

Change-Id: I3d4d05fe19872412fdf77a337395e0bf84c41dd5
Reviewed-on: https://go-review.googlesource.com/c/go/+/732560
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
src/crypto/sha1/sha1block_decl.go
src/crypto/sha1/sha1block_generic.go
src/crypto/sha1/sha1block_riscv64.s [new file with mode: 0644]