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