xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/2007-05-03-BadPostIndexedLd.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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