Home | History | Annotate | Download | only in GVN
      1 ; RUN: opt -memdep -gvn -disable-output < %s
      2 
      3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
      4 target triple = "x86_64-apple-darwin10.0"
      5 
      6 define i32 @test2() nounwind ssp {
      7 entry:
      8     ret i32 0
      9 
     10 unreachable_block:
     11     %a = add i32 %a, 1
     12     ret i32 %a
     13 }
     14 
     15 define i32 @pr23096_test0() {
     16 entry:
     17   br label %bb0
     18 
     19 bb1:
     20   %ptr1 = ptrtoint i32* %ptr2 to i64
     21   %ptr2 = inttoptr i64 %ptr1 to i32*
     22   br i1 undef, label %bb0, label %bb1
     23 
     24 bb0:
     25   %phi = phi i32* [ undef, %entry ], [ %ptr2, %bb1 ]
     26   %load = load i32, i32* %phi
     27   ret i32 %load
     28 }
     29 
     30 define i32 @pr23096_test1() {
     31 entry:
     32   br label %bb0
     33 
     34 bb1:
     35   %ptr1 = getelementptr i32, i32* %ptr2, i32 0
     36   %ptr2 = getelementptr i32, i32* %ptr1, i32 0
     37   br i1 undef, label %bb0, label %bb1
     38 
     39 bb0:
     40   %phi = phi i32* [ undef, %entry ], [ %ptr2, %bb1 ]
     41   %load = load i32, i32* %phi
     42   ret i32 %load
     43 }
     44