aboutsummaryrefslogtreecommitdiff
path: root/test/codegen
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2023-07-14 09:45:31 -0700
committerKeith Randall <khr@golang.org>2023-07-26 17:19:14 +0000
commit505e50b1e34cdf6dff29615a076e26fb0780d10d (patch)
tree271a064d066827894b0991aac271fee6ec93b719 /test/codegen
parentc94f39a80e30f38c8a6e72f58c4cb63c1c106eb0 (diff)
downloadgo-505e50b1e34cdf6dff29615a076e26fb0780d10d.tar.xz
cmd/compile: get rid of special case in scheduler for entry block
It isn't needed. Fixes #61356 Change-Id: Ib466a3eac90c3ea57888cf40c294513033fc6118 Reviewed-on: https://go-review.googlesource.com/c/go/+/509856 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Keith Randall <khr@golang.org>
Diffstat (limited to 'test/codegen')
-rw-r--r--test/codegen/issue61356.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/codegen/issue61356.go b/test/codegen/issue61356.go
new file mode 100644
index 0000000000..65753d5407
--- /dev/null
+++ b/test/codegen/issue61356.go
@@ -0,0 +1,55 @@
+// asmcheck
+
+// 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.
+
+// Make sure this code doesn't generate spill/restore.
+
+package codegen
+
+func pack20(in *[20]uint64) uint64 {
+ var out uint64
+ out |= 4
+ // amd64:-`.*SP.*`
+ out |= in[0] << 4
+ // amd64:-`.*SP.*`
+ out |= in[1] << 7
+ // amd64:-`.*SP.*`
+ out |= in[2] << 10
+ // amd64:-`.*SP.*`
+ out |= in[3] << 13
+ // amd64:-`.*SP.*`
+ out |= in[4] << 16
+ // amd64:-`.*SP.*`
+ out |= in[5] << 19
+ // amd64:-`.*SP.*`
+ out |= in[6] << 22
+ // amd64:-`.*SP.*`
+ out |= in[7] << 25
+ // amd64:-`.*SP.*`
+ out |= in[8] << 28
+ // amd64:-`.*SP.*`
+ out |= in[9] << 31
+ // amd64:-`.*SP.*`
+ out |= in[10] << 34
+ // amd64:-`.*SP.*`
+ out |= in[11] << 37
+ // amd64:-`.*SP.*`
+ out |= in[12] << 40
+ // amd64:-`.*SP.*`
+ out |= in[13] << 43
+ // amd64:-`.*SP.*`
+ out |= in[14] << 46
+ // amd64:-`.*SP.*`
+ out |= in[15] << 49
+ // amd64:-`.*SP.*`
+ out |= in[16] << 52
+ // amd64:-`.*SP.*`
+ out |= in[17] << 55
+ // amd64:-`.*SP.*`
+ out |= in[18] << 58
+ // amd64:-`.*SP.*`
+ out |= in[19] << 61
+ return out
+}