; RUN: opt < %s -loop-rotate -verify-dom-info -verify-loop-info -S | FileCheck %s
; RUN: opt < %s -loop-rotate -verify-dom-info -verify-loop-info -enable-mssa-loop-dependency=true -verify-memoryssa -S | FileCheck %s
; CHECK-NOT: [ {{.}}tmp224

target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"

	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
	%struct.Index_Map = type { i32, %struct.item_set** }
	%struct.Item = type { [4 x i16], %struct.rule* }
	%struct.__sFILEX = type opaque
	%struct.__sbuf = type { i8*, i32 }
	%struct.dimension = type { i16*, %struct.Index_Map, %struct.mapping*, i32, %struct.plankMap* }
	%struct.item_set = type { i32, i32, %struct.operator*, [2 x %struct.item_set*], %struct.item_set*, i16*, %struct.Item*, %struct.Item* }
	%struct.list = type { i8*, %struct.list* }
	%struct.mapping = type { %struct.list**, i32, i32, i32, %struct.item_set** }
	%struct.nonterminal = type { i8*, i32, i32, i32, %struct.plankMap*, %struct.rule* }
	%struct.operator = type { i8*, i8, i32, i32, i32, i32, %struct.table* }
	%struct.pattern = type { %struct.nonterminal*, %struct.operator*, [2 x %struct.nonterminal*] }
	%struct.plank = type { i8*, %struct.list*, i32 }
	%struct.plankMap = type { %struct.list*, i32, %struct.stateMap* }
	%struct.rule = type { [4 x i16], i32, i32, i32, %struct.nonterminal*, %struct.pattern*, i8 }
	%struct.stateMap = type { i8*, %struct.plank*, i32, i16* }
	%struct.table = type { %struct.operator*, %struct.list*, i16*, [2 x %struct.dimension*], %struct.item_set** }
@outfile = external global %struct.FILE*		; <%struct.FILE**> [#uses=1]
@str1 = external constant [11 x i8]		; <[11 x i8]*> [#uses=1]
@operators = weak global %struct.list* null		; <%struct.list**> [#uses=1]



define i32 @opsOfArity(i32 %arity) {
entry:
	%arity_addr = alloca i32		; <i32*> [#uses=2]
	%retval = alloca i32, align 4		; <i32*> [#uses=2]
	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
	%c = alloca i32, align 4		; <i32*> [#uses=4]
	%l = alloca %struct.list*, align 4		; <%struct.list**> [#uses=5]
	%op = alloca %struct.operator*, align 4		; <%struct.operator**> [#uses=3]
	store i32 %arity, i32* %arity_addr
	store i32 0, i32* %c
	%tmp1 = load %struct.list*, %struct.list** @operators		; <%struct.list*> [#uses=1]
	store %struct.list* %tmp1, %struct.list** %l
	br label %bb21

bb:		; preds = %bb21
	%tmp3 = getelementptr %struct.list, %struct.list* %tmp22, i32 0, i32 0		; <i8**> [#uses=1]
	%tmp4 = load i8*, i8** %tmp3		; <i8*> [#uses=1]
	%tmp45 = bitcast i8* %tmp4 to %struct.operator*		; <%struct.operator*> [#uses=1]
	store %struct.operator* %tmp45, %struct.operator** %op
	%tmp6 = load %struct.operator*, %struct.operator** %op		; <%struct.operator*> [#uses=1]
	%tmp7 = getelementptr %struct.operator, %struct.operator* %tmp6, i32 0, i32 5		; <i32*> [#uses=1]
	%tmp8 = load i32, i32* %tmp7		; <i32> [#uses=1]
	%tmp9 = load i32, i32* %arity_addr		; <i32> [#uses=1]
	icmp eq i32 %tmp8, %tmp9		; <i1>:0 [#uses=1]
	zext i1 %0 to i8		; <i8>:1 [#uses=1]
	icmp ne i8 %1, 0		; <i1>:2 [#uses=1]
	br i1 %2, label %cond_true, label %cond_next

cond_true:		; preds = %bb
	%tmp10 = load %struct.operator*, %struct.operator** %op		; <%struct.operator*> [#uses=1]
	%tmp11 = getelementptr %struct.operator, %struct.operator* %tmp10, i32 0, i32 2		; <i32*> [#uses=1]
	%tmp12 = load i32, i32* %tmp11		; <i32> [#uses=1]
	%tmp13 = load %struct.FILE*, %struct.FILE** @outfile		; <%struct.FILE*> [#uses=1]
	%tmp14 = getelementptr [11 x i8], [11 x i8]* @str1, i32 0, i32 0		; <i8*> [#uses=1]
	%tmp15 = call i32 (%struct.FILE*, i8*, ...) @fprintf( %struct.FILE* %tmp13, i8* %tmp14, i32 %tmp12 )		; <i32> [#uses=0]
	%tmp16 = load i32, i32* %c		; <i32> [#uses=1]
	%tmp17 = add i32 %tmp16, 1		; <i32> [#uses=1]
	store i32 %tmp17, i32* %c
	br label %cond_next

cond_next:		; preds = %cond_true, %bb
	%tmp19 = getelementptr %struct.list, %struct.list* %tmp22, i32 0, i32 1		; <%struct.list**> [#uses=1]
	%tmp20 = load %struct.list*, %struct.list** %tmp19		; <%struct.list*> [#uses=1]
	store %struct.list* %tmp20, %struct.list** %l
	br label %bb21

bb21:		; preds = %cond_next, %entry
        %l.in = phi %struct.list** [ @operators, %entry ], [ %tmp19, %cond_next ]
	%tmp22 = load %struct.list*, %struct.list** %l.in		; <%struct.list*> [#uses=1]
	icmp ne %struct.list* %tmp22, null		; <i1>:3 [#uses=1]
	zext i1 %3 to i8		; <i8>:4 [#uses=1]
	icmp ne i8 %4, 0		; <i1>:5 [#uses=1]
	br i1 %5, label %bb, label %bb23

bb23:		; preds = %bb21
	%tmp24 = load i32, i32* %c		; <i32> [#uses=1]
	store i32 %tmp24, i32* %tmp
	%tmp25 = load i32, i32* %tmp		; <i32> [#uses=1]
	store i32 %tmp25, i32* %retval
	br label %return

return:		; preds = %bb23
	%retval26 = load i32, i32* %retval		; <i32> [#uses=1]
	ret i32 %retval26
}

declare i32 @fprintf(%struct.FILE*, i8*, ...)
