; REQUIRES: asserts
; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -stats 2>&1 | \
; RUN:   not grep "Number of machine instructions hoisted out of loops post regalloc"

; rdar://11095580

%struct.ref_s = type { %union.color_sample, i16, i16 }
%union.color_sample = type { i64 }

@table = external global [3891 x i64]

declare i32 @foo()

define i32 @zarray(ptr nocapture %op) nounwind ssp {
entry:
  %call = tail call i32 @foo()
  %tmp = ashr i32 %call, 31
  %0 = and i32 %tmp, 1396
  %index9 = add i32 %0, 2397
  indirectbr ptr undef, [label %return, label %if.end]

if.end:                                           ; preds = %entry
  %size5 = getelementptr inbounds %struct.ref_s, ptr %op, i64 0, i32 2
  %tmp6 = load i16, ptr %size5, align 2
  %tobool1 = icmp eq i16 %tmp6, 0
  %1 = select i1 %tobool1, i32 1396, i32 -1910
  %index10 = add i32 %index9, %1
  indirectbr ptr undef, [label %return, label %while.body.lr.ph]

while.body.lr.ph:                                 ; preds = %if.end
  %tmp9 = load ptr, ptr %op, align 8
  %tmp4 = zext i16 %tmp6 to i64
  %index13 = add i32 %index10, 1658
  %2 = sext i32 %index13 to i64
  %3 = getelementptr [3891 x i64], ptr @table, i64 0, i64 %2
  %blockaddress14 = load i64, ptr %3, align 8
  %4 = inttoptr i64 %blockaddress14 to ptr
  indirectbr ptr %4, [label %while.body]

while.body:                                       ; preds = %while.body, %while.body.lr.ph
  %index7 = phi i32 [ %index15, %while.body ], [ %index13, %while.body.lr.ph ]
  %indvar = phi i64 [ %indvar.next, %while.body ], [ 0, %while.body.lr.ph ]
  %type_attrs = getelementptr %struct.ref_s, ptr %tmp9, i64 %indvar, i32 1
  store i16 32, ptr %type_attrs, align 2
  %indvar.next = add i64 %indvar, 1
  %exitcond5 = icmp eq i64 %indvar.next, %tmp4
  %tmp7 = select i1 %exitcond5, i32 1648, i32 0
  %index15 = add i32 %index7, %tmp7
  %tmp8 = select i1 %exitcond5, i64 13, i64 0
  %5 = sext i32 %index15 to i64
  %6 = getelementptr [3891 x i64], ptr @table, i64 0, i64 %5
  %blockaddress16 = load i64, ptr %6, align 8
  %7 = inttoptr i64 %blockaddress16 to ptr
  indirectbr ptr %7, [label %return, label %while.body]

return:                                           ; preds = %while.body, %if.end, %entry
  %retval.0 = phi i32 [ %call, %entry ], [ 0, %if.end ], [ 0, %while.body ]
  ret i32 %retval.0
}
