aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Analysis/DSGraph/2004-02-13-memcpy.ll18
1 files changed, 15 insertions, 3 deletions
diff --git a/test/Analysis/DSGraph/2004-02-13-memcpy.ll b/test/Analysis/DSGraph/2004-02-13-memcpy.ll
index 5760712fdf..e2fcfee177 100644
--- a/test/Analysis/DSGraph/2004-02-13-memcpy.ll
+++ b/test/Analysis/DSGraph/2004-02-13-memcpy.ll
@@ -1,6 +1,8 @@
-; RUN: analyze %s -datastructure-gc -dsgc-check-flags=X:SMR
+; RUN: analyze %s -datastructure-gc -dsgc-check-flags=Xn:SMR
+; RUN: analyze %s -datastructure-gc -dsgc-check-flags=X:SM
-declare void %llvm.memcpy(sbyte*, sbyte*, uint, uint)
+declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint)
+declare void %llvm.memmove.i32(sbyte*, sbyte*, uint, uint)
void %test() {
%X = alloca int
@@ -8,6 +10,16 @@ void %test() {
%x = cast int* %X to sbyte*
%y = cast int* %Y to sbyte*
store int 4, int* %X
- call void %llvm.memcpy(sbyte* %x, sbyte* %y, uint 4, uint 4)
+ call void %llvm.memcpy.i32(sbyte* %x, sbyte* %y, uint 4, uint 4)
+ ret void
+}
+
+void %test2() {
+ %Xn = alloca int
+ %Yn = alloca int
+ %xn = cast int* %Xn to sbyte*
+ %yn = cast int* %Yn to sbyte*
+ store int 4, int* %Xn
+ call void %llvm.memmove.i32(sbyte* %xn, sbyte* %yn, uint 4, uint 4)
ret void
}