| ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | 
 | ; rdar://7059496 | 
 |  | 
 | 	%struct.brinfo = type <{ %struct.brinfo*, %struct.brinfo*, i8*, i32, i32, i32, i8, i8, i8, i8 }> | 
 | 	%struct.cadata = type <{ i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i32, %struct.cmatcher*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i8, i8, i8, i8 }> | 
 | 	%struct.cline = type <{ %struct.cline*, i32, i8, i8, i8, i8, i8*, i32, i8, i8, i8, i8, i8*, i32, i8, i8, i8, i8, i8*, i32, i32, %struct.cline*, %struct.cline*, i32, i32 }> | 
 | 	%struct.cmatch = type <{ i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i8, i8, i8, i8, i32*, i32*, i8*, i8*, i32, i32, i32, i32, i16, i8, i8, i16, i8, i8 }> | 
 | 	%struct.cmatcher = type <{ i32, i8, i8, i8, i8, %struct.cmatcher*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8, %struct.cpattern*, i32, i8, i8, i8, i8 }> | 
 | 	%struct.cpattern = type <{ %struct.cpattern*, i32, i8, i8, i8, i8, %union.anon }> | 
 | 	%struct.patprog = type <{ i64, i64, i64, i64, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8 }> | 
 | 	%union.anon = type <{ [8 x i8] }> | 
 |  | 
 | define i32 @addmatches(%struct.cadata* %dat, i8** nocapture %argv) nounwind ssp { | 
 | entry: | 
 | 	br i1 undef, label %if.else, label %if.then91 | 
 |  | 
 | if.then91:		; preds = %entry | 
 | 	br label %if.end96 | 
 |  | 
 | if.else:		; preds = %entry | 
 | 	br label %if.end96 | 
 |  | 
 | if.end96:		; preds = %if.else, %if.then91 | 
 | 	br i1 undef, label %lor.lhs.false, label %if.then105 | 
 |  | 
 | lor.lhs.false:		; preds = %if.end96 | 
 | 	br i1 undef, label %if.else139, label %if.then105 | 
 |  | 
 | if.then105:		; preds = %lor.lhs.false, %if.end96 | 
 | 	unreachable | 
 |  | 
 | if.else139:		; preds = %lor.lhs.false | 
 | 	br i1 undef, label %land.end, label %land.rhs | 
 |  | 
 | land.rhs:		; preds = %if.else139 | 
 | 	unreachable | 
 |  | 
 | land.end:		; preds = %if.else139 | 
 | 	br i1 undef, label %land.lhs.true285, label %if.then315 | 
 |  | 
 | land.lhs.true285:		; preds = %land.end | 
 | 	br i1 undef, label %if.end324, label %if.then322 | 
 |  | 
 | if.then315:		; preds = %land.end | 
 | 	unreachable | 
 |  | 
 | if.then322:		; preds = %land.lhs.true285 | 
 | 	unreachable | 
 |  | 
 | if.end324:		; preds = %land.lhs.true285 | 
 | 	br i1 undef, label %if.end384, label %if.then358 | 
 |  | 
 | if.then358:		; preds = %if.end324 | 
 | 	unreachable | 
 |  | 
 | if.end384:		; preds = %if.end324 | 
 | 	br i1 undef, label %if.end394, label %land.lhs.true387 | 
 |  | 
 | land.lhs.true387:		; preds = %if.end384 | 
 | 	unreachable | 
 |  | 
 | if.end394:		; preds = %if.end384 | 
 | 	br i1 undef, label %if.end498, label %land.lhs.true399 | 
 |  | 
 | land.lhs.true399:		; preds = %if.end394 | 
 | 	br i1 undef, label %if.end498, label %if.then406 | 
 |  | 
 | if.then406:		; preds = %land.lhs.true399 | 
 | 	unreachable | 
 |  | 
 | if.end498:		; preds = %land.lhs.true399, %if.end394 | 
 | 	br i1 undef, label %if.end514, label %if.then503 | 
 |  | 
 | if.then503:		; preds = %if.end498 | 
 | 	unreachable | 
 |  | 
 | if.end514:		; preds = %if.end498 | 
 | 	br i1 undef, label %if.end585, label %if.then520 | 
 |  | 
 | if.then520:		; preds = %if.end514 | 
 | 	br i1 undef, label %lor.lhs.false547, label %if.then560 | 
 |  | 
 | lor.lhs.false547:		; preds = %if.then520 | 
 | 	unreachable | 
 |  | 
 | if.then560:		; preds = %if.then520 | 
 | 	br i1 undef, label %if.end585, label %land.lhs.true566 | 
 |  | 
 | land.lhs.true566:		; preds = %if.then560 | 
 | 	br i1 undef, label %if.end585, label %if.then573 | 
 |  | 
 | if.then573:		; preds = %land.lhs.true566 | 
 | 	unreachable | 
 |  | 
 | if.end585:		; preds = %land.lhs.true566, %if.then560, %if.end514 | 
 | 	br i1 undef, label %cond.true593, label %cond.false599 | 
 |  | 
 | cond.true593:		; preds = %if.end585 | 
 | 	unreachable | 
 |  | 
 | cond.false599:		; preds = %if.end585 | 
 | 	br i1 undef, label %if.end647, label %if.then621 | 
 |  | 
 | if.then621:		; preds = %cond.false599 | 
 | 	br i1 undef, label %cond.true624, label %cond.false630 | 
 |  | 
 | cond.true624:		; preds = %if.then621 | 
 | 	br label %if.end647 | 
 |  | 
 | cond.false630:		; preds = %if.then621 | 
 | 	unreachable | 
 |  | 
 | if.end647:		; preds = %cond.true624, %cond.false599 | 
 | 	br i1 undef, label %if.end723, label %if.then701 | 
 |  | 
 | if.then701:		; preds = %if.end647 | 
 | 	br label %if.end723 | 
 |  | 
 | if.end723:		; preds = %if.then701, %if.end647 | 
 | 	br i1 undef, label %if.else1090, label %if.then729 | 
 |  | 
 | if.then729:		; preds = %if.end723 | 
 | 	br i1 undef, label %if.end887, label %if.then812 | 
 |  | 
 | if.then812:		; preds = %if.then729 | 
 | 	unreachable | 
 |  | 
 | if.end887:		; preds = %if.then729 | 
 | 	br i1 undef, label %if.end972, label %if.then893 | 
 |  | 
 | if.then893:		; preds = %if.end887 | 
 | 	br i1 undef, label %if.end919, label %if.then903 | 
 |  | 
 | if.then903:		; preds = %if.then893 | 
 | 	unreachable | 
 |  | 
 | if.end919:		; preds = %if.then893 | 
 | 	br label %if.end972 | 
 |  | 
 | if.end972:		; preds = %if.end919, %if.end887 | 
 | 	%sline.0 = phi %struct.cline* [ undef, %if.end919 ], [ null, %if.end887 ]		; <%struct.cline*> [#uses=5] | 
 | 	%bcs.0 = phi i32 [ undef, %if.end919 ], [ 0, %if.end887 ]		; <i32> [#uses=5] | 
 | 	br i1 undef, label %if.end1146, label %land.lhs.true975 | 
 |  | 
 | land.lhs.true975:		; preds = %if.end972 | 
 | 	br i1 undef, label %if.end1146, label %if.then980 | 
 |  | 
 | if.then980:		; preds = %land.lhs.true975 | 
 | 	br i1 undef, label %cond.false1025, label %cond.false1004 | 
 |  | 
 | cond.false1004:		; preds = %if.then980 | 
 | 	unreachable | 
 |  | 
 | cond.false1025:		; preds = %if.then980 | 
 | 	br i1 undef, label %if.end1146, label %if.then1071 | 
 |  | 
 | if.then1071:		; preds = %cond.false1025 | 
 | 	br i1 undef, label %if.then1074, label %if.end1081 | 
 |  | 
 | if.then1074:		; preds = %if.then1071 | 
 | 	br label %if.end1081 | 
 |  | 
 | if.end1081:		; preds = %if.then1074, %if.then1071 | 
 | 	%call1083 = call %struct.patprog* @patcompile(i8* undef, i32 0, i8** null) nounwind ssp		; <%struct.patprog*> [#uses=2] | 
 | 	br i1 undef, label %if.end1146, label %if.then1086 | 
 |  | 
 | if.then1086:		; preds = %if.end1081 | 
 | 	br label %if.end1146 | 
 |  | 
 | if.else1090:		; preds = %if.end723 | 
 | 	br i1 undef, label %if.end1146, label %land.lhs.true1093 | 
 |  | 
 | land.lhs.true1093:		; preds = %if.else1090 | 
 | 	br i1 undef, label %if.end1146, label %if.then1098 | 
 |  | 
 | if.then1098:		; preds = %land.lhs.true1093 | 
 | 	unreachable | 
 |  | 
 | if.end1146:		; preds = %land.lhs.true1093, %if.else1090, %if.then1086, %if.end1081, %cond.false1025, %land.lhs.true975, %if.end972 | 
 | 	%cp.0 = phi %struct.patprog* [ %call1083, %if.then1086 ], [ null, %if.end972 ], [ null, %land.lhs.true975 ], [ null, %cond.false1025 ], [ %call1083, %if.end1081 ], [ null, %if.else1090 ], [ null, %land.lhs.true1093 ]		; <%struct.patprog*> [#uses=1] | 
 | 	%sline.1 = phi %struct.cline* [ %sline.0, %if.then1086 ], [ %sline.0, %if.end972 ], [ %sline.0, %land.lhs.true975 ], [ %sline.0, %cond.false1025 ], [ %sline.0, %if.end1081 ], [ null, %if.else1090 ], [ null, %land.lhs.true1093 ]		; <%struct.cline*> [#uses=1] | 
 | 	%bcs.1 = phi i32 [ %bcs.0, %if.then1086 ], [ %bcs.0, %if.end972 ], [ %bcs.0, %land.lhs.true975 ], [ %bcs.0, %cond.false1025 ], [ %bcs.0, %if.end1081 ], [ 0, %if.else1090 ], [ 0, %land.lhs.true1093 ]		; <i32> [#uses=1] | 
 | 	br i1 undef, label %if.end1307, label %do.body1270 | 
 |  | 
 | do.body1270:		; preds = %if.end1146 | 
 | 	unreachable | 
 |  | 
 | if.end1307:		; preds = %if.end1146 | 
 | 	br i1 undef, label %if.end1318, label %if.then1312 | 
 |  | 
 | if.then1312:		; preds = %if.end1307 | 
 | 	unreachable | 
 |  | 
 | if.end1318:		; preds = %if.end1307 | 
 | 	br i1 undef, label %for.cond1330.preheader, label %if.then1323 | 
 |  | 
 | if.then1323:		; preds = %if.end1318 | 
 | 	unreachable | 
 |  | 
 | for.cond1330.preheader:		; preds = %if.end1318 | 
 | 	%call1587 = call i8* @comp_match(i8* undef, i8* undef, i8* undef, %struct.patprog* %cp.0, %struct.cline** undef, i32 0, %struct.brinfo** undef, i32 0, %struct.brinfo** undef, i32 %bcs.1, i32* undef) nounwind ssp		; <i8*> [#uses=0] | 
 | 	%call1667 = call %struct.cmatch* @add_match_data(i32 0, i8* undef, i8* undef, %struct.cline* undef, i8* undef, i8* null, i8* undef, i8* undef, i8* undef, i8* undef, %struct.cline* null, i8* undef, %struct.cline* %sline.1, i8* undef, i32 undef, i32 undef) ssp		; <%struct.cmatch*> [#uses=0] | 
 | 	unreachable | 
 | } | 
 |  | 
 | declare %struct.patprog* @patcompile(i8*, i32, i8**) ssp | 
 |  | 
 | declare i8* @comp_match(i8*, i8*, i8*, %struct.patprog*, %struct.cline**, i32, %struct.brinfo**, i32, %struct.brinfo**, i32, i32*) ssp | 
 |  | 
 | declare %struct.cmatch* @add_match_data(i32, i8*, i8*, %struct.cline*, i8*, i8*, i8*, i8*, i8*, i8*, %struct.cline*, i8*, %struct.cline*, i8*, i32, i32) nounwind ssp |