1
0
mirror of https://github.com/golang/go synced 2024-09-23 13:20:14 -06:00
go/test/fixedbugs/issue64715.go
Keith Randall b60bf8f8e1 cmd/asm: fix encoding for arm right shift by constant 0
Right shifts, for some odd reasons, can encode shifts of constant
1-32 instead of 0-31. Left shifts, however, can encode shifts 0-31.
When the shift amount is 0, arm recommends encoding right shifts
using left shifts.

Fixes #64715

Change-Id: Id3825349aa7195028037893dfe01fa0e405eaa51
Reviewed-on: https://go-review.googlesource.com/c/go/+/549955
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
2023-12-15 19:35:21 +00:00

26 lines
401 B
Go

// run
// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func boolInt32(b bool) int32 {
if b {
return 1
}
return 0
}
func f(left uint16, right int32) (r uint16) {
return left >> right
}
var n = uint16(65535)
func main() {
println(f(n, boolInt32(int64(n^n) > 1)))
}