diff options
| author | Joel Sing <joel@sing.id.au> | 2025-02-24 00:27:34 +1100 |
|---|---|---|
| committer | Joel Sing <joel@sing.id.au> | 2025-03-21 18:21:44 -0700 |
| commit | b70244ff7a043786c211775b68259de6104ff91c (patch) | |
| tree | 98e9bbd2cd4601d55478e67cd9072174787fbd64 /src/cmd/asm | |
| parent | af133d86e4de00e65581799c155659ce9c8c556c (diff) | |
| download | go-b70244ff7a043786c211775b68259de6104ff91c.tar.xz | |
cmd/compile: intrinsify math/bits.Len on riscv64
For riscv64/rva22u64 and above, we can intrinsify math/bits.Len using the
CLZ/CLZW machine instructions.
On a StarFive VisionFive 2 with GORISCV64=rva22u64:
│ clz.b.1 │ clz.b.2 │
│ sec/op │ sec/op vs base │
LeadingZeros-4 28.89n ± 0% 12.08n ± 0% -58.19% (p=0.000 n=10)
LeadingZeros8-4 18.79n ± 0% 14.76n ± 0% -21.45% (p=0.000 n=10)
LeadingZeros16-4 25.27n ± 0% 14.76n ± 0% -41.59% (p=0.000 n=10)
LeadingZeros32-4 25.12n ± 0% 12.08n ± 0% -51.92% (p=0.000 n=10)
LeadingZeros64-4 25.89n ± 0% 12.08n ± 0% -53.35% (p=0.000 n=10)
geomean 24.55n 13.09n -46.70%
Change-Id: I0dda684713dbdf5336af393f5ccbdae861c4f694
Reviewed-on: https://go-review.googlesource.com/c/go/+/652321
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Ryan <markdryan@rivosinc.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/cmd/asm')
0 files changed, 0 insertions, 0 deletions
