summaryrefslogtreecommitdiff
path: root/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll')
-rw-r--r--test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll b/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll
new file mode 100644
index 0000000000..3f6407a0a3
--- /dev/null
+++ b/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll
@@ -0,0 +1,29 @@
+; RUN: llc < %s -march=thumb -mcpu=arm1022e
+
+%iterator = type { i8**, i8**, i8**, i8*** }
+%insert_iterator = type { %deque*, %iterator }
+%deque = type { %iterator, %iterator, i8***, i32 }
+
+define i32 @test_thumbv5e_fp_elim() nounwind optsize {
+entry:
+ %var1 = alloca %iterator, align 4
+ %var2 = alloca %insert_iterator, align 4
+ %var3 = alloca %deque, align 4
+
+ %0 = bitcast %deque* %var3 to i8*
+ %1 = bitcast %iterator* %var1 to i8*
+ call void @llvm.lifetime.start(i64 16, i8* %1) nounwind
+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %0, i32 16, i32 4, i1 false)
+ call void @llvm.lifetime.end(i64 16, i8* %1) nounwind
+
+ %2 = bitcast %insert_iterator* %var2 to i8*
+ call void @llvm.lifetime.start(i64 20, i8* %2) nounwind
+
+ ret i32 0
+}
+
+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind
+
+declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind
+
+declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind