1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=arm-apple-darwin 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker %struct.Connection = type { i32, [10 x i8], i32 } 4*9880d681SAndroid Build Coastguard Worker %struct.IntChunk = type { %struct.cppobjtype, i32, i32*, i32 } 5*9880d681SAndroid Build Coastguard Worker %struct.Point = type { i8*, %struct.cppobjtype, i16 (%struct.Point*) *, i16 (%struct.Point*) *, double (%struct.Point*)*, double (%struct.Point*)* } 6*9880d681SAndroid Build Coastguard Worker %struct.RefPoint = type { %struct.Point*, %struct.cppobjtype } 7*9880d681SAndroid Build Coastguard Worker %struct.ShortArray = type { %struct.cppobjtype, i32, i16* } 8*9880d681SAndroid Build Coastguard Worker %struct.TestObj = type { i8*, %struct.cppobjtype, i8, [32 x i8], i8*, i8**, i16, i16, i32, i32, i32, i32, float, double, %struct.cppobjtype, i32, i16*, i16**, i8**, i32, %struct.XyPoint, [3 x %struct.Connection], %struct.Point*, %struct.XyPoint*, i32, i8*, i8*, i16*, %struct.ShortArray, %struct.IntChunk, %struct.cppobjtype, %struct.cppobjtype, %struct.RefPoint, i32, %struct.cppobjtype, %struct.cppobjtype } 9*9880d681SAndroid Build Coastguard Worker %struct.XyPoint = type { i16, i16 } 10*9880d681SAndroid Build Coastguard Worker %struct.cppobjtype = type { i32, i16, i16 } 11*9880d681SAndroid Build Coastguard Worker@Msg = external global [256 x i8] ; <[256 x i8]*> [#uses=1] 12*9880d681SAndroid Build Coastguard Worker@.str53615 = external constant [48 x i8] ; <[48 x i8]*> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker@FirstTime.4637.b = external global i1 ; <i1*> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine fastcc void @Draw7(i32 %Option, i32* %Status) { 16*9880d681SAndroid Build Coastguard Workerentry: 17*9880d681SAndroid Build Coastguard Worker %tmp115.b = load i1, i1* @FirstTime.4637.b ; <i1> [#uses=1] 18*9880d681SAndroid Build Coastguard Worker br i1 %tmp115.b, label %cond_next239, label %cond_next.i 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workercond_next.i: ; preds = %entry 21*9880d681SAndroid Build Coastguard Worker ret void 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workercond_next239: ; preds = %entry 24*9880d681SAndroid Build Coastguard Worker %tmp242 = icmp eq i32 0, 0 ; <i1> [#uses=1] 25*9880d681SAndroid Build Coastguard Worker br i1 %tmp242, label %cond_next253, label %cond_next296 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workercond_next253: ; preds = %cond_next239 28*9880d681SAndroid Build Coastguard Worker switch i32 %Option, label %bb1326 [ 29*9880d681SAndroid Build Coastguard Worker i32 3, label %cond_true258 30*9880d681SAndroid Build Coastguard Worker i32 4, label %cond_true268 31*9880d681SAndroid Build Coastguard Worker i32 2, label %cond_true279 32*9880d681SAndroid Build Coastguard Worker i32 1, label %cond_next315 33*9880d681SAndroid Build Coastguard Worker ] 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workercond_true258: ; preds = %cond_next253 36*9880d681SAndroid Build Coastguard Worker ret void 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workercond_true268: ; preds = %cond_next253 39*9880d681SAndroid Build Coastguard Worker ret void 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workercond_true279: ; preds = %cond_next253 42*9880d681SAndroid Build Coastguard Worker ret void 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workercond_next296: ; preds = %cond_next239 45*9880d681SAndroid Build Coastguard Worker ret void 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workercond_next315: ; preds = %cond_next253 48*9880d681SAndroid Build Coastguard Worker %tmp1140 = icmp eq i32 0, 0 ; <i1> [#uses=1] 49*9880d681SAndroid Build Coastguard Worker br i1 %tmp1140, label %cond_true1143, label %bb1326 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workercond_true1143: ; preds = %cond_next315 52*9880d681SAndroid Build Coastguard Worker %tmp1148 = icmp eq i32 0, 0 ; <i1> [#uses=4] 53*9880d681SAndroid Build Coastguard Worker br i1 %tmp1148, label %cond_next1153, label %cond_true1151 54*9880d681SAndroid Build Coastguard Worker 55*9880d681SAndroid Build Coastguard Workercond_true1151: ; preds = %cond_true1143 56*9880d681SAndroid Build Coastguard Worker ret void 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Workercond_next1153: ; preds = %cond_true1143 59*9880d681SAndroid Build Coastguard Worker %tmp8.i.i185 = icmp eq i32 0, 0 ; <i1> [#uses=1] 60*9880d681SAndroid Build Coastguard Worker br i1 %tmp8.i.i185, label %TestObj_new1.exit, label %cond_true.i.i187 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workercond_true.i.i187: ; preds = %cond_next1153 63*9880d681SAndroid Build Coastguard Worker ret void 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard WorkerTestObj_new1.exit: ; preds = %cond_next1153 66*9880d681SAndroid Build Coastguard Worker %tmp1167 = icmp eq i16 0, 0 ; <i1> [#uses=1] 67*9880d681SAndroid Build Coastguard Worker %tmp1178 = icmp eq i32 0, 0 ; <i1> [#uses=1] 68*9880d681SAndroid Build Coastguard Worker %bothcond = and i1 %tmp1167, %tmp1178 ; <i1> [#uses=1] 69*9880d681SAndroid Build Coastguard Worker br i1 %bothcond, label %bb1199, label %bb1181 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Workerbb1181: ; preds = %TestObj_new1.exit 72*9880d681SAndroid Build Coastguard Worker ret void 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerbb1199: ; preds = %TestObj_new1.exit 75*9880d681SAndroid Build Coastguard Worker br i1 %tmp1148, label %cond_next1235, label %Object_Dump.exit302 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard WorkerObject_Dump.exit302: ; preds = %bb1199 78*9880d681SAndroid Build Coastguard Worker ret void 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Workercond_next1235: ; preds = %bb1199 81*9880d681SAndroid Build Coastguard Worker %bothcond10485 = or i1 false, %tmp1148 ; <i1> [#uses=1] 82*9880d681SAndroid Build Coastguard Worker br i1 %bothcond10485, label %cond_next1267, label %cond_true1248 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workercond_true1248: ; preds = %cond_next1235 85*9880d681SAndroid Build Coastguard Worker ret void 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workercond_next1267: ; preds = %cond_next1235 88*9880d681SAndroid Build Coastguard Worker br i1 %tmp1148, label %cond_next1275, label %cond_true1272 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workercond_true1272: ; preds = %cond_next1267 91*9880d681SAndroid Build Coastguard Worker %tmp1273 = load %struct.TestObj*, %struct.TestObj** null ; <%struct.TestObj*> [#uses=2] 92*9880d681SAndroid Build Coastguard Worker %tmp2930.i = ptrtoint %struct.TestObj* %tmp1273 to i32 ; <i32> [#uses=1] 93*9880d681SAndroid Build Coastguard Worker %tmp42.i348 = sub i32 0, %tmp2930.i ; <i32> [#uses=1] 94*9880d681SAndroid Build Coastguard Worker %tmp45.i = getelementptr %struct.TestObj, %struct.TestObj* %tmp1273, i32 0, i32 0 ; <i8**> [#uses=2] 95*9880d681SAndroid Build Coastguard Worker %tmp48.i = load i8*, i8** %tmp45.i ; <i8*> [#uses=1] 96*9880d681SAndroid Build Coastguard Worker %tmp50.i350 = call i32 (i8*, i8*, ...) @sprintf( i8* getelementptr ([256 x i8], [256 x i8]* @Msg, i32 0, i32 0), i8* getelementptr ([48 x i8], [48 x i8]* @.str53615, i32 0, i32 0), i8* null, i8** %tmp45.i, i8* %tmp48.i ) ; <i32> [#uses=0] 97*9880d681SAndroid Build Coastguard Worker br i1 false, label %cond_true.i632.i, label %Ut_TraceMsg.exit648.i 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workercond_true.i632.i: ; preds = %cond_true1272 100*9880d681SAndroid Build Coastguard Worker ret void 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard WorkerUt_TraceMsg.exit648.i: ; preds = %cond_true1272 103*9880d681SAndroid Build Coastguard Worker %tmp57.i = getelementptr i8, i8* null, i32 %tmp42.i348 ; <i8*> [#uses=0] 104*9880d681SAndroid Build Coastguard Worker ret void 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Workercond_next1275: ; preds = %cond_next1267 107*9880d681SAndroid Build Coastguard Worker ret void 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workerbb1326: ; preds = %cond_next315, %cond_next253 110*9880d681SAndroid Build Coastguard Worker ret void 111*9880d681SAndroid Build Coastguard Worker} 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Workerdeclare i32 @sprintf(i8*, i8*, ...) 114