summaryrefslogtreecommitdiffstats
path: root/test/Analysis/BasicAA/tailcall-modref.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/BasicAA/tailcall-modref.ll')
-rw-r--r--test/Analysis/BasicAA/tailcall-modref.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/tailcall-modref.ll b/test/Analysis/BasicAA/tailcall-modref.ll
new file mode 100644
index 0000000..f7d6c57
--- /dev/null
+++ b/test/Analysis/BasicAA/tailcall-modref.ll
@@ -0,0 +1,16 @@
+; RUN: opt < %s -basicaa -gvn -instcombine |\
+; RUN: llvm-dis | grep {ret i32 0}
+
+declare void @foo(i32*)
+
+declare void @bar()
+
+define i32 @test() {
+ %A = alloca i32 ; <i32*> [#uses=3]
+ call void @foo( i32* %A )
+ %X = load i32* %A ; <i32> [#uses=1]
+ tail call void @bar( )
+ %Y = load i32* %A ; <i32> [#uses=1]
+ %Z = sub i32 %X, %Y ; <i32> [#uses=1]
+ ret i32 %Z
+}