xref: /aosp_15_r20/external/llvm/test/Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -loop-unswitch -disable-output
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker	%struct.BLEND_MAP = type { i16, i16, i16, i32, %struct.BLEND_MAP_ENTRY* }
4*9880d681SAndroid Build Coastguard Worker	%struct.BLEND_MAP_ENTRY = type { float, i8, { [5 x float], [4 x i8] } }
5*9880d681SAndroid Build Coastguard Worker	%struct.TPATTERN = type { i16, i16, i16, i32, float, float, float, %struct.WARP*, %struct.TPATTERN*, %struct.BLEND_MAP*, { %struct.anon, [4 x i8] } }
6*9880d681SAndroid Build Coastguard Worker	%struct.TURB = type { i16, %struct.WARP*, [3 x double], i32, float, float }
7*9880d681SAndroid Build Coastguard Worker	%struct.WARP = type { i16, %struct.WARP* }
8*9880d681SAndroid Build Coastguard Worker	%struct.anon = type { float, [3 x double] }
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine void @Parse_Pattern() {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker	br label %bb1096.outer20
13*9880d681SAndroid Build Coastguard Workerbb671:		; preds = %cond_true1099
14*9880d681SAndroid Build Coastguard Worker	br label %bb1096.outer23
15*9880d681SAndroid Build Coastguard Workerbb1096.outer20.loopexit:		; preds = %cond_true1099
16*9880d681SAndroid Build Coastguard Worker	%Local_Turb.0.ph24.lcssa = phi %struct.TURB* [ %Local_Turb.0.ph24, %cond_true1099 ]		; <%struct.TURB*> [#uses=1]
17*9880d681SAndroid Build Coastguard Worker	br label %bb1096.outer20
18*9880d681SAndroid Build Coastguard Workerbb1096.outer20:		; preds = %bb1096.outer20.loopexit, %entry
19*9880d681SAndroid Build Coastguard Worker	%Local_Turb.0.ph22 = phi %struct.TURB* [ undef, %entry ], [ %Local_Turb.0.ph24.lcssa, %bb1096.outer20.loopexit ]		; <%struct.TURB*> [#uses=1]
20*9880d681SAndroid Build Coastguard Worker	%tmp1098 = icmp eq i32 0, 0		; <i1> [#uses=1]
21*9880d681SAndroid Build Coastguard Worker	br label %bb1096.outer23
22*9880d681SAndroid Build Coastguard Workerbb1096.outer23:		; preds = %bb1096.outer20, %bb671
23*9880d681SAndroid Build Coastguard Worker	%Local_Turb.0.ph24 = phi %struct.TURB* [ %Local_Turb.0.ph22, %bb1096.outer20 ], [ null, %bb671 ]		; <%struct.TURB*> [#uses=2]
24*9880d681SAndroid Build Coastguard Worker	br label %bb1096
25*9880d681SAndroid Build Coastguard Workerbb1096:		; preds = %cond_true1099, %bb1096.outer23
26*9880d681SAndroid Build Coastguard Worker	br i1 %tmp1098, label %cond_true1099, label %bb1102
27*9880d681SAndroid Build Coastguard Workercond_true1099:		; preds = %bb1096
28*9880d681SAndroid Build Coastguard Worker	switch i32 0, label %bb1096.outer20.loopexit [
29*9880d681SAndroid Build Coastguard Worker		 i32 161, label %bb671
30*9880d681SAndroid Build Coastguard Worker		 i32 359, label %bb1096
31*9880d681SAndroid Build Coastguard Worker	]
32*9880d681SAndroid Build Coastguard Workerbb1102:		; preds = %bb1096
33*9880d681SAndroid Build Coastguard Worker	%Local_Turb.0.ph24.lcssa1 = phi %struct.TURB* [ %Local_Turb.0.ph24, %bb1096 ]		; <%struct.TURB*> [#uses=0]
34*9880d681SAndroid Build Coastguard Worker	ret void
35*9880d681SAndroid Build Coastguard Worker}
36