[go] crypto/sha1: provide optimised assembly for riscv64

0 views
Skip to first unread message

Julian Zhu (Gerrit)

unread,
Feb 9, 2026, 11:08:32 PMFeb 9
to goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Dmitri Shuralyov, Dmitri Shuralyov, Roland Shoemaker, Joel Sing, Go LUCI, Mark Ryan, Filippo Valsorda, Daniel McCarney, Gopher Robot, golang-co...@googlegroups.com

Julian Zhu submitted the change

Change information

Commit message:
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-by: Roland Shoemaker <rol...@golang.org>
Reviewed-by: Dmitri Shuralyov <dmit...@google.com>
Reviewed-by: Joel Sing <jo...@sing.id.au>
Files:
  • M src/crypto/sha1/sha1block_decl.go
  • M src/crypto/sha1/sha1block_generic.go
  • A src/crypto/sha1/sha1block_riscv64.s
Change size: M
Delta: 3 files changed, 227 insertions(+), 2 deletions(-)
Branch: refs/heads/master
Submit Requirements:
  • requirement satisfiedCode-Review: +2 by Joel Sing, +1 by Dmitri Shuralyov, +1 by Roland Shoemaker
  • requirement satisfiedTryBots-Pass: LUCI-TryBot-Result+1 by Go LUCI
Open in Gerrit
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: merged
Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: I3d4d05fe19872412fdf77a337395e0bf84c41dd5
Gerrit-Change-Number: 732560
Gerrit-PatchSet: 3
Gerrit-Owner: Julian Zhu <jz53...@gmail.com>
Gerrit-Reviewer: Daniel McCarney <dan...@binaryparadox.net>
Gerrit-Reviewer: Dmitri Shuralyov <dmit...@google.com>
Gerrit-Reviewer: Filippo Valsorda <fil...@golang.org>
Gerrit-Reviewer: Joel Sing <jo...@sing.id.au>
Gerrit-Reviewer: Julian Zhu <jz53...@gmail.com>
Gerrit-Reviewer: Mark Ryan <mark...@meta.com>
Gerrit-Reviewer: Roland Shoemaker <rol...@golang.org>
Gerrit-CC: Dmitri Shuralyov <dmit...@golang.org>
Gerrit-CC: Gopher Robot <go...@golang.org>
open
diffy
satisfied_requirement
Reply all
Reply to author
Forward
0 new messages