1934361a4SHal Finkel; RUN: llc < %s -mtriple=powerpc64-unknown-gnu-linux | FileCheck %s
2934361a4SHal Finkel
3934361a4SHal Finkeldefine void @test_shadow_optimization() {
4934361a4SHal Finkelentry:
5934361a4SHal Finkel; Expect 12 bytes worth of nops here rather than 32: With the shadow optimization
6934361a4SHal Finkel; in place, 20 bytes will be consumed by the frame teardown and return instr.
7934361a4SHal Finkel; CHECK-LABEL: test_shadow_optimization:
8934361a4SHal Finkel
9934361a4SHal Finkel; CHECK:      nop
10934361a4SHal Finkel; CHECK-NEXT: nop
11934361a4SHal Finkel; CHECK-NEXT: nop
12934361a4SHal Finkel; CHECK-NOT:  nop
13934361a4SHal Finkel; CHECK: addi 1, 1, 64
14934361a4SHal Finkel; CHECK: ld [[REG1:[0-9]+]], 16(1)
15934361a4SHal Finkel; CHECK: ld 31, -8(1)
16934361a4SHal Finkel; CHECK: mtlr [[REG1]]
17934361a4SHal Finkel; CHECK: blr
18934361a4SHal Finkel
19*23af6484SDavid Blaikie  tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  0, i32  32)
20934361a4SHal Finkel  ret void
21934361a4SHal Finkel}
22934361a4SHal Finkel
23934361a4SHal Finkeldeclare void @llvm.experimental.stackmap(i64, i32, ...)
24934361a4SHal Finkel
25