Home | History | Annotate | Download | only in AArch64
      1 ;RUN: llc < %s -mtriple=aarch64--linux-android -regalloc=greedy -enable-deferred-spilling=true -mcpu=cortex-a57 | FileCheck %s --check-prefix=CHECK --check-prefix=DEFERRED
      2 ;RUN: llc < %s -mtriple=aarch64--linux-android -regalloc=greedy -enable-deferred-spilling=false -mcpu=cortex-a57 | FileCheck %s --check-prefix=CHECK --check-prefix=REGULAR
      3 
      4 ; Check that we do not end up with useless spill code.
      5 ;
      6 ; Move to the basic block we are interested in.
      7 ;
      8 ; CHECK: // %if.then.120
      9 ;
     10 ; REGULAR: str w21, [sp, #[[OFFSET:[0-9]+]]] // 4-byte Folded Spill
     11 ; Check that w21 wouldn't need to be spilled since it is never reused.
     12 ; REGULAR-NOT: {{[wx]}}21{{,?}}
     13 ;
     14 ; Check that w22 is used to carry a value through the call.
     15 ; DEFERRED-NOT: str {{[wx]}}22,
     16 ; DEFERRED: mov {{[wx]}}22,
     17 ; DEFERRED-NOT: str {{[wx]}}22,
     18 ;
     19 ; CHECK:        bl      fprintf
     20 ;
     21 ; DEFERRED-NOT: ldr {{[wx]}}22,
     22 ; DEFERRED: mov {{[wx][0-9]+}}, {{[wx]}}22
     23 ; DEFERRED-NOT: ldr {{[wx]}}22,
     24 ;
     25 ; REGULAR-NOT: {{[wx]}}21{{,?}}
     26 ; REGULAR: ldr w21, [sp, #[[OFFSET]]] // 4-byte Folded Reload
     27 ;
     28 ; End of the basic block we are interested in.
     29 ; CHECK:        b
     30 ; CHECK: {{[^:]+}}: // %sw.bb.123
     31 
     32 %struct.__sFILE = type { i8*, i32, i32, i32, i32, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
     33 %struct.__sbuf = type { i8*, i64 }
     34 %struct.DState = type { %struct.bz_stream*, i32, i8, i32, i8, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, [256 x i32], i32, [257 x i32], [257 x i32], i32*, i16*, i8*, i32, i32, i32, i32, i32, [256 x i8], [16 x i8], [256 x i8], [4096 x i8], [16 x i32], [18002 x i8], [18002 x i8], [6 x [258 x i8]], [6 x [258 x i32]], [6 x [258 x i32]], [6 x [258 x i32]], [6 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32*, i32*, i32* }
     35 %struct.bz_stream = type { i8*, i32, i32, i32, i8*, i32, i32, i32, i8*, i8* (i8*, i32, i32)*, void (i8*, i8*)*, i8* }
     36 
     37 @__sF = external global [0 x %struct.__sFILE], align 8
     38 @.str = private unnamed_addr constant [20 x i8] c"\0A    [%d: stuff+mf \00", align 1
     39 
     40 declare i32 @fprintf(%struct.__sFILE* nocapture, i8* nocapture readonly, ...)
     41 
     42 declare void @bar(i32)
     43 
     44 declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1)
     45 
     46 define i32 @foo(%struct.DState* %s) {
     47 entry:
     48   %state = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 1
     49   %tmp = load i32, i32* %state, align 4
     50   %cmp = icmp eq i32 %tmp, 10
     51   %save_i = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 40
     52   br i1 %cmp, label %if.end.thread, label %if.end
     53 
     54 if.end.thread:                                    ; preds = %entry
     55   %save_j = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 41
     56   %save_t = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 42
     57   %save_alphaSize = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 43
     58   %save_nGroups = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 44
     59   %save_nSelectors = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 45
     60   %save_EOB = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 46
     61   %save_groupNo = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 47
     62   %save_groupPos = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 48
     63   %save_nextSym = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 49
     64   %save_nblockMAX = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 50
     65   %save_nblock = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 51
     66   %save_es = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 52
     67   %save_N = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 53
     68   %save_curr = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 54
     69   %save_zt = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 55
     70   %save_zn = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 56
     71   %save_zvec = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 57
     72   %save_zj = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 58
     73   %tmp1 = bitcast i32* %save_i to i8*
     74   call void @llvm.memset.p0i8.i64(i8* %tmp1, i8 0, i64 108, i32 4, i1 false)
     75   br label %sw.default
     76 
     77 if.end:                                           ; preds = %entry
     78   %.pre = load i32, i32* %save_i, align 4
     79   %save_j3.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 41
     80   %.pre406 = load i32, i32* %save_j3.phi.trans.insert, align 4
     81   %save_t4.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 42
     82   %.pre407 = load i32, i32* %save_t4.phi.trans.insert, align 4
     83   %save_alphaSize5.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 43
     84   %.pre408 = load i32, i32* %save_alphaSize5.phi.trans.insert, align 4
     85   %save_nGroups6.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 44
     86   %.pre409 = load i32, i32* %save_nGroups6.phi.trans.insert, align 4
     87   %save_nSelectors7.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 45
     88   %.pre410 = load i32, i32* %save_nSelectors7.phi.trans.insert, align 4
     89   %save_EOB8.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 46
     90   %.pre411 = load i32, i32* %save_EOB8.phi.trans.insert, align 4
     91   %save_groupNo9.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 47
     92   %.pre412 = load i32, i32* %save_groupNo9.phi.trans.insert, align 4
     93   %save_groupPos10.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 48
     94   %.pre413 = load i32, i32* %save_groupPos10.phi.trans.insert, align 4
     95   %save_nextSym11.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 49
     96   %.pre414 = load i32, i32* %save_nextSym11.phi.trans.insert, align 4
     97   %save_nblockMAX12.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 50
     98   %.pre415 = load i32, i32* %save_nblockMAX12.phi.trans.insert, align 4
     99   %save_nblock13.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 51
    100   %.pre416 = load i32, i32* %save_nblock13.phi.trans.insert, align 4
    101   %save_es14.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 52
    102   %.pre417 = load i32, i32* %save_es14.phi.trans.insert, align 4
    103   %save_N15.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 53
    104   %.pre418 = load i32, i32* %save_N15.phi.trans.insert, align 4
    105   %save_curr16.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 54
    106   %.pre419 = load i32, i32* %save_curr16.phi.trans.insert, align 4
    107   %save_zt17.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 55
    108   %.pre420 = load i32, i32* %save_zt17.phi.trans.insert, align 4
    109   %save_zn18.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 56
    110   %.pre421 = load i32, i32* %save_zn18.phi.trans.insert, align 4
    111   %save_zvec19.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 57
    112   %.pre422 = load i32, i32* %save_zvec19.phi.trans.insert, align 4
    113   %save_zj20.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 58
    114   %.pre423 = load i32, i32* %save_zj20.phi.trans.insert, align 4
    115   switch i32 %tmp, label %sw.default [
    116     i32 13, label %sw.bb
    117     i32 14, label %if.end.sw.bb.65_crit_edge
    118     i32 25, label %if.end.sw.bb.123_crit_edge
    119   ]
    120 
    121 if.end.sw.bb.123_crit_edge:                       ; preds = %if.end
    122   %.pre433 = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 8
    123   br label %sw.bb.123
    124 
    125 if.end.sw.bb.65_crit_edge:                        ; preds = %if.end
    126   %bsLive69.phi.trans.insert = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 8
    127   %.pre426 = load i32, i32* %bsLive69.phi.trans.insert, align 4
    128   br label %sw.bb.65
    129 
    130 sw.bb:                                            ; preds = %if.end
    131   %sunkaddr = ptrtoint %struct.DState* %s to i64
    132   %sunkaddr485 = add i64 %sunkaddr, 8
    133   %sunkaddr486 = inttoptr i64 %sunkaddr485 to i32*
    134   store i32 13, i32* %sunkaddr486, align 4
    135   %bsLive = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 8
    136   %tmp2 = load i32, i32* %bsLive, align 4
    137   %cmp28.400 = icmp sgt i32 %tmp2, 7
    138   br i1 %cmp28.400, label %sw.bb.if.then.29_crit_edge, label %if.end.33.lr.ph
    139 
    140 sw.bb.if.then.29_crit_edge:                       ; preds = %sw.bb
    141   %sunkaddr487 = ptrtoint %struct.DState* %s to i64
    142   %sunkaddr488 = add i64 %sunkaddr487, 32
    143   %sunkaddr489 = inttoptr i64 %sunkaddr488 to i32*
    144   %.pre425 = load i32, i32* %sunkaddr489, align 4
    145   br label %if.then.29
    146 
    147 if.end.33.lr.ph:                                  ; preds = %sw.bb
    148   %tmp3 = bitcast %struct.DState* %s to %struct.bz_stream**
    149   %.pre424 = load %struct.bz_stream*, %struct.bz_stream** %tmp3, align 8
    150   %avail_in.phi.trans.insert = getelementptr inbounds %struct.bz_stream, %struct.bz_stream* %.pre424, i64 0, i32 1
    151   %.pre430 = load i32, i32* %avail_in.phi.trans.insert, align 4
    152   %tmp4 = add i32 %.pre430, -1
    153   br label %if.end.33
    154 
    155 if.then.29:                                       ; preds = %while.body.backedge, %sw.bb.if.then.29_crit_edge
    156   %tmp5 = phi i32 [ %.pre425, %sw.bb.if.then.29_crit_edge ], [ %or, %while.body.backedge ]
    157   %.lcssa393 = phi i32 [ %tmp2, %sw.bb.if.then.29_crit_edge ], [ %add, %while.body.backedge ]
    158   %sub = add nsw i32 %.lcssa393, -8
    159   %shr = lshr i32 %tmp5, %sub
    160   %and = and i32 %shr, 255
    161   %sunkaddr491 = ptrtoint %struct.DState* %s to i64
    162   %sunkaddr492 = add i64 %sunkaddr491, 36
    163   %sunkaddr493 = inttoptr i64 %sunkaddr492 to i32*
    164   store i32 %sub, i32* %sunkaddr493, align 4
    165   %blockSize100k = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 9
    166   store i32 %and, i32* %blockSize100k, align 4
    167   %and.off = add nsw i32 %and, -49
    168   %tmp6 = icmp ugt i32 %and.off, 8
    169   br i1 %tmp6, label %save_state_and_return, label %if.end.62
    170 
    171 if.end.33:                                        ; preds = %while.body.backedge, %if.end.33.lr.ph
    172   %lsr.iv482 = phi i32 [ %tmp4, %if.end.33.lr.ph ], [ %lsr.iv.next483, %while.body.backedge ]
    173   %tmp7 = phi i32 [ %tmp2, %if.end.33.lr.ph ], [ %add, %while.body.backedge ]
    174   %cmp35 = icmp eq i32 %lsr.iv482, -1
    175   br i1 %cmp35, label %save_state_and_return, label %if.end.37
    176 
    177 if.end.37:                                        ; preds = %if.end.33
    178   %tmp8 = bitcast %struct.bz_stream* %.pre424 to i8**
    179   %sunkaddr494 = ptrtoint %struct.DState* %s to i64
    180   %sunkaddr495 = add i64 %sunkaddr494, 32
    181   %sunkaddr496 = inttoptr i64 %sunkaddr495 to i32*
    182   %tmp9 = load i32, i32* %sunkaddr496, align 4
    183   %shl = shl i32 %tmp9, 8
    184   %tmp10 = load i8*, i8** %tmp8, align 8
    185   %tmp11 = load i8, i8* %tmp10, align 1
    186   %conv = zext i8 %tmp11 to i32
    187   %or = or i32 %conv, %shl
    188   store i32 %or, i32* %sunkaddr496, align 4
    189   %add = add nsw i32 %tmp7, 8
    190   %sunkaddr497 = ptrtoint %struct.DState* %s to i64
    191   %sunkaddr498 = add i64 %sunkaddr497, 36
    192   %sunkaddr499 = inttoptr i64 %sunkaddr498 to i32*
    193   store i32 %add, i32* %sunkaddr499, align 4
    194   %incdec.ptr = getelementptr inbounds i8, i8* %tmp10, i64 1
    195   store i8* %incdec.ptr, i8** %tmp8, align 8
    196   %sunkaddr500 = ptrtoint %struct.bz_stream* %.pre424 to i64
    197   %sunkaddr501 = add i64 %sunkaddr500, 8
    198   %sunkaddr502 = inttoptr i64 %sunkaddr501 to i32*
    199   store i32 %lsr.iv482, i32* %sunkaddr502, align 4
    200   %sunkaddr503 = ptrtoint %struct.bz_stream* %.pre424 to i64
    201   %sunkaddr504 = add i64 %sunkaddr503, 12
    202   %sunkaddr505 = inttoptr i64 %sunkaddr504 to i32*
    203   %tmp12 = load i32, i32* %sunkaddr505, align 4
    204   %inc = add i32 %tmp12, 1
    205   store i32 %inc, i32* %sunkaddr505, align 4
    206   %cmp49 = icmp eq i32 %inc, 0
    207   br i1 %cmp49, label %if.then.51, label %while.body.backedge
    208 
    209 if.then.51:                                       ; preds = %if.end.37
    210   %sunkaddr506 = ptrtoint %struct.bz_stream* %.pre424 to i64
    211   %sunkaddr507 = add i64 %sunkaddr506, 16
    212   %sunkaddr508 = inttoptr i64 %sunkaddr507 to i32*
    213   %tmp13 = load i32, i32* %sunkaddr508, align 4
    214   %inc53 = add i32 %tmp13, 1
    215   store i32 %inc53, i32* %sunkaddr508, align 4
    216   br label %while.body.backedge
    217 
    218 while.body.backedge:                              ; preds = %if.then.51, %if.end.37
    219   %lsr.iv.next483 = add i32 %lsr.iv482, -1
    220   %cmp28 = icmp sgt i32 %add, 7
    221   br i1 %cmp28, label %if.then.29, label %if.end.33
    222 
    223 if.end.62:                                        ; preds = %if.then.29
    224   %sub64 = add nsw i32 %and, -48
    225   %sunkaddr509 = ptrtoint %struct.DState* %s to i64
    226   %sunkaddr510 = add i64 %sunkaddr509, 40
    227   %sunkaddr511 = inttoptr i64 %sunkaddr510 to i32*
    228   store i32 %sub64, i32* %sunkaddr511, align 4
    229   br label %sw.bb.65
    230 
    231 sw.bb.65:                                         ; preds = %if.end.62, %if.end.sw.bb.65_crit_edge
    232   %bsLive69.pre-phi = phi i32* [ %bsLive69.phi.trans.insert, %if.end.sw.bb.65_crit_edge ], [ %bsLive, %if.end.62 ]
    233   %tmp14 = phi i32 [ %.pre426, %if.end.sw.bb.65_crit_edge ], [ %sub, %if.end.62 ]
    234   %sunkaddr512 = ptrtoint %struct.DState* %s to i64
    235   %sunkaddr513 = add i64 %sunkaddr512, 8
    236   %sunkaddr514 = inttoptr i64 %sunkaddr513 to i32*
    237   store i32 14, i32* %sunkaddr514, align 4
    238   %cmp70.397 = icmp sgt i32 %tmp14, 7
    239   br i1 %cmp70.397, label %if.then.72, label %if.end.82.lr.ph
    240 
    241 if.end.82.lr.ph:                                  ; preds = %sw.bb.65
    242   %tmp15 = bitcast %struct.DState* %s to %struct.bz_stream**
    243   %.pre427 = load %struct.bz_stream*, %struct.bz_stream** %tmp15, align 8
    244   %avail_in84.phi.trans.insert = getelementptr inbounds %struct.bz_stream, %struct.bz_stream* %.pre427, i64 0, i32 1
    245   %.pre431 = load i32, i32* %avail_in84.phi.trans.insert, align 4
    246   %tmp16 = add i32 %.pre431, -1
    247   br label %if.end.82
    248 
    249 if.then.72:                                       ; preds = %while.body.68.backedge, %sw.bb.65
    250   %.lcssa390 = phi i32 [ %tmp14, %sw.bb.65 ], [ %add97, %while.body.68.backedge ]
    251   %sub76 = add nsw i32 %.lcssa390, -8
    252   %sunkaddr516 = ptrtoint %struct.DState* %s to i64
    253   %sunkaddr517 = add i64 %sunkaddr516, 36
    254   %sunkaddr518 = inttoptr i64 %sunkaddr517 to i32*
    255   store i32 %sub76, i32* %sunkaddr518, align 4
    256   %currBlockNo = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 11
    257   %tmp17 = load i32, i32* %currBlockNo, align 4
    258   %inc117 = add nsw i32 %tmp17, 1
    259   store i32 %inc117, i32* %currBlockNo, align 4
    260   %verbosity = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 12
    261   %tmp18 = load i32, i32* %verbosity, align 4
    262   %cmp118 = icmp sgt i32 %tmp18, 1
    263   br i1 %cmp118, label %if.then.120, label %sw.bb.123, !prof !0
    264 
    265 if.end.82:                                        ; preds = %while.body.68.backedge, %if.end.82.lr.ph
    266   %lsr.iv480 = phi i32 [ %tmp16, %if.end.82.lr.ph ], [ %lsr.iv.next481, %while.body.68.backedge ]
    267   %tmp19 = phi i32 [ %tmp14, %if.end.82.lr.ph ], [ %add97, %while.body.68.backedge ]
    268   %cmp85 = icmp eq i32 %lsr.iv480, -1
    269   br i1 %cmp85, label %save_state_and_return, label %if.end.88
    270 
    271 if.end.88:                                        ; preds = %if.end.82
    272   %tmp20 = bitcast %struct.bz_stream* %.pre427 to i8**
    273   %sunkaddr519 = ptrtoint %struct.DState* %s to i64
    274   %sunkaddr520 = add i64 %sunkaddr519, 32
    275   %sunkaddr521 = inttoptr i64 %sunkaddr520 to i32*
    276   %tmp21 = load i32, i32* %sunkaddr521, align 4
    277   %shl90 = shl i32 %tmp21, 8
    278   %tmp22 = load i8*, i8** %tmp20, align 8
    279   %tmp23 = load i8, i8* %tmp22, align 1
    280   %conv93 = zext i8 %tmp23 to i32
    281   %or94 = or i32 %conv93, %shl90
    282   store i32 %or94, i32* %sunkaddr521, align 4
    283   %add97 = add nsw i32 %tmp19, 8
    284   %sunkaddr522 = ptrtoint %struct.DState* %s to i64
    285   %sunkaddr523 = add i64 %sunkaddr522, 36
    286   %sunkaddr524 = inttoptr i64 %sunkaddr523 to i32*
    287   store i32 %add97, i32* %sunkaddr524, align 4
    288   %incdec.ptr100 = getelementptr inbounds i8, i8* %tmp22, i64 1
    289   store i8* %incdec.ptr100, i8** %tmp20, align 8
    290   %sunkaddr525 = ptrtoint %struct.bz_stream* %.pre427 to i64
    291   %sunkaddr526 = add i64 %sunkaddr525, 8
    292   %sunkaddr527 = inttoptr i64 %sunkaddr526 to i32*
    293   store i32 %lsr.iv480, i32* %sunkaddr527, align 4
    294   %sunkaddr528 = ptrtoint %struct.bz_stream* %.pre427 to i64
    295   %sunkaddr529 = add i64 %sunkaddr528, 12
    296   %sunkaddr530 = inttoptr i64 %sunkaddr529 to i32*
    297   %tmp24 = load i32, i32* %sunkaddr530, align 4
    298   %inc106 = add i32 %tmp24, 1
    299   store i32 %inc106, i32* %sunkaddr530, align 4
    300   %cmp109 = icmp eq i32 %inc106, 0
    301   br i1 %cmp109, label %if.then.111, label %while.body.68.backedge
    302 
    303 if.then.111:                                      ; preds = %if.end.88
    304   %sunkaddr531 = ptrtoint %struct.bz_stream* %.pre427 to i64
    305   %sunkaddr532 = add i64 %sunkaddr531, 16
    306   %sunkaddr533 = inttoptr i64 %sunkaddr532 to i32*
    307   %tmp25 = load i32, i32* %sunkaddr533, align 4
    308   %inc114 = add i32 %tmp25, 1
    309   store i32 %inc114, i32* %sunkaddr533, align 4
    310   br label %while.body.68.backedge
    311 
    312 while.body.68.backedge:                           ; preds = %if.then.111, %if.end.88
    313   %lsr.iv.next481 = add i32 %lsr.iv480, -1
    314   %cmp70 = icmp sgt i32 %add97, 7
    315   br i1 %cmp70, label %if.then.72, label %if.end.82
    316 
    317 if.then.120:                                      ; preds = %if.then.72
    318   %call = tail call i32 (%struct.__sFILE*, i8*, ...) @fprintf(%struct.__sFILE* getelementptr inbounds ([0 x %struct.__sFILE], [0 x %struct.__sFILE]* @__sF, i64 0, i64 2), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %inc117)
    319   br label %sw.bb.123
    320 
    321 sw.bb.123:                                        ; preds = %if.then.120, %if.then.72, %if.end.sw.bb.123_crit_edge
    322   %bsLive127.pre-phi = phi i32* [ %.pre433, %if.end.sw.bb.123_crit_edge ], [ %bsLive69.pre-phi, %if.then.72 ], [ %bsLive69.pre-phi, %if.then.120 ]
    323   %sunkaddr534 = ptrtoint %struct.DState* %s to i64
    324   %sunkaddr535 = add i64 %sunkaddr534, 8
    325   %sunkaddr536 = inttoptr i64 %sunkaddr535 to i32*
    326   store i32 25, i32* %sunkaddr536, align 4
    327   %tmp26 = load i32, i32* %bsLive127.pre-phi, align 4
    328   %cmp128.395 = icmp sgt i32 %tmp26, 7
    329   br i1 %cmp128.395, label %sw.bb.123.if.then.130_crit_edge, label %if.end.140.lr.ph
    330 
    331 sw.bb.123.if.then.130_crit_edge:                  ; preds = %sw.bb.123
    332   %sunkaddr537 = ptrtoint %struct.DState* %s to i64
    333   %sunkaddr538 = add i64 %sunkaddr537, 32
    334   %sunkaddr539 = inttoptr i64 %sunkaddr538 to i32*
    335   %.pre429 = load i32, i32* %sunkaddr539, align 4
    336   br label %if.then.130
    337 
    338 if.end.140.lr.ph:                                 ; preds = %sw.bb.123
    339   %tmp27 = bitcast %struct.DState* %s to %struct.bz_stream**
    340   %.pre428 = load %struct.bz_stream*, %struct.bz_stream** %tmp27, align 8
    341   %avail_in142.phi.trans.insert = getelementptr inbounds %struct.bz_stream, %struct.bz_stream* %.pre428, i64 0, i32 1
    342   %.pre432 = load i32, i32* %avail_in142.phi.trans.insert, align 4
    343   %tmp28 = add i32 %.pre432, -1
    344   br label %if.end.140
    345 
    346 if.then.130:                                      ; preds = %while.body.126.backedge, %sw.bb.123.if.then.130_crit_edge
    347   %tmp29 = phi i32 [ %.pre429, %sw.bb.123.if.then.130_crit_edge ], [ %or152, %while.body.126.backedge ]
    348   %.lcssa = phi i32 [ %tmp26, %sw.bb.123.if.then.130_crit_edge ], [ %add155, %while.body.126.backedge ]
    349   %sub134 = add nsw i32 %.lcssa, -8
    350   %shr135 = lshr i32 %tmp29, %sub134
    351   store i32 %sub134, i32* %bsLive127.pre-phi, align 4
    352   %origPtr = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 13
    353   %tmp30 = load i32, i32* %origPtr, align 4
    354   %shl175 = shl i32 %tmp30, 8
    355   %conv176 = and i32 %shr135, 255
    356   %or177 = or i32 %shl175, %conv176
    357   store i32 %or177, i32* %origPtr, align 4
    358   %nInUse = getelementptr inbounds %struct.DState, %struct.DState* %s, i64 0, i32 27
    359   %tmp31 = load i32, i32* %nInUse, align 4
    360   %add179 = add nsw i32 %tmp31, 2
    361   br label %save_state_and_return
    362 
    363 if.end.140:                                       ; preds = %while.body.126.backedge, %if.end.140.lr.ph
    364   %lsr.iv = phi i32 [ %tmp28, %if.end.140.lr.ph ], [ %lsr.iv.next, %while.body.126.backedge ]
    365   %tmp32 = phi i32 [ %tmp26, %if.end.140.lr.ph ], [ %add155, %while.body.126.backedge ]
    366   %cmp143 = icmp eq i32 %lsr.iv, -1
    367   br i1 %cmp143, label %save_state_and_return, label %if.end.146
    368 
    369 if.end.146:                                       ; preds = %if.end.140
    370   %tmp33 = bitcast %struct.bz_stream* %.pre428 to i8**
    371   %sunkaddr541 = ptrtoint %struct.DState* %s to i64
    372   %sunkaddr542 = add i64 %sunkaddr541, 32
    373   %sunkaddr543 = inttoptr i64 %sunkaddr542 to i32*
    374   %tmp34 = load i32, i32* %sunkaddr543, align 4
    375   %shl148 = shl i32 %tmp34, 8
    376   %tmp35 = load i8*, i8** %tmp33, align 8
    377   %tmp36 = load i8, i8* %tmp35, align 1
    378   %conv151 = zext i8 %tmp36 to i32
    379   %or152 = or i32 %conv151, %shl148
    380   store i32 %or152, i32* %sunkaddr543, align 4
    381   %add155 = add nsw i32 %tmp32, 8
    382   store i32 %add155, i32* %bsLive127.pre-phi, align 4
    383   %incdec.ptr158 = getelementptr inbounds i8, i8* %tmp35, i64 1
    384   store i8* %incdec.ptr158, i8** %tmp33, align 8
    385   %sunkaddr544 = ptrtoint %struct.bz_stream* %.pre428 to i64
    386   %sunkaddr545 = add i64 %sunkaddr544, 8
    387   %sunkaddr546 = inttoptr i64 %sunkaddr545 to i32*
    388   store i32 %lsr.iv, i32* %sunkaddr546, align 4
    389   %sunkaddr547 = ptrtoint %struct.bz_stream* %.pre428 to i64
    390   %sunkaddr548 = add i64 %sunkaddr547, 12
    391   %sunkaddr549 = inttoptr i64 %sunkaddr548 to i32*
    392   %tmp37 = load i32, i32* %sunkaddr549, align 4
    393   %inc164 = add i32 %tmp37, 1
    394   store i32 %inc164, i32* %sunkaddr549, align 4
    395   %cmp167 = icmp eq i32 %inc164, 0
    396   br i1 %cmp167, label %if.then.169, label %while.body.126.backedge
    397 
    398 if.then.169:                                      ; preds = %if.end.146
    399   %sunkaddr550 = ptrtoint %struct.bz_stream* %.pre428 to i64
    400   %sunkaddr551 = add i64 %sunkaddr550, 16
    401   %sunkaddr552 = inttoptr i64 %sunkaddr551 to i32*
    402   %tmp38 = load i32, i32* %sunkaddr552, align 4
    403   %inc172 = add i32 %tmp38, 1
    404   store i32 %inc172, i32* %sunkaddr552, align 4
    405   br label %while.body.126.backedge
    406 
    407 while.body.126.backedge:                          ; preds = %if.then.169, %if.end.146
    408   %lsr.iv.next = add i32 %lsr.iv, -1
    409   %cmp128 = icmp sgt i32 %add155, 7
    410   br i1 %cmp128, label %if.then.130, label %if.end.140
    411 
    412 sw.default:                                       ; preds = %if.end, %if.end.thread
    413   %tmp39 = phi i32 [ 0, %if.end.thread ], [ %.pre, %if.end ]
    414   %tmp40 = phi i32 [ 0, %if.end.thread ], [ %.pre406, %if.end ]
    415   %tmp41 = phi i32 [ 0, %if.end.thread ], [ %.pre407, %if.end ]
    416   %tmp42 = phi i32 [ 0, %if.end.thread ], [ %.pre408, %if.end ]
    417   %tmp43 = phi i32 [ 0, %if.end.thread ], [ %.pre409, %if.end ]
    418   %tmp44 = phi i32 [ 0, %if.end.thread ], [ %.pre410, %if.end ]
    419   %tmp45 = phi i32 [ 0, %if.end.thread ], [ %.pre411, %if.end ]
    420   %tmp46 = phi i32 [ 0, %if.end.thread ], [ %.pre412, %if.end ]
    421   %tmp47 = phi i32 [ 0, %if.end.thread ], [ %.pre413, %if.end ]
    422   %tmp48 = phi i32 [ 0, %if.end.thread ], [ %.pre414, %if.end ]
    423   %tmp49 = phi i32 [ 0, %if.end.thread ], [ %.pre415, %if.end ]
    424   %tmp50 = phi i32 [ 0, %if.end.thread ], [ %.pre416, %if.end ]
    425   %tmp51 = phi i32 [ 0, %if.end.thread ], [ %.pre417, %if.end ]
    426   %tmp52 = phi i32 [ 0, %if.end.thread ], [ %.pre418, %if.end ]
    427   %tmp53 = phi i32 [ 0, %if.end.thread ], [ %.pre419, %if.end ]
    428   %tmp54 = phi i32 [ 0, %if.end.thread ], [ %.pre420, %if.end ]
    429   %tmp55 = phi i32 [ 0, %if.end.thread ], [ %.pre421, %if.end ]
    430   %tmp56 = phi i32 [ 0, %if.end.thread ], [ %.pre422, %if.end ]
    431   %tmp57 = phi i32 [ 0, %if.end.thread ], [ %.pre423, %if.end ]
    432   %save_j3.pre-phi469 = phi i32* [ %save_j, %if.end.thread ], [ %save_j3.phi.trans.insert, %if.end ]
    433   %save_t4.pre-phi467 = phi i32* [ %save_t, %if.end.thread ], [ %save_t4.phi.trans.insert, %if.end ]
    434   %save_alphaSize5.pre-phi465 = phi i32* [ %save_alphaSize, %if.end.thread ], [ %save_alphaSize5.phi.trans.insert, %if.end ]
    435   %save_nGroups6.pre-phi463 = phi i32* [ %save_nGroups, %if.end.thread ], [ %save_nGroups6.phi.trans.insert, %if.end ]
    436   %save_nSelectors7.pre-phi461 = phi i32* [ %save_nSelectors, %if.end.thread ], [ %save_nSelectors7.phi.trans.insert, %if.end ]
    437   %save_EOB8.pre-phi459 = phi i32* [ %save_EOB, %if.end.thread ], [ %save_EOB8.phi.trans.insert, %if.end ]
    438   %save_groupNo9.pre-phi457 = phi i32* [ %save_groupNo, %if.end.thread ], [ %save_groupNo9.phi.trans.insert, %if.end ]
    439   %save_groupPos10.pre-phi455 = phi i32* [ %save_groupPos, %if.end.thread ], [ %save_groupPos10.phi.trans.insert, %if.end ]
    440   %save_nextSym11.pre-phi453 = phi i32* [ %save_nextSym, %if.end.thread ], [ %save_nextSym11.phi.trans.insert, %if.end ]
    441   %save_nblockMAX12.pre-phi451 = phi i32* [ %save_nblockMAX, %if.end.thread ], [ %save_nblockMAX12.phi.trans.insert, %if.end ]
    442   %save_nblock13.pre-phi449 = phi i32* [ %save_nblock, %if.end.thread ], [ %save_nblock13.phi.trans.insert, %if.end ]
    443   %save_es14.pre-phi447 = phi i32* [ %save_es, %if.end.thread ], [ %save_es14.phi.trans.insert, %if.end ]
    444   %save_N15.pre-phi445 = phi i32* [ %save_N, %if.end.thread ], [ %save_N15.phi.trans.insert, %if.end ]
    445   %save_curr16.pre-phi443 = phi i32* [ %save_curr, %if.end.thread ], [ %save_curr16.phi.trans.insert, %if.end ]
    446   %save_zt17.pre-phi441 = phi i32* [ %save_zt, %if.end.thread ], [ %save_zt17.phi.trans.insert, %if.end ]
    447   %save_zn18.pre-phi439 = phi i32* [ %save_zn, %if.end.thread ], [ %save_zn18.phi.trans.insert, %if.end ]
    448   %save_zvec19.pre-phi437 = phi i32* [ %save_zvec, %if.end.thread ], [ %save_zvec19.phi.trans.insert, %if.end ]
    449   %save_zj20.pre-phi435 = phi i32* [ %save_zj, %if.end.thread ], [ %save_zj20.phi.trans.insert, %if.end ]
    450   tail call void @bar(i32 4001)
    451   br label %save_state_and_return
    452 
    453 save_state_and_return:                            ; preds = %sw.default, %if.end.140, %if.then.130, %if.end.82, %if.end.33, %if.then.29
    454   %tmp58 = phi i32 [ %tmp39, %sw.default ], [ %.pre, %if.then.29 ], [ %.pre, %if.then.130 ], [ %.pre, %if.end.140 ], [ %.pre, %if.end.82 ], [ %.pre, %if.end.33 ]
    455   %tmp59 = phi i32 [ %tmp40, %sw.default ], [ %.pre406, %if.then.29 ], [ %.pre406, %if.then.130 ], [ %.pre406, %if.end.140 ], [ %.pre406, %if.end.82 ], [ %.pre406, %if.end.33 ]
    456   %tmp60 = phi i32 [ %tmp41, %sw.default ], [ %.pre407, %if.then.29 ], [ %.pre407, %if.then.130 ], [ %.pre407, %if.end.140 ], [ %.pre407, %if.end.82 ], [ %.pre407, %if.end.33 ]
    457   %tmp61 = phi i32 [ %tmp43, %sw.default ], [ %.pre409, %if.then.29 ], [ %.pre409, %if.then.130 ], [ %.pre409, %if.end.140 ], [ %.pre409, %if.end.82 ], [ %.pre409, %if.end.33 ]
    458   %tmp62 = phi i32 [ %tmp44, %sw.default ], [ %.pre410, %if.then.29 ], [ %.pre410, %if.then.130 ], [ %.pre410, %if.end.140 ], [ %.pre410, %if.end.82 ], [ %.pre410, %if.end.33 ]
    459   %tmp63 = phi i32 [ %tmp45, %sw.default ], [ %.pre411, %if.then.29 ], [ %.pre411, %if.then.130 ], [ %.pre411, %if.end.140 ], [ %.pre411, %if.end.82 ], [ %.pre411, %if.end.33 ]
    460   %tmp64 = phi i32 [ %tmp46, %sw.default ], [ %.pre412, %if.then.29 ], [ %.pre412, %if.then.130 ], [ %.pre412, %if.end.140 ], [ %.pre412, %if.end.82 ], [ %.pre412, %if.end.33 ]
    461   %tmp65 = phi i32 [ %tmp47, %sw.default ], [ %.pre413, %if.then.29 ], [ %.pre413, %if.then.130 ], [ %.pre413, %if.end.140 ], [ %.pre413, %if.end.82 ], [ %.pre413, %if.end.33 ]
    462   %tmp66 = phi i32 [ %tmp48, %sw.default ], [ %.pre414, %if.then.29 ], [ %.pre414, %if.then.130 ], [ %.pre414, %if.end.140 ], [ %.pre414, %if.end.82 ], [ %.pre414, %if.end.33 ]
    463   %tmp67 = phi i32 [ %tmp49, %sw.default ], [ %.pre415, %if.then.29 ], [ %.pre415, %if.then.130 ], [ %.pre415, %if.end.140 ], [ %.pre415, %if.end.82 ], [ %.pre415, %if.end.33 ]
    464   %tmp68 = phi i32 [ %tmp51, %sw.default ], [ %.pre417, %if.then.29 ], [ %.pre417, %if.then.130 ], [ %.pre417, %if.end.140 ], [ %.pre417, %if.end.82 ], [ %.pre417, %if.end.33 ]
    465   %tmp69 = phi i32 [ %tmp52, %sw.default ], [ %.pre418, %if.then.29 ], [ %.pre418, %if.then.130 ], [ %.pre418, %if.end.140 ], [ %.pre418, %if.end.82 ], [ %.pre418, %if.end.33 ]
    466   %tmp70 = phi i32 [ %tmp53, %sw.default ], [ %.pre419, %if.then.29 ], [ %.pre419, %if.then.130 ], [ %.pre419, %if.end.140 ], [ %.pre419, %if.end.82 ], [ %.pre419, %if.end.33 ]
    467   %tmp71 = phi i32 [ %tmp54, %sw.default ], [ %.pre420, %if.then.29 ], [ %.pre420, %if.then.130 ], [ %.pre420, %if.end.140 ], [ %.pre420, %if.end.82 ], [ %.pre420, %if.end.33 ]
    468   %tmp72 = phi i32 [ %tmp55, %sw.default ], [ %.pre421, %if.then.29 ], [ %.pre421, %if.then.130 ], [ %.pre421, %if.end.140 ], [ %.pre421, %if.end.82 ], [ %.pre421, %if.end.33 ]
    469   %tmp73 = phi i32 [ %tmp56, %sw.default ], [ %.pre422, %if.then.29 ], [ %.pre422, %if.then.130 ], [ %.pre422, %if.end.140 ], [ %.pre422, %if.end.82 ], [ %.pre422, %if.end.33 ]
    470   %tmp74 = phi i32 [ %tmp57, %sw.default ], [ %.pre423, %if.then.29 ], [ %.pre423, %if.then.130 ], [ %.pre423, %if.end.140 ], [ %.pre423, %if.end.82 ], [ %.pre423, %if.end.33 ]
    471   %save_j3.pre-phi468 = phi i32* [ %save_j3.pre-phi469, %sw.default ], [ %save_j3.phi.trans.insert, %if.then.29 ], [ %save_j3.phi.trans.insert, %if.then.130 ], [ %save_j3.phi.trans.insert, %if.end.140 ], [ %save_j3.phi.trans.insert, %if.end.82 ], [ %save_j3.phi.trans.insert, %if.end.33 ]
    472   %save_t4.pre-phi466 = phi i32* [ %save_t4.pre-phi467, %sw.default ], [ %save_t4.phi.trans.insert, %if.then.29 ], [ %save_t4.phi.trans.insert, %if.then.130 ], [ %save_t4.phi.trans.insert, %if.end.140 ], [ %save_t4.phi.trans.insert, %if.end.82 ], [ %save_t4.phi.trans.insert, %if.end.33 ]
    473   %save_alphaSize5.pre-phi464 = phi i32* [ %save_alphaSize5.pre-phi465, %sw.default ], [ %save_alphaSize5.phi.trans.insert, %if.then.29 ], [ %save_alphaSize5.phi.trans.insert, %if.then.130 ], [ %save_alphaSize5.phi.trans.insert, %if.end.140 ], [ %save_alphaSize5.phi.trans.insert, %if.end.82 ], [ %save_alphaSize5.phi.trans.insert, %if.end.33 ]
    474   %save_nGroups6.pre-phi462 = phi i32* [ %save_nGroups6.pre-phi463, %sw.default ], [ %save_nGroups6.phi.trans.insert, %if.then.29 ], [ %save_nGroups6.phi.trans.insert, %if.then.130 ], [ %save_nGroups6.phi.trans.insert, %if.end.140 ], [ %save_nGroups6.phi.trans.insert, %if.end.82 ], [ %save_nGroups6.phi.trans.insert, %if.end.33 ]
    475   %save_nSelectors7.pre-phi460 = phi i32* [ %save_nSelectors7.pre-phi461, %sw.default ], [ %save_nSelectors7.phi.trans.insert, %if.then.29 ], [ %save_nSelectors7.phi.trans.insert, %if.then.130 ], [ %save_nSelectors7.phi.trans.insert, %if.end.140 ], [ %save_nSelectors7.phi.trans.insert, %if.end.82 ], [ %save_nSelectors7.phi.trans.insert, %if.end.33 ]
    476   %save_EOB8.pre-phi458 = phi i32* [ %save_EOB8.pre-phi459, %sw.default ], [ %save_EOB8.phi.trans.insert, %if.then.29 ], [ %save_EOB8.phi.trans.insert, %if.then.130 ], [ %save_EOB8.phi.trans.insert, %if.end.140 ], [ %save_EOB8.phi.trans.insert, %if.end.82 ], [ %save_EOB8.phi.trans.insert, %if.end.33 ]
    477   %save_groupNo9.pre-phi456 = phi i32* [ %save_groupNo9.pre-phi457, %sw.default ], [ %save_groupNo9.phi.trans.insert, %if.then.29 ], [ %save_groupNo9.phi.trans.insert, %if.then.130 ], [ %save_groupNo9.phi.trans.insert, %if.end.140 ], [ %save_groupNo9.phi.trans.insert, %if.end.82 ], [ %save_groupNo9.phi.trans.insert, %if.end.33 ]
    478   %save_groupPos10.pre-phi454 = phi i32* [ %save_groupPos10.pre-phi455, %sw.default ], [ %save_groupPos10.phi.trans.insert, %if.then.29 ], [ %save_groupPos10.phi.trans.insert, %if.then.130 ], [ %save_groupPos10.phi.trans.insert, %if.end.140 ], [ %save_groupPos10.phi.trans.insert, %if.end.82 ], [ %save_groupPos10.phi.trans.insert, %if.end.33 ]
    479   %save_nextSym11.pre-phi452 = phi i32* [ %save_nextSym11.pre-phi453, %sw.default ], [ %save_nextSym11.phi.trans.insert, %if.then.29 ], [ %save_nextSym11.phi.trans.insert, %if.then.130 ], [ %save_nextSym11.phi.trans.insert, %if.end.140 ], [ %save_nextSym11.phi.trans.insert, %if.end.82 ], [ %save_nextSym11.phi.trans.insert, %if.end.33 ]
    480   %save_nblockMAX12.pre-phi450 = phi i32* [ %save_nblockMAX12.pre-phi451, %sw.default ], [ %save_nblockMAX12.phi.trans.insert, %if.then.29 ], [ %save_nblockMAX12.phi.trans.insert, %if.then.130 ], [ %save_nblockMAX12.phi.trans.insert, %if.end.140 ], [ %save_nblockMAX12.phi.trans.insert, %if.end.82 ], [ %save_nblockMAX12.phi.trans.insert, %if.end.33 ]
    481   %save_nblock13.pre-phi448 = phi i32* [ %save_nblock13.pre-phi449, %sw.default ], [ %save_nblock13.phi.trans.insert, %if.then.29 ], [ %save_nblock13.phi.trans.insert, %if.then.130 ], [ %save_nblock13.phi.trans.insert, %if.end.140 ], [ %save_nblock13.phi.trans.insert, %if.end.82 ], [ %save_nblock13.phi.trans.insert, %if.end.33 ]
    482   %save_es14.pre-phi446 = phi i32* [ %save_es14.pre-phi447, %sw.default ], [ %save_es14.phi.trans.insert, %if.then.29 ], [ %save_es14.phi.trans.insert, %if.then.130 ], [ %save_es14.phi.trans.insert, %if.end.140 ], [ %save_es14.phi.trans.insert, %if.end.82 ], [ %save_es14.phi.trans.insert, %if.end.33 ]
    483   %save_N15.pre-phi444 = phi i32* [ %save_N15.pre-phi445, %sw.default ], [ %save_N15.phi.trans.insert, %if.then.29 ], [ %save_N15.phi.trans.insert, %if.then.130 ], [ %save_N15.phi.trans.insert, %if.end.140 ], [ %save_N15.phi.trans.insert, %if.end.82 ], [ %save_N15.phi.trans.insert, %if.end.33 ]
    484   %save_curr16.pre-phi442 = phi i32* [ %save_curr16.pre-phi443, %sw.default ], [ %save_curr16.phi.trans.insert, %if.then.29 ], [ %save_curr16.phi.trans.insert, %if.then.130 ], [ %save_curr16.phi.trans.insert, %if.end.140 ], [ %save_curr16.phi.trans.insert, %if.end.82 ], [ %save_curr16.phi.trans.insert, %if.end.33 ]
    485   %save_zt17.pre-phi440 = phi i32* [ %save_zt17.pre-phi441, %sw.default ], [ %save_zt17.phi.trans.insert, %if.then.29 ], [ %save_zt17.phi.trans.insert, %if.then.130 ], [ %save_zt17.phi.trans.insert, %if.end.140 ], [ %save_zt17.phi.trans.insert, %if.end.82 ], [ %save_zt17.phi.trans.insert, %if.end.33 ]
    486   %save_zn18.pre-phi438 = phi i32* [ %save_zn18.pre-phi439, %sw.default ], [ %save_zn18.phi.trans.insert, %if.then.29 ], [ %save_zn18.phi.trans.insert, %if.then.130 ], [ %save_zn18.phi.trans.insert, %if.end.140 ], [ %save_zn18.phi.trans.insert, %if.end.82 ], [ %save_zn18.phi.trans.insert, %if.end.33 ]
    487   %save_zvec19.pre-phi436 = phi i32* [ %save_zvec19.pre-phi437, %sw.default ], [ %save_zvec19.phi.trans.insert, %if.then.29 ], [ %save_zvec19.phi.trans.insert, %if.then.130 ], [ %save_zvec19.phi.trans.insert, %if.end.140 ], [ %save_zvec19.phi.trans.insert, %if.end.82 ], [ %save_zvec19.phi.trans.insert, %if.end.33 ]
    488   %save_zj20.pre-phi434 = phi i32* [ %save_zj20.pre-phi435, %sw.default ], [ %save_zj20.phi.trans.insert, %if.then.29 ], [ %save_zj20.phi.trans.insert, %if.then.130 ], [ %save_zj20.phi.trans.insert, %if.end.140 ], [ %save_zj20.phi.trans.insert, %if.end.82 ], [ %save_zj20.phi.trans.insert, %if.end.33 ]
    489   %nblock.1 = phi i32 [ %tmp50, %sw.default ], [ %.pre416, %if.then.29 ], [ 0, %if.then.130 ], [ %.pre416, %if.end.140 ], [ %.pre416, %if.end.82 ], [ %.pre416, %if.end.33 ]
    490   %alphaSize.1 = phi i32 [ %tmp42, %sw.default ], [ %.pre408, %if.then.29 ], [ %add179, %if.then.130 ], [ %.pre408, %if.end.140 ], [ %.pre408, %if.end.82 ], [ %.pre408, %if.end.33 ]
    491   %retVal.0 = phi i32 [ 0, %sw.default ], [ -5, %if.then.29 ], [ -4, %if.then.130 ], [ 0, %if.end.140 ], [ 0, %if.end.82 ], [ 0, %if.end.33 ]
    492   store i32 %tmp58, i32* %save_i, align 4
    493   store i32 %tmp59, i32* %save_j3.pre-phi468, align 4
    494   store i32 %tmp60, i32* %save_t4.pre-phi466, align 4
    495   store i32 %alphaSize.1, i32* %save_alphaSize5.pre-phi464, align 4
    496   store i32 %tmp61, i32* %save_nGroups6.pre-phi462, align 4
    497   store i32 %tmp62, i32* %save_nSelectors7.pre-phi460, align 4
    498   store i32 %tmp63, i32* %save_EOB8.pre-phi458, align 4
    499   store i32 %tmp64, i32* %save_groupNo9.pre-phi456, align 4
    500   store i32 %tmp65, i32* %save_groupPos10.pre-phi454, align 4
    501   store i32 %tmp66, i32* %save_nextSym11.pre-phi452, align 4
    502   store i32 %tmp67, i32* %save_nblockMAX12.pre-phi450, align 4
    503   store i32 %nblock.1, i32* %save_nblock13.pre-phi448, align 4
    504   store i32 %tmp68, i32* %save_es14.pre-phi446, align 4
    505   store i32 %tmp69, i32* %save_N15.pre-phi444, align 4
    506   store i32 %tmp70, i32* %save_curr16.pre-phi442, align 4
    507   store i32 %tmp71, i32* %save_zt17.pre-phi440, align 4
    508   store i32 %tmp72, i32* %save_zn18.pre-phi438, align 4
    509   store i32 %tmp73, i32* %save_zvec19.pre-phi436, align 4
    510   store i32 %tmp74, i32* %save_zj20.pre-phi434, align 4
    511   ret i32 %retVal.0
    512 }
    513 
    514 !0 = !{!"branch_weights", i32 10, i32 1}
    515