Home | History | Annotate | Download | only in JumpThreading
      1 ; RUN: opt < %s -jump-threading -disable-output -verify-dom-info
      2 @global = external global i64, align 8
      3 
      4 define void @f() {
      5 bb:
      6   br label %bb1
      7 
      8 bb1:
      9   %tmp = load i64, i64* @global, align 8
     10   %tmp2 = icmp eq i64 %tmp, 0
     11   br i1 %tmp2, label %bb27, label %bb3
     12 
     13 bb3:
     14   %tmp4 = load i64, i64* @global, align 8
     15   %tmp5 = icmp eq i64 %tmp4, 0
     16   br i1 %tmp5, label %bb6, label %bb7
     17 
     18 bb6:
     19   br label %bb7
     20 
     21 bb7:
     22   %tmp8 = phi i1 [ true, %bb3 ], [ undef, %bb6 ]
     23   %tmp9 = select i1 %tmp8, i64 %tmp4, i64 0
     24   br i1 false, label %bb10, label %bb23
     25 
     26 bb10:
     27   %tmp11 = load i64, i64* @global, align 8
     28   %tmp12 = icmp slt i64 %tmp11, 5
     29   br i1 %tmp12, label %bb13, label %bb17
     30 
     31 bb13:
     32   br label %bb14
     33 
     34 bb14:
     35   br i1 undef, label %bb15, label %bb16
     36 
     37 bb15:
     38   unreachable
     39 
     40 bb16:
     41   br label %bb10
     42 
     43 bb17:
     44   br label %bb18
     45 
     46 bb18:
     47   br i1 undef, label %bb22, label %bb13
     48 
     49 bb19:
     50   br i1 undef, label %bb20, label %bb21
     51 
     52 bb20:
     53   unreachable
     54 
     55 bb21:
     56   br label %bb18
     57 
     58 bb22:
     59   br label %bb23
     60 
     61 bb23:
     62   br i1 undef, label %bb24, label %bb13
     63 
     64 bb24:
     65   br i1 undef, label %bb26, label %bb25
     66 
     67 bb25:
     68   br label %bb19
     69 
     70 bb26:
     71   br label %bb1
     72 
     73 bb27:
     74   br label %bb24
     75 }
     76