diff options
author | Keith Randall <khr@golang.org> | 2021-09-19 13:51:37 -0700 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2021-09-20 16:25:36 +0000 |
commit | 6f35430faa622bad63a527c97e87b9291e480688 (patch) | |
tree | a022e734eb9c30da548910da8960d10efbbc21fa /src/cmd/compile/internal/ssa/rewrite.go | |
parent | 2d9b4864201d76bd30b55a7d74d73a24cc3ae165 (diff) | |
download | go-6f35430faa622bad63a527c97e87b9291e480688.tar.gz go-6f35430faa622bad63a527c97e87b9291e480688.zip |
cmd/compile: allow rotates to be merged with logical ops on arm64
Fixes #48002
Change-Id: Ie3a157d55b291f5ac2ef4845e6ce4fefd84fc642
Reviewed-on: https://go-review.googlesource.com/c/go/+/350912
Trust: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewrite.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewrite.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/rewrite.go b/src/cmd/compile/internal/ssa/rewrite.go index 162d42773a..79f9efaebf 100644 --- a/src/cmd/compile/internal/ssa/rewrite.go +++ b/src/cmd/compile/internal/ssa/rewrite.go @@ -1567,6 +1567,10 @@ func rotateLeft32(v, rotate int64) int64 { return int64(bits.RotateLeft32(uint32(v), int(rotate))) } +func rotateRight64(v, rotate int64) int64 { + return int64(bits.RotateLeft64(uint64(v), int(-rotate))) +} + // encodes the lsb and width for arm(64) bitfield ops into the expected auxInt format. func armBFAuxInt(lsb, width int64) arm64BitField { if lsb < 0 || lsb > 63 { |