1; RUN: opt < %s -loop-unswitch -enable-new-pm=0 -disable-output 2; RUN: opt < %s -loop-unswitch -enable-new-pm=0 -enable-mssa-loop-dependency=true -verify-memoryssa -disable-output 3 4 %struct.BLEND_MAP = type { i16, i16, i16, i32, %struct.BLEND_MAP_ENTRY* } 5 %struct.BLEND_MAP_ENTRY = type { float, i8, { [5 x float], [4 x i8] } } 6 %struct.TPATTERN = type { i16, i16, i16, i32, float, float, float, %struct.WARP*, %struct.TPATTERN*, %struct.BLEND_MAP*, { %struct.anon, [4 x i8] } } 7 %struct.TURB = type { i16, %struct.WARP*, [3 x double], i32, float, float } 8 %struct.WARP = type { i16, %struct.WARP* } 9 %struct.anon = type { float, [3 x double] } 10 11define void @Parse_Pattern() { 12entry: 13 br label %bb1096.outer20 14bb671: ; preds = %cond_true1099 15 br label %bb1096.outer23 16bb1096.outer20.loopexit: ; preds = %cond_true1099 17 %Local_Turb.0.ph24.lcssa = phi %struct.TURB* [ %Local_Turb.0.ph24, %cond_true1099 ] ; <%struct.TURB*> [#uses=1] 18 br label %bb1096.outer20 19bb1096.outer20: ; preds = %bb1096.outer20.loopexit, %entry 20 %Local_Turb.0.ph22 = phi %struct.TURB* [ undef, %entry ], [ %Local_Turb.0.ph24.lcssa, %bb1096.outer20.loopexit ] ; <%struct.TURB*> [#uses=1] 21 %tmp1098 = icmp eq i32 0, 0 ; <i1> [#uses=1] 22 br label %bb1096.outer23 23bb1096.outer23: ; preds = %bb1096.outer20, %bb671 24 %Local_Turb.0.ph24 = phi %struct.TURB* [ %Local_Turb.0.ph22, %bb1096.outer20 ], [ null, %bb671 ] ; <%struct.TURB*> [#uses=2] 25 br label %bb1096 26bb1096: ; preds = %cond_true1099, %bb1096.outer23 27 br i1 %tmp1098, label %cond_true1099, label %bb1102 28cond_true1099: ; preds = %bb1096 29 switch i32 0, label %bb1096.outer20.loopexit [ 30 i32 161, label %bb671 31 i32 359, label %bb1096 32 ] 33bb1102: ; preds = %bb1096 34 %Local_Turb.0.ph24.lcssa1 = phi %struct.TURB* [ %Local_Turb.0.ph24, %bb1096 ] ; <%struct.TURB*> [#uses=0] 35 ret void 36} 37