Home | History | Annotate | Download | only in Mem2Reg
      1 ; RUN: opt -mem2reg -S -o - < %s | FileCheck %s
      2 
      3 declare void @llvm.lifetime.start(i64 %size, i8* nocapture %ptr)
      4 declare void @llvm.lifetime.end(i64 %size, i8* nocapture %ptr)
      5 
      6 define void @test1() {
      7 ; CHECK: test1
      8 ; CHECK-NOT: alloca
      9   %A = alloca i32
     10   %B = bitcast i32* %A to i8*
     11   call void @llvm.lifetime.start(i64 2, i8* %B)
     12   store i32 1, i32* %A
     13   call void @llvm.lifetime.end(i64 2, i8* %B)
     14   ret void
     15 }
     16 
     17 define void @test2() {
     18 ; CHECK: test2
     19 ; CHECK-NOT: alloca
     20   %A = alloca {i8, i16}
     21   %B = getelementptr {i8, i16}* %A, i32 0, i32 0
     22   call void @llvm.lifetime.start(i64 2, i8* %B)
     23   store {i8, i16} zeroinitializer, {i8, i16}* %A
     24   call void @llvm.lifetime.end(i64 2, i8* %B)
     25   ret void
     26 }
     27