Home | History | Annotate | Download | only in CorrelatedValuePropagation
      1 ; RUN: opt < %s -jump-threading -correlated-propagation
      2 
      3 %struct.S2 = type {}
      4 
      5 @g_128 = external global %struct.S2, align 1
      6 @g_106 = external global i16, align 2
      7 
      8 define void @int328(i16 signext %p_82) noreturn nounwind ssp {
      9 entry:
     10   %tobool3 = icmp eq i16 %p_82, 0
     11   br label %for.cond.outer
     12 
     13 for.cond.outer:                                   ; preds = %for.cond.loopexit, %entry
     14   br label %for.cond
     15 
     16 for.cond.loopexit:                                ; preds = %bb.nph, %for.cond9.preheader
     17   br label %for.cond.outer
     18 
     19 for.cond.loopexit4.us-lcssa:                      ; preds = %if.then
     20   br label %for.cond.loopexit4
     21 
     22 for.cond.loopexit4:                               ; preds = %for.cond.loopexit4.us-lcssa.us, %for.cond.loopexit4.us-lcssa
     23   br label %for.cond.backedge
     24 
     25 for.cond:                                         ; preds = %for.cond.backedge, %for.cond.outer
     26   br i1 %tobool3, label %for.cond.split.us, label %for.cond.for.cond.split_crit_edge
     27 
     28 for.cond.for.cond.split_crit_edge:                ; preds = %for.cond
     29   br label %lbl_133
     30 
     31 for.cond.split.us:                                ; preds = %for.cond
     32   br label %lbl_133.us
     33 
     34 lbl_133.us:                                       ; preds = %lbl_134.us, %for.cond.split.us
     35   br i1 undef, label %if.else14.us-lcssa.us, label %if.then.us
     36 
     37 lbl_134.us:                                       ; preds = %if.then.us
     38   br i1 icmp eq (i16 ptrtoint (%struct.S2* @g_128 to i16), i16 0), label %for.cond9.preheader.us-lcssa.us, label %lbl_133.us
     39 
     40 if.then.us:                                       ; preds = %lbl_133.us
     41   br i1 true, label %for.cond.loopexit4.us-lcssa.us, label %lbl_134.us
     42 
     43 if.else14.us-lcssa.us:                            ; preds = %lbl_133.us
     44   br label %if.else14
     45 
     46 for.cond9.preheader.us-lcssa.us:                  ; preds = %lbl_134.us
     47   br label %for.cond9.preheader
     48 
     49 for.cond.loopexit4.us-lcssa.us:                   ; preds = %if.then.us
     50   br label %for.cond.loopexit4
     51 
     52 lbl_133:                                          ; preds = %lbl_134, %for.cond.for.cond.split_crit_edge
     53   %l_109.0 = phi i16 [ 0, %for.cond.for.cond.split_crit_edge ], [ ptrtoint (%struct.S2* @g_128 to i16), %lbl_134 ]
     54   %tobool = icmp eq i32 undef, 0
     55   br i1 %tobool, label %if.else14.us-lcssa, label %if.then
     56 
     57 if.then:                                          ; preds = %lbl_133
     58   br i1 false, label %for.cond.loopexit4.us-lcssa, label %lbl_134
     59 
     60 lbl_134:                                          ; preds = %if.then
     61   br i1 icmp eq (i16 ptrtoint (%struct.S2* @g_128 to i16), i16 0), label %for.cond9.preheader.us-lcssa, label %lbl_133
     62 
     63 for.cond9.preheader.us-lcssa:                     ; preds = %lbl_134
     64   br label %for.cond9.preheader
     65 
     66 for.cond9.preheader:                              ; preds = %for.cond9.preheader.us-lcssa, %for.cond9.preheader.us-lcssa.us
     67   br i1 undef, label %bb.nph, label %for.cond.loopexit
     68 
     69 bb.nph:                                           ; preds = %for.cond9.preheader
     70   br label %for.cond.loopexit
     71 
     72 if.else14.us-lcssa:                               ; preds = %lbl_133
     73   br label %if.else14
     74 
     75 if.else14:                                        ; preds = %if.else14.us-lcssa, %if.else14.us-lcssa.us
     76   %l_109.0.lcssa = phi i16 [ %l_109.0, %if.else14.us-lcssa ], [ 0, %if.else14.us-lcssa.us ]
     77   store i16 undef, i16* @g_106, align 2
     78   br label %for.cond.backedge
     79 
     80 for.cond.backedge:                                ; preds = %if.else14, %for.cond.loopexit4
     81   br label %for.cond
     82 }
     83