xref: /llvm-project/llvm/test/Analysis/BasicAA/tailcall-modref.ll (revision 05ff7606c9d47135ecf5b69e25b1327634f6fa27)
1; RUN: opt < %s -aa-pipeline=basic-aa -passes=gvn,instcombine -S | FileCheck %s
2
3define i32 @test() {
4; CHECK: ret i32 0
5        %A = alloca i32         ; <ptr> [#uses=3]
6        call void @foo( ptr %A )
7        %X = load i32, ptr %A               ; <i32> [#uses=1]
8        tail call void @bar( )
9        %Y = load i32, ptr %A               ; <i32> [#uses=1]
10        %Z = sub i32 %X, %Y             ; <i32> [#uses=1]
11        ret i32 %Z
12}
13
14declare void @foo(ptr)
15
16declare void @bar()
17