; RUN: llc < %s -march=x86-64 >/dev/null

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"

define void @test0() nounwind {
if.end90.i.i:
  br label %while.body.i.i221.i

while.body.i.i221.i:                              ; preds = %while.cond.backedge.i.i.i, %if.end90.i.i
  br i1 undef, label %if.then.i.i224.i, label %while.cond.backedge.i.i.i

while.cond.backedge.i.i.i:                        ; preds = %for.end.i.i.i, %while.body.i.i221.i
  br label %while.body.i.i221.i

if.then.i.i224.i:                                 ; preds = %while.body.i.i221.i
  switch i32 undef, label %for.cond.i.i226.i [
    i32 92, label %sw.bb.i.i225.i
    i32 34, label %sw.bb.i.i225.i
    i32 110, label %sw.bb21.i.i.i
  ]

sw.bb.i.i225.i:                                   ; preds = %if.then.i.i224.i, %if.then.i.i224.i
  unreachable

sw.bb21.i.i.i:                                    ; preds = %if.then.i.i224.i
  unreachable

for.cond.i.i226.i:                                ; preds = %for.body.i.i.i, %if.then.i.i224.i
  %0 = phi i64 [ %tmp154.i.i.i, %for.body.i.i.i ], [ 0, %if.then.i.i224.i ] ; <i64> [#uses=2]
  %tmp154.i.i.i = add i64 %0, 1                   ; <i64> [#uses=2]
  %i.0.i.i.i = trunc i64 %0 to i32                ; <i32> [#uses=1]
  br i1 undef, label %land.rhs.i.i.i, label %for.end.i.i.i

land.rhs.i.i.i:                                   ; preds = %for.cond.i.i226.i
  br i1 undef, label %for.body.i.i.i, label %for.end.i.i.i

for.body.i.i.i:                                   ; preds = %land.rhs.i.i.i
  br label %for.cond.i.i226.i

for.end.i.i.i:                                    ; preds = %land.rhs.i.i.i, %for.cond.i.i226.i
  %idx.ext.i.i.i = sext i32 %i.0.i.i.i to i64     ; <i64> [#uses=1]
  %sub.ptr72.sum.i.i.i = xor i64 %idx.ext.i.i.i, -1 ; <i64> [#uses=1]
  %pos.addr.1.sum155.i.i.i = add i64 %tmp154.i.i.i, %sub.ptr72.sum.i.i.i ; <i64> [#uses=1]
  %arrayidx76.i.i.i = getelementptr inbounds i8* undef, i64 %pos.addr.1.sum155.i.i.i ; <i8*> [#uses=0]
  br label %while.cond.backedge.i.i.i
}

define void @test1() nounwind {
entry:
  %t = shl i32 undef, undef                     ; <i32> [#uses=1]
  %t9 = sub nsw i32 0, %t                     ; <i32> [#uses=1]
  br label %outer

outer:                                             ; preds = %bb18, %bb
  %i12 = phi i32 [ %t21, %bb18 ], [ 0, %entry ]  ; <i32> [#uses=2]
  %i13 = phi i32 [ %t20, %bb18 ], [ 0, %entry ]  ; <i32> [#uses=2]
  br label %inner

inner:                                             ; preds = %bb16, %bb11
  %t17 = phi i32 [ %i13, %outer ], [ undef, %inner ] ; <i32> [#uses=1]
  store i32 %t17, i32* undef
  br i1 undef, label %bb18, label %inner

bb18:                                             ; preds = %bb16
  %t19 = add i32 %i13, %t9                 ; <i32> [#uses=1]
  %t20 = add i32 %t19, %i12                 ; <i32> [#uses=1]
  %t21 = add i32 %i12, 1                      ; <i32> [#uses=1]
  br label %outer
}
