xref: /aosp_15_r20/external/llvm/test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -loop-unswitch -instcombine -disable-output
2*9880d681SAndroid Build Coastguard Worker	%struct.ClassDef = type { %struct.QByteArray, %struct.QByteArray, %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", i8, i8, %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QMap<QByteArray,QByteArray>", %"struct.QList<ArgumentDef>", %"struct.QMap<QByteArray,QByteArray>", i32, i32 }
3*9880d681SAndroid Build Coastguard Worker	%struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
4*9880d681SAndroid Build Coastguard Worker	%struct.Generator = type { %struct.FILE*, %struct.ClassDef*, %"struct.QList<ArgumentDef>", %struct.QByteArray, %"struct.QList<ArgumentDef>" }
5*9880d681SAndroid Build Coastguard Worker	%struct.QBasicAtomic = type { i32 }
6*9880d681SAndroid Build Coastguard Worker	%struct.QByteArray = type { %"struct.QByteArray::Data"* }
7*9880d681SAndroid Build Coastguard Worker	%"struct.QByteArray::Data" = type { %struct.QBasicAtomic, i32, i32, i8*, [1 x i8] }
8*9880d681SAndroid Build Coastguard Worker	%"struct.QList<ArgumentDef>" = type { %"struct.QList<ArgumentDef>::._19" }
9*9880d681SAndroid Build Coastguard Worker	%"struct.QList<ArgumentDef>::._19" = type { %struct.QListData }
10*9880d681SAndroid Build Coastguard Worker	%struct.QListData = type { %"struct.QListData::Data"* }
11*9880d681SAndroid Build Coastguard Worker	%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x i8*] }
12*9880d681SAndroid Build Coastguard Worker	%"struct.QMap<QByteArray,QByteArray>" = type { %"struct.QMap<QByteArray,QByteArray>::._56" }
13*9880d681SAndroid Build Coastguard Worker	%"struct.QMap<QByteArray,QByteArray>::._56" = type { %struct.QMapData* }
14*9880d681SAndroid Build Coastguard Worker	%struct.QMapData = type { %struct.QMapData*, [12 x %struct.QMapData*], %struct.QBasicAtomic, i32, i32, i32, i8 }
15*9880d681SAndroid Build Coastguard Worker	%struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
16*9880d681SAndroid Build Coastguard Worker@.str9 = external constant [1 x i8]		; <[1 x i8]*> [#uses=1]
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdeclare i32 @strcmp(i8*, i8*)
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerdefine i32 @_ZN9Generator6strregEPKc(%struct.Generator* %this, i8* %s) {
21*9880d681SAndroid Build Coastguard Workerentry:
22*9880d681SAndroid Build Coastguard Worker	%s_addr.0 = select i1 false, i8* getelementptr ([1 x i8], [1 x i8]* @.str9, i32 0, i32 0), i8* %s		; <i8*> [#uses=2]
23*9880d681SAndroid Build Coastguard Worker	%tmp122 = icmp eq i8* %s_addr.0, null		; <i1> [#uses=1]
24*9880d681SAndroid Build Coastguard Worker	br label %bb184
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerbb55:		; preds = %bb184
27*9880d681SAndroid Build Coastguard Worker	ret i32 0
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerbb88:		; preds = %bb184
30*9880d681SAndroid Build Coastguard Worker	br i1 %tmp122, label %bb154, label %bb128
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerbb128:		; preds = %bb88
33*9880d681SAndroid Build Coastguard Worker	%tmp138 = call i32 @strcmp( i8* null, i8* %s_addr.0 )		; <i32> [#uses=1]
34*9880d681SAndroid Build Coastguard Worker	%iftmp.37.0.in4 = icmp eq i32 %tmp138, 0		; <i1> [#uses=1]
35*9880d681SAndroid Build Coastguard Worker	br i1 %iftmp.37.0.in4, label %bb250, label %bb166
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workerbb154:		; preds = %bb88
38*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb250, label %bb166
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Workerbb166:		; preds = %bb154, %bb128
41*9880d681SAndroid Build Coastguard Worker	%tmp175 = add i32 %idx.0, 1		; <i32> [#uses=1]
42*9880d681SAndroid Build Coastguard Worker	%tmp177 = add i32 %tmp175, 0		; <i32> [#uses=1]
43*9880d681SAndroid Build Coastguard Worker	%tmp181 = add i32 %tmp177, 0		; <i32> [#uses=1]
44*9880d681SAndroid Build Coastguard Worker	%tmp183 = add i32 %i33.0, 1		; <i32> [#uses=1]
45*9880d681SAndroid Build Coastguard Worker	br label %bb184
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerbb184:		; preds = %bb166, %entry
48*9880d681SAndroid Build Coastguard Worker	%i33.0 = phi i32 [ 0, %entry ], [ %tmp183, %bb166 ]		; <i32> [#uses=2]
49*9880d681SAndroid Build Coastguard Worker	%idx.0 = phi i32 [ 0, %entry ], [ %tmp181, %bb166 ]		; <i32> [#uses=2]
50*9880d681SAndroid Build Coastguard Worker	%tmp49 = icmp slt i32 %i33.0, 0		; <i1> [#uses=1]
51*9880d681SAndroid Build Coastguard Worker	br i1 %tmp49, label %bb88, label %bb55
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerbb250:		; preds = %bb154, %bb128
54*9880d681SAndroid Build Coastguard Worker	ret i32 %idx.0
55*9880d681SAndroid Build Coastguard Worker}
56