--- /dev/null
+// Copyright 2020 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.
+
+TEXT ·bad1(SB), 0, $0
+ MOVQ $0, BP // want `frame pointer is clobbered before saving`
+ RET
+TEXT ·bad2(SB), 0, $0
+ MOVQ AX, BP // want `frame pointer is clobbered before saving`
+ RET
+TEXT ·bad3(SB), 0, $0
+ MOVQ 6(AX), BP // want `frame pointer is clobbered before saving`
+ RET
+TEXT ·good1(SB), 0, $0
+ PUSHQ BP
+ MOVQ $0, BP // this is ok
+ POPQ BP
+ RET
+TEXT ·good2(SB), 0, $0
+ MOVQ BP, BX
+ MOVQ $0, BP // this is ok
+ MOVQ BX, BP
+ RET
+TEXT ·good3(SB), 0, $0
+ CMPQ AX, BX
+ JEQ skip
+ MOVQ $0, BP // this is ok
+skip:
+ RET
+TEXT ·good4(SB), 0, $0
+ RET
+ MOVQ $0, BP // this is ok
+ RET
+TEXT ·good5(SB), 0, $8
+ MOVQ $0, BP // this is ok
+ RET