1; RUN: opt < %s -loop-reduce 2 3define void @resolve_name(i1 %arg, i8 %arg2) nounwind uwtable ssp { 4 br label %while.cond40.preheader 5while.cond132.while.cond.loopexit_crit_edge: 6 br label %while.cond40.preheader 7while.cond40.preheader: 8 br label %while.cond40 9while.cond40: 10 %indvars.iv194 = phi ptr [ null, %while.cond40.preheader ], [ %scevgep, %while.body51 ] 11 %tmp.1 = phi ptr [ undef, %while.cond40.preheader ], [ %incdec.ptr, %while.body51 ] 12 switch i8 %arg2, label %while.body51 [ 13 i8 0, label %if.then59 14 ] 15while.body51: ; preds = %land.end50 16 %incdec.ptr = getelementptr inbounds i8, ptr %tmp.1, i64 1 17 %scevgep = getelementptr i8, ptr %indvars.iv194, i64 1 18 br label %while.cond40 19if.then59: ; preds = %while.end 20 br i1 %arg, label %if.then64, label %if.end113 21if.then64: ; preds = %if.then59 22 %incdec.ptr88.tmp.2 = select i1 undef, ptr undef, ptr undef 23 br label %if.end113 24if.end113: ; preds = %if.then64, %if.then59 25 %tmp.4 = phi ptr [ %incdec.ptr88.tmp.2, %if.then64 ], [ undef, %if.then59 ] 26 %tmp.4195 = ptrtoint ptr %tmp.4 to i64 27 br label %while.cond132.preheader 28while.cond132.preheader: ; preds = %if.end113 29 %cmp133173 = icmp eq ptr %tmp.1, %tmp.4 30 br i1 %cmp133173, label %while.cond40.preheader, label %while.body139.lr.ph 31while.body139.lr.ph: ; preds = %while.cond132.preheader 32 %scevgep198199 = ptrtoint ptr %indvars.iv194 to i64 33 br label %while.body139 34while.body139: ; preds = %while.body139, %while.body139.lr.ph 35 %start_of_var.0177 = phi ptr [ %tmp.1, %while.body139.lr.ph ], [ null, %while.body139 ] 36 br i1 %arg, label %while.cond132.while.cond.loopexit_crit_edge, label %while.body139 37} 38