diff options
Diffstat (limited to 'llvm/test/CodeGen/AArch64/sink-copy-for-shrink-wrap.ll')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/sink-copy-for-shrink-wrap.ll | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/sink-copy-for-shrink-wrap.ll b/llvm/test/CodeGen/AArch64/sink-copy-for-shrink-wrap.ll new file mode 100644 index 00000000000..7c4a3238c2c --- /dev/null +++ b/llvm/test/CodeGen/AArch64/sink-copy-for-shrink-wrap.ll @@ -0,0 +1,22 @@ +; RUN: llc -mtriple=aarch64-linux-gnu -o - %s | FileCheck %s + +; CHECK-LABEL: %bb.0: +; CHECK-NOT: stp +; CHECK-NOT: mov w{{[0-9]+}}, w0 +; CHECK-LABEL: %bb.1: +; CHECK: stp x19 +; CHECK: mov w{{[0-9]+}}, w0 + +define i32 @shrinkwrapme(i32 %paramAcrossCall, i32 %paramNotAcrossCall) { +entry: + %cmp5 = icmp sgt i32 %paramNotAcrossCall, 0 + br i1 %cmp5, label %CallBB, label %Exit +CallBB: + %call = call i32 @fun() + %add = add i32 %call, %paramAcrossCall + ret i32 %add +Exit: + ret i32 0 +} + +declare i32 @fun() |

