aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2024-03-21 09:15:30 -0700
committerKeith Randall <khr@golang.org>2024-03-21 19:45:41 +0000
commit802473cfda17a116f705e4060d7b70828e763689 (patch)
tree0c1cdfce1195168c6543759001594c7e97382aa5 /test
parent5e1e3a002528714f7c5954dd13068a89f41f747a (diff)
downloadgo-802473cfda17a116f705e4060d7b70828e763689.tar.gz
go-802473cfda17a116f705e4060d7b70828e763689.zip
cmd/compile: include constant bools in memcombine
Constant bools are like constant 1-byte values, they memcombine just fine. (There are still trickier cases that this pass doesn't catch yet, see TODO at memcombine.go:503.) Fixes #66413 Change-Id: Ia67cf72ed1c416e27ac22da443bd88a3f09a6cc8 Reviewed-on: https://go-review.googlesource.com/c/go/+/573416 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Joseph Tsai <joetsai@digital-static.net> Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com> Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'test')
-rw-r--r--test/codegen/memcombine.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/codegen/memcombine.go b/test/codegen/memcombine.go
index 6d6c33d947..ff67a442e4 100644
--- a/test/codegen/memcombine.go
+++ b/test/codegen/memcombine.go
@@ -918,3 +918,23 @@ func store16be(p *struct{ a, b uint16 }, x uint32) {
// s390x:-"MOVH",-"SRW"
p.b = uint16(x)
}
+
+func storeBoolConst(p *struct{ a, b bool }) {
+ // amd64:"MOVW",-"MOVB"
+ // arm64:"MOVH",-"MOVB"
+ p.a = true
+ p.b = true
+}
+func issue66413(p *struct {
+ a byte
+ b bool
+ c bool
+ d int8
+}) {
+ // amd64:"MOVL",-"MOVB"
+ // arm64:"MOVW",-"MOVB"
+ p.a = 31
+ p.b = false
+ p.c = true
+ p.d = 12
+}