Home | History | Annotate | Download | only in GVN
      1 ; RUN: opt < %s -basicaa -gvn -S | FileCheck %s
      2 
      3 @a = external global i32		; <i32*> [#uses=7]
      4 
      5 ; CHECK: @foo
      6 define i32 @foo() nounwind {
      7 entry:
      8 	%0 = load i32* @a, align 4
      9 	%1 = icmp eq i32 %0, 4
     10 	br i1 %1, label %bb, label %bb1
     11 
     12 bb:		; preds = %entry
     13 	br label %bb8
     14 
     15 bb1:		; preds = %entry
     16 	%2 = load i32* @a, align 4
     17 	%3 = icmp eq i32 %2, 5
     18 	br i1 %3, label %bb2, label %bb3
     19 
     20 bb2:		; preds = %bb1
     21 	br label %bb8
     22 
     23 bb3:		; preds = %bb1
     24 	%4 = load i32* @a, align 4
     25 	%5 = icmp eq i32 %4, 4
     26 ; CHECK: br i1 false, label %bb4, label %bb5
     27 	br i1 %5, label %bb4, label %bb5
     28 
     29 bb4:		; preds = %bb3
     30 	%6 = load i32* @a, align 4
     31 	%7 = add i32 %6, 5
     32 	br label %bb8
     33 
     34 bb5:		; preds = %bb3
     35 	%8 = load i32* @a, align 4
     36 	%9 = icmp eq i32 %8, 5
     37 ; CHECK: br i1 false, label %bb6, label %bb7
     38 	br i1 %9, label %bb6, label %bb7
     39 
     40 bb6:		; preds = %bb5
     41 	%10 = load i32* @a, align 4
     42 	%11 = add i32 %10, 4
     43 	br label %bb8
     44 
     45 bb7:		; preds = %bb5
     46 	%12 = load i32* @a, align 4
     47 	br label %bb8
     48 
     49 bb8:		; preds = %bb7, %bb6, %bb4, %bb2, %bb
     50 	%.0 = phi i32 [ %12, %bb7 ], [ %11, %bb6 ], [ %7, %bb4 ], [ 4, %bb2 ], [ 5, %bb ]
     51 	br label %return
     52 
     53 return:		; preds = %bb8
     54 	ret i32 %.0
     55 }