llvm/llvm/test/Transforms/LoopUnroll/2007-11-05-Crash.ll

; RUN: opt < %s -disable-output -passes=loop-unroll
; PR1770
; PR1947

	%struct.cl_engine = type { i32, i16, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
	%struct.cl_limits = type { i32, i32, i32, i32, i16, i64 }
	%struct.cli_ac_alt = type { i8, ptr, i16, i16, ptr }
	%struct.cli_ac_node = type { i8, i8, ptr, ptr, ptr }
	%struct.cli_ac_patt = type { ptr, ptr, i16, i16, i8, i32, i32, ptr, ptr, i32, i16, i16, i16, i16, ptr, i8, i16, ptr, ptr }
	%struct.cli_bm_patt = type { ptr, i32, ptr, ptr, i8, ptr }
	%struct.cli_ctx = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, ptr }
	%struct.cli_dconf = type { i32, i32, i32, i32, i32, i32, i32 }
	%struct.cli_matcher = type { i16, i8, ptr, ptr, ptr, i32, i8, i8, ptr, ptr, ptr, i32, i32, i32 }

declare ptr @calloc(i64, i64)

define fastcc i32 @cli_scanpe(i32 %desc, ptr %ctx) {
entry:
	br i1 false, label %cond_next17, label %cond_true14

cond_true14:		; preds = %entry
	ret i32 0

cond_next17:		; preds = %entry
	br i1 false, label %LeafBlock, label %LeafBlock1250

LeafBlock1250:		; preds = %cond_next17
	ret i32 0

LeafBlock:		; preds = %cond_next17
	br i1 false, label %cond_next33, label %cond_true30

cond_true30:		; preds = %LeafBlock
	ret i32 0

cond_next33:		; preds = %LeafBlock
	br i1 false, label %cond_next90, label %cond_true42

cond_true42:		; preds = %cond_next33
	ret i32 0

cond_next90:		; preds = %cond_next33
	br i1 false, label %cond_next100, label %cond_true97

cond_true97:		; preds = %cond_next90
	ret i32 0

cond_next100:		; preds = %cond_next90
	br i1 false, label %cond_next109, label %cond_true106

cond_true106:		; preds = %cond_next100
	ret i32 0

cond_next109:		; preds = %cond_next100
	br i1 false, label %cond_false, label %cond_true118

cond_true118:		; preds = %cond_next109
	ret i32 0

cond_false:		; preds = %cond_next109
	br i1 false, label %NodeBlock1482, label %cond_true126

cond_true126:		; preds = %cond_false
	ret i32 0

NodeBlock1482:		; preds = %cond_false
	br i1 false, label %cond_next285, label %NodeBlock1480

NodeBlock1480:		; preds = %NodeBlock1482
	ret i32 0

cond_next285:		; preds = %NodeBlock1482
	br i1 false, label %cond_next320, label %cond_true294

cond_true294:		; preds = %cond_next285
	ret i32 0

cond_next320:		; preds = %cond_next285
	br i1 false, label %LeafBlock1491, label %LeafBlock1493

LeafBlock1493:		; preds = %cond_next320
	ret i32 0

LeafBlock1491:		; preds = %cond_next320
	br i1 false, label %cond_true400, label %cond_true378

cond_true378:		; preds = %LeafBlock1491
	ret i32 1

cond_true400:		; preds = %LeafBlock1491
	br i1 false, label %cond_next413, label %cond_true406

cond_true406:		; preds = %cond_true400
	ret i32 0

cond_next413:		; preds = %cond_true400
	br i1 false, label %cond_next429, label %cond_true424

cond_true424:		; preds = %cond_next413
	ret i32 0

cond_next429:		; preds = %cond_next413
	br i1 false, label %NodeBlock1557, label %NodeBlock1579

NodeBlock1579:		; preds = %cond_next429
	ret i32 0

NodeBlock1557:		; preds = %cond_next429
	br i1 false, label %LeafBlock1543, label %NodeBlock1555

NodeBlock1555:		; preds = %NodeBlock1557
	ret i32 0

LeafBlock1543:		; preds = %NodeBlock1557
	br i1 false, label %cond_next870, label %cond_next663

cond_next663:		; preds = %LeafBlock1543
	ret i32 0

cond_next870:		; preds = %LeafBlock1543
	br i1 false, label %cond_true1012, label %cond_true916

cond_true916:		; preds = %cond_next870
	ret i32 0

cond_true1012:		; preds = %cond_next870
	br i1 false, label %cond_next3849, label %cond_true2105

cond_true2105:		; preds = %cond_true1012
	ret i32 0

cond_next3849:		; preds = %cond_true1012
	br i1 false, label %cond_next4378, label %bb6559

bb3862:		; preds = %cond_next4385
	br i1 false, label %cond_false3904, label %cond_true3876

cond_true3876:		; preds = %bb3862
	ret i32 0

cond_false3904:		; preds = %bb3862
	br i1 false, label %cond_next4003, label %cond_true3935

cond_true3935:		; preds = %cond_false3904
	ret i32 0

cond_next4003:		; preds = %cond_false3904
	br i1 false, label %cond_next5160, label %cond_next4015

cond_next4015:		; preds = %cond_next4003
	ret i32 0

cond_next4378:		; preds = %cond_next3849
	br i1 false, label %cond_next4385, label %bb4393

cond_next4385:		; preds = %cond_next4378
	br i1 false, label %bb3862, label %bb4393

bb4393:		; preds = %cond_next4385, %cond_next4378
	ret i32 0

cond_next5160:		; preds = %cond_next4003
	br i1 false, label %bb5188, label %bb6559

bb5188:		; preds = %cond_next5160
	br i1 false, label %cond_next5285, label %cond_true5210

cond_true5210:		; preds = %bb5188
	ret i32 0

cond_next5285:		; preds = %bb5188
	br i1 false, label %cond_true5302, label %cond_true5330

cond_true5302:		; preds = %cond_next5285
	br i1 false, label %bb7405, label %bb7367

cond_true5330:		; preds = %cond_next5285
	ret i32 0

bb6559:		; preds = %cond_next5160, %cond_next3849
	ret i32 0

bb7367:		; preds = %cond_true5302
	ret i32 0

bb7405:		; preds = %cond_true5302
	br i1 false, label %cond_next8154, label %cond_true7410

cond_true7410:		; preds = %bb7405
	ret i32 0

cond_next8154:		; preds = %bb7405
	br i1 false, label %cond_true8235, label %bb9065

cond_true8235:		; preds = %cond_next8154
	br i1 false, label %bb8274, label %bb8245

bb8245:		; preds = %cond_true8235
	ret i32 0

bb8274:		; preds = %cond_true8235
	br i1 false, label %cond_next8358, label %cond_true8295

cond_true8295:		; preds = %bb8274
	ret i32 0

cond_next8358:		; preds = %bb8274
	br i1 false, label %cond_next.i509, label %cond_true8371

cond_true8371:		; preds = %cond_next8358
	ret i32 -123

cond_next.i509:		; preds = %cond_next8358
	br i1 false, label %bb36.i, label %bb33.i

bb33.i:		; preds = %cond_next.i509
	ret i32 0

bb36.i:		; preds = %cond_next.i509
	br i1 false, label %cond_next54.i, label %cond_true51.i

cond_true51.i:		; preds = %bb36.i
	ret i32 0

cond_next54.i:		; preds = %bb36.i
	%tmp10.i.i527 = call ptr @calloc( i64 0, i64 1 )		; <ptr> [#uses=1]
	br i1 false, label %cond_next11.i.i, label %bb132.i

bb132.i:		; preds = %cond_next54.i
	ret i32 0

cond_next11.i.i:		; preds = %cond_next54.i
	br i1 false, label %bb32.i.i545, label %cond_true1008.critedge.i

bb32.i.i545:		; preds = %cond_next11.i.i
	br i1 false, label %cond_next349.i, label %cond_true184.i

cond_true184.i:		; preds = %bb32.i.i545
	ret i32 0

cond_next349.i:		; preds = %bb32.i.i545
	br i1 false, label %cond_next535.i, label %cond_true1008.critedge1171.i

cond_next535.i:		; preds = %cond_next349.i
	br i1 false, label %cond_next569.i, label %cond_false574.i

cond_next569.i:		; preds = %cond_next535.i
	br i1 false, label %cond_next670.i, label %cond_true1008.critedge1185.i

cond_false574.i:		; preds = %cond_next535.i
	ret i32 0

cond_next670.i:		; preds = %cond_next569.i
	br i1 false, label %cond_true692.i, label %cond_next862.i

cond_true692.i:		; preds = %cond_next670.i
	br i1 false, label %cond_false742.i, label %cond_true718.i

cond_true718.i:		; preds = %cond_true692.i
	ret i32 0

cond_false742.i:		; preds = %cond_true692.i
	br i1 false, label %cond_true784.i, label %cond_next9079

cond_true784.i:		; preds = %cond_next811.i, %cond_false742.i
	%indvar1411.i.reg2mem.0 = phi i8 [ %indvar.next1412.i, %cond_next811.i ], [ 0, %cond_false742.i ]		; <i8> [#uses=1]
	br i1 false, label %cond_true1008.critedge1190.i, label %cond_next811.i

cond_next811.i:		; preds = %cond_true784.i
	%indvar.next1412.i = add i8 %indvar1411.i.reg2mem.0, 1		; <i8> [#uses=2]
	%tmp781.i = icmp eq i8 %indvar.next1412.i, 3		; <i1> [#uses=1]
	br i1 %tmp781.i, label %cond_next9079, label %cond_true784.i

cond_next862.i:		; preds = %cond_next670.i
	ret i32 0

cond_true1008.critedge.i:		; preds = %cond_next11.i.i
	ret i32 0

cond_true1008.critedge1171.i:		; preds = %cond_next349.i
	ret i32 0

cond_true1008.critedge1185.i:		; preds = %cond_next569.i
	ret i32 0

cond_true1008.critedge1190.i:		; preds = %cond_true784.i
	%tmp621.i532.lcssa610 = phi ptr [ %tmp10.i.i527, %cond_true784.i ]		; <ptr> [#uses=0]
	ret i32 0

bb9065:		; preds = %cond_next8154
	ret i32 0

cond_next9079:		; preds = %cond_next811.i, %cond_false742.i
	ret i32 0
}