| // errorcheck -0 -d=ssa/tighten/debug=1 |
| |
| //go:build arm64 |
| |
| // 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 |
| |
| var ( |
| ga, gb, gc, gd int |
| ) |
| |
| func moveValuesWithMemoryArg(len int) { |
| for n := 0; n < len; n++ { |
| // Loads of b and d can be delayed until inside the outer "if". |
| a := ga |
| b := gb // ERROR "MOVDload is moved$" |
| c := gc |
| d := gd // ERROR "MOVDload is moved$" |
| if a == c { |
| if b == d { |
| return |
| } |
| } |
| } |
| } |