[AArch64] Fix bug in prolog clobbering live reg when shrink wrapping.
[oota-llvm.git] / test / CodeGen / AArch64 / stackmap-frame-setup.ll
1 ; RUN: llc -o /dev/null -verify-machineinstrs -mtriple=aarch64-apple-darwin -stop-after machine-sink %s | FileCheck %s --check-prefix=ISEL
2 ; RUN: llc -o /dev/null -verify-machineinstrs -mtriple=aarch64-apple-darwin -fast-isel -fast-isel-abort=1 -stop-after machine-sink %s | FileCheck %s --check-prefix=FAST-ISEL
3
4 define void @caller_meta_leaf() {
5 entry:
6   %metadata = alloca i64, i32 3, align 8
7   store i64 11, i64* %metadata
8   store i64 12, i64* %metadata
9   store i64 13, i64* %metadata
10 ; ISEL:      ADJCALLSTACKDOWN 0, implicit-def
11 ; ISEL-NEXT: STACKMAP
12 ; ISEL-NEXT: ADJCALLSTACKUP 0, 0, implicit-def
13   call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4, i32 0, i64* %metadata)
14 ; FAST-ISEL:      ADJCALLSTACKDOWN 0, implicit-def
15 ; FAST-ISEL-NEXT: STACKMAP
16 ; FAST-ISEL-NEXT: ADJCALLSTACKUP 0, 0, implicit-def
17   ret void
18 }
19
20 declare void @llvm.experimental.stackmap(i64, i32, ...)