diff options
Diffstat (limited to 'llvm/test/Analysis/BasicAA/modref.ll')
-rw-r--r-- | llvm/test/Analysis/BasicAA/modref.ll | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/llvm/test/Analysis/BasicAA/modref.ll b/llvm/test/Analysis/BasicAA/modref.ll index 0619f8e..1aab28f3 100644 --- a/llvm/test/Analysis/BasicAA/modref.ll +++ b/llvm/test/Analysis/BasicAA/modref.ll @@ -67,27 +67,33 @@ define i8 @test2a(ptr %P) { ret i8 %A } -define void @test3(ptr %P, i8 %X) { +define void @test3(i8 %X) { ; CHECK-LABEL: @test3( -; CHECK-NEXT: [[P2:%.*]] = getelementptr i8, ptr [[P:%.*]], i32 2 +; CHECK-NEXT: [[P:%.*]] = alloca i64, align 8 +; CHECK-NEXT: [[P2:%.*]] = getelementptr i8, ptr [[P]], i32 2 ; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 1, ptr [[P]]) ; CHECK-NEXT: store i8 2, ptr [[P2]], align 1 +; CHECK-NEXT: call void @external(ptr [[P]]) ; CHECK-NEXT: ret void ; + %P = alloca i64 %Y = add i8 %X, 1 ;; Dead, because the only use (the store) is dead. %P2 = getelementptr i8, ptr %P, i32 2 store i8 %Y, ptr %P2 ;; Not read by lifetime.end, should be removed. call void @llvm.lifetime.end.p0(i64 1, ptr %P) store i8 2, ptr %P2 + call void @external(ptr %P) ret void } -define void @test3a(ptr %P, i8 %X) { +define void @test3a(i8 %X) { ; CHECK-LABEL: @test3a( -; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 10, ptr [[P:%.*]]) +; CHECK-NEXT: [[P:%.*]] = alloca i64, align 8 +; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 10, ptr [[P]]) ; CHECK-NEXT: ret void ; + %P = alloca i64 %Y = add i8 %X, 1 ;; Dead, because the only use (the store) is dead. %P2 = getelementptr i8, ptr %P, i32 2 |