Dan Gohman | fce288f | 2009-09-09 00:09:15 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=arm-apple-darwin |
Evan Cheng | 874ebad | 2007-05-03 23:53:36 +0000 | [diff] [blame] | 2 | |
| 3 | %struct.Connection = type { i32, [10 x i8], i32 } |
| 4 | %struct.IntChunk = type { %struct.cppobjtype, i32, i32*, i32 } |
Chris Lattner | 26b0000 | 2011-06-17 03:14:27 +0000 | [diff] [blame^] | 5 | %struct.Point = type { i8*, %struct.cppobjtype, i16 (%struct.Point*) *, i16 (%struct.Point*) *, double (%struct.Point*)*, double (%struct.Point*)* } |
Evan Cheng | 874ebad | 2007-05-03 23:53:36 +0000 | [diff] [blame] | 6 | %struct.RefPoint = type { %struct.Point*, %struct.cppobjtype } |
| 7 | %struct.ShortArray = type { %struct.cppobjtype, i32, i16* } |
| 8 | %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 | %struct.XyPoint = type { i16, i16 } |
| 10 | %struct.cppobjtype = type { i32, i16, i16 } |
| 11 | @Msg = external global [256 x i8] ; <[256 x i8]*> [#uses=1] |
| 12 | @.str53615 = external constant [48 x i8] ; <[48 x i8]*> [#uses=1] |
| 13 | @FirstTime.4637.b = external global i1 ; <i1*> [#uses=1] |
| 14 | |
| 15 | define fastcc void @Draw7(i32 %Option, i32* %Status) { |
| 16 | entry: |
| 17 | %tmp115.b = load i1* @FirstTime.4637.b ; <i1> [#uses=1] |
| 18 | br i1 %tmp115.b, label %cond_next239, label %cond_next.i |
| 19 | |
| 20 | cond_next.i: ; preds = %entry |
| 21 | ret void |
| 22 | |
| 23 | cond_next239: ; preds = %entry |
| 24 | %tmp242 = icmp eq i32 0, 0 ; <i1> [#uses=1] |
| 25 | br i1 %tmp242, label %cond_next253, label %cond_next296 |
| 26 | |
| 27 | cond_next253: ; preds = %cond_next239 |
| 28 | switch i32 %Option, label %bb1326 [ |
| 29 | i32 3, label %cond_true258 |
| 30 | i32 4, label %cond_true268 |
| 31 | i32 2, label %cond_true279 |
| 32 | i32 1, label %cond_next315 |
| 33 | ] |
| 34 | |
| 35 | cond_true258: ; preds = %cond_next253 |
| 36 | ret void |
| 37 | |
| 38 | cond_true268: ; preds = %cond_next253 |
| 39 | ret void |
| 40 | |
| 41 | cond_true279: ; preds = %cond_next253 |
| 42 | ret void |
| 43 | |
| 44 | cond_next296: ; preds = %cond_next239 |
| 45 | ret void |
| 46 | |
| 47 | cond_next315: ; preds = %cond_next253 |
| 48 | %tmp1140 = icmp eq i32 0, 0 ; <i1> [#uses=1] |
| 49 | br i1 %tmp1140, label %cond_true1143, label %bb1326 |
| 50 | |
| 51 | cond_true1143: ; preds = %cond_next315 |
| 52 | %tmp1148 = icmp eq i32 0, 0 ; <i1> [#uses=4] |
| 53 | br i1 %tmp1148, label %cond_next1153, label %cond_true1151 |
| 54 | |
| 55 | cond_true1151: ; preds = %cond_true1143 |
| 56 | ret void |
| 57 | |
| 58 | cond_next1153: ; preds = %cond_true1143 |
| 59 | %tmp8.i.i185 = icmp eq i32 0, 0 ; <i1> [#uses=1] |
| 60 | br i1 %tmp8.i.i185, label %TestObj_new1.exit, label %cond_true.i.i187 |
| 61 | |
| 62 | cond_true.i.i187: ; preds = %cond_next1153 |
| 63 | ret void |
| 64 | |
| 65 | TestObj_new1.exit: ; preds = %cond_next1153 |
| 66 | %tmp1167 = icmp eq i16 0, 0 ; <i1> [#uses=1] |
| 67 | %tmp1178 = icmp eq i32 0, 0 ; <i1> [#uses=1] |
| 68 | %bothcond = and i1 %tmp1167, %tmp1178 ; <i1> [#uses=1] |
| 69 | br i1 %bothcond, label %bb1199, label %bb1181 |
| 70 | |
| 71 | bb1181: ; preds = %TestObj_new1.exit |
| 72 | ret void |
| 73 | |
| 74 | bb1199: ; preds = %TestObj_new1.exit |
| 75 | br i1 %tmp1148, label %cond_next1235, label %Object_Dump.exit302 |
| 76 | |
| 77 | Object_Dump.exit302: ; preds = %bb1199 |
| 78 | ret void |
| 79 | |
| 80 | cond_next1235: ; preds = %bb1199 |
| 81 | %bothcond10485 = or i1 false, %tmp1148 ; <i1> [#uses=1] |
| 82 | br i1 %bothcond10485, label %cond_next1267, label %cond_true1248 |
| 83 | |
| 84 | cond_true1248: ; preds = %cond_next1235 |
| 85 | ret void |
| 86 | |
| 87 | cond_next1267: ; preds = %cond_next1235 |
| 88 | br i1 %tmp1148, label %cond_next1275, label %cond_true1272 |
| 89 | |
| 90 | cond_true1272: ; preds = %cond_next1267 |
| 91 | %tmp1273 = load %struct.TestObj** null ; <%struct.TestObj*> [#uses=2] |
| 92 | %tmp2930.i = ptrtoint %struct.TestObj* %tmp1273 to i32 ; <i32> [#uses=1] |
| 93 | %tmp42.i348 = sub i32 0, %tmp2930.i ; <i32> [#uses=1] |
| 94 | %tmp45.i = getelementptr %struct.TestObj* %tmp1273, i32 0, i32 0 ; <i8**> [#uses=2] |
| 95 | %tmp48.i = load i8** %tmp45.i ; <i8*> [#uses=1] |
| 96 | %tmp50.i350 = call i32 (i8*, i8*, ...)* @sprintf( i8* getelementptr ([256 x i8]* @Msg, i32 0, i32 0), i8* getelementptr ([48 x i8]* @.str53615, i32 0, i32 0), i8* null, i8** %tmp45.i, i8* %tmp48.i ) ; <i32> [#uses=0] |
| 97 | br i1 false, label %cond_true.i632.i, label %Ut_TraceMsg.exit648.i |
| 98 | |
| 99 | cond_true.i632.i: ; preds = %cond_true1272 |
| 100 | ret void |
| 101 | |
| 102 | Ut_TraceMsg.exit648.i: ; preds = %cond_true1272 |
| 103 | %tmp57.i = getelementptr i8* null, i32 %tmp42.i348 ; <i8*> [#uses=0] |
| 104 | ret void |
| 105 | |
| 106 | cond_next1275: ; preds = %cond_next1267 |
| 107 | ret void |
| 108 | |
| 109 | bb1326: ; preds = %cond_next315, %cond_next253 |
| 110 | ret void |
| 111 | } |
| 112 | |
| 113 | declare i32 @sprintf(i8*, i8*, ...) |