Home | History | Annotate | Download | only in SimplifyCFG
      1 ; RUN: opt < %s -simplifycfg -S | FileCheck %s
      2 
      3 ; Test that a lifetime intrinsic isn't removed because that would change semantics
      4 
      5 ; CHECK: foo
      6 ; CHECK: entry:
      7 ; CHECK: bb0:
      8 ; CHECK: bb1:
      9 ; CHECK: ret
     10 define void @foo(i1 %x) {
     11 entry:
     12   %a = alloca i8
     13   call void @llvm.lifetime.start(i64 -1, i8* %a) nounwind
     14   br i1 %x, label %bb0, label %bb1
     15 
     16 bb0:
     17   call void @llvm.lifetime.end(i64 -1, i8* %a) nounwind
     18   br label %bb1
     19 
     20 bb1:
     21   call void @f()
     22   ret void
     23 }
     24 
     25 declare void @f()
     26 
     27 declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind
     28 
     29 declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
     30