aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/vendor/github.com/google
diff options
context:
space:
mode:
authorJoel Sing <joel@sing.id.au>2024-02-01 23:58:54 +1100
committerJoel Sing <joel@sing.id.au>2024-02-16 11:59:07 +0000
commitdaa58db486c3806b6767a8d87ee275ed4d7c2713 (patch)
tree3b8bc5f35c34bf5917c416cef6780bace6c35550 /src/cmd/vendor/github.com/google
parentb634f6fdcbebee23b7da709a243f3db217b64776 (diff)
downloadgo-daa58db486c3806b6767a8d87ee275ed4d7c2713.tar.xz
cmd/compile: improve rotations for riscv64
Enable canRotate for riscv64, enable rotation intrinsics and provide better rewrite implementations for rotations. By avoiding Lsh*x64 and Rsh*Ux64 we can produce better code, especially for 32 and 64 bit rotations. By enabling canRotate we also benefit from the generic rotation rewrite rules. Benchmark on a StarFive VisionFive 2: │ rotate.1 │ rotate.2 │ │ sec/op │ sec/op vs base │ RotateLeft-4 14.700n ± 0% 8.016n ± 0% -45.47% (p=0.000 n=10) RotateLeft8-4 14.70n ± 0% 10.69n ± 0% -27.28% (p=0.000 n=10) RotateLeft16-4 14.70n ± 0% 12.02n ± 0% -18.23% (p=0.000 n=10) RotateLeft32-4 13.360n ± 0% 8.016n ± 0% -40.00% (p=0.000 n=10) RotateLeft64-4 13.360n ± 0% 8.016n ± 0% -40.00% (p=0.000 n=10) geomean 14.15n 9.208n -34.92% Change-Id: I1a2036fdc57cf88ebb6617eb8d92e1d187e183b2 Reviewed-on: https://go-review.googlesource.com/c/go/+/560315 Reviewed-by: M Zhuo <mengzhuo1203@gmail.com> Run-TryBot: Joel Sing <joel@sing.id.au> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Mark Ryan <markdryan@rivosinc.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/vendor/github.com/google')
0 files changed, 0 insertions, 0 deletions