Taints the non-acquire RMW's store address with the load part
[oota-llvm.git] / test / Transforms / GVN / 2007-07-30-PredIDom.ll
1 ; RUN: opt < %s -gvn | llvm-dis
2
3         %"struct.Block::$_16" = type { i32 }
4         %struct.Exp = type { %struct.Exp_*, i32, i32, i32, %struct.Exp*, %struct.Exp*, %"struct.Exp::$_10", %"struct.Block::$_16", %"struct.Exp::$_12" }
5         %"struct.Exp::$_10" = type { %struct.Exp* }
6         %"struct.Exp::$_12" = type { %struct.Exp** }
7         %struct.Exp_ = type { i32, i32, i32, i32, %struct.Id* }
8         %struct.Id = type { i8*, i32, i32, i32, %"struct.Id::$_13" }
9         %"struct.Id::$_13" = type { double }
10
11 define i8* @_ZN3Exp8toStringEj(%struct.Exp* %this, i32 %nextpc) {
12 entry:
13         switch i32 0, label %bb970 [
14                  i32 1, label %bb
15                  i32 2, label %bb39
16                  i32 3, label %bb195
17                  i32 4, label %bb270
18                  i32 5, label %bb418
19                  i32 6, label %bb633
20                  i32 7, label %bb810
21                  i32 8, label %bb882
22                  i32 9, label %bb925
23         ]
24
25 bb:             ; preds = %entry
26         store i8* null, i8** null
27         br label %return
28
29 bb39:           ; preds = %entry
30         br i1 false, label %cond_true, label %cond_false132
31
32 cond_true:              ; preds = %bb39
33         br i1 false, label %cond_true73, label %cond_false
34
35 cond_true73:            ; preds = %cond_true
36         br i1 false, label %cond_true108, label %cond_next
37
38 cond_true108:           ; preds = %cond_true73
39         br label %cond_next
40
41 cond_next:              ; preds = %cond_true108, %cond_true73
42         br label %cond_next131
43
44 cond_false:             ; preds = %cond_true
45         br label %cond_next131
46
47 cond_next131:           ; preds = %cond_false, %cond_next
48         br label %cond_next141
49
50 cond_false132:          ; preds = %bb39
51         br label %cond_next141
52
53 cond_next141:           ; preds = %cond_false132, %cond_next131
54         br i1 false, label %cond_true169, label %cond_false175
55
56 cond_true169:           ; preds = %cond_next141
57         br label %cond_next181
58
59 cond_false175:          ; preds = %cond_next141
60         br label %cond_next181
61
62 cond_next181:           ; preds = %cond_false175, %cond_true169
63         br i1 false, label %cond_true189, label %cond_next191
64
65 cond_true189:           ; preds = %cond_next181
66         br label %cond_next191
67
68 cond_next191:           ; preds = %cond_true189, %cond_next181
69         store i8* null, i8** null
70         br label %return
71
72 bb195:          ; preds = %entry
73         br i1 false, label %cond_true248, label %cond_false250
74
75 cond_true248:           ; preds = %bb195
76         br label %cond_next252
77
78 cond_false250:          ; preds = %bb195
79         br label %cond_next252
80
81 cond_next252:           ; preds = %cond_false250, %cond_true248
82         br i1 false, label %cond_true265, label %cond_next267
83
84 cond_true265:           ; preds = %cond_next252
85         br label %cond_next267
86
87 cond_next267:           ; preds = %cond_true265, %cond_next252
88         store i8* null, i8** null
89         br label %return
90
91 bb270:          ; preds = %entry
92         br i1 false, label %cond_true338, label %cond_false340
93
94 cond_true338:           ; preds = %bb270
95         br label %cond_next342
96
97 cond_false340:          ; preds = %bb270
98         br label %cond_next342
99
100 cond_next342:           ; preds = %cond_false340, %cond_true338
101         br i1 false, label %cond_true362, label %cond_false364
102
103 cond_true362:           ; preds = %cond_next342
104         br label %cond_next366
105
106 cond_false364:          ; preds = %cond_next342
107         br label %cond_next366
108
109 cond_next366:           ; preds = %cond_false364, %cond_true362
110         br i1 false, label %cond_true393, label %cond_next395
111
112 cond_true393:           ; preds = %cond_next366
113         br label %cond_next395
114
115 cond_next395:           ; preds = %cond_true393, %cond_next366
116         br i1 false, label %cond_true406, label %cond_next408
117
118 cond_true406:           ; preds = %cond_next395
119         br label %cond_next408
120
121 cond_next408:           ; preds = %cond_true406, %cond_next395
122         br i1 false, label %cond_true413, label %cond_next415
123
124 cond_true413:           ; preds = %cond_next408
125         br label %cond_next415
126
127 cond_next415:           ; preds = %cond_true413, %cond_next408
128         store i8* null, i8** null
129         br label %return
130
131 bb418:          ; preds = %entry
132         br i1 false, label %cond_true512, label %cond_false514
133
134 cond_true512:           ; preds = %bb418
135         br label %cond_next516
136
137 cond_false514:          ; preds = %bb418
138         br label %cond_next516
139
140 cond_next516:           ; preds = %cond_false514, %cond_true512
141         br i1 false, label %cond_true536, label %cond_false538
142
143 cond_true536:           ; preds = %cond_next516
144         br label %cond_next540
145
146 cond_false538:          ; preds = %cond_next516
147         br label %cond_next540
148
149 cond_next540:           ; preds = %cond_false538, %cond_true536
150         br i1 false, label %cond_true560, label %cond_false562
151
152 cond_true560:           ; preds = %cond_next540
153         br label %cond_next564
154
155 cond_false562:          ; preds = %cond_next540
156         br label %cond_next564
157
158 cond_next564:           ; preds = %cond_false562, %cond_true560
159         br i1 false, label %cond_true597, label %cond_next599
160
161 cond_true597:           ; preds = %cond_next564
162         br label %cond_next599
163
164 cond_next599:           ; preds = %cond_true597, %cond_next564
165         br i1 false, label %cond_true614, label %cond_next616
166
167 cond_true614:           ; preds = %cond_next599
168         br label %cond_next616
169
170 cond_next616:           ; preds = %cond_true614, %cond_next599
171         br i1 false, label %cond_true621, label %cond_next623
172
173 cond_true621:           ; preds = %cond_next616
174         br label %cond_next623
175
176 cond_next623:           ; preds = %cond_true621, %cond_next616
177         br i1 false, label %cond_true628, label %cond_next630
178
179 cond_true628:           ; preds = %cond_next623
180         br label %cond_next630
181
182 cond_next630:           ; preds = %cond_true628, %cond_next623
183         store i8* null, i8** null
184         br label %return
185
186 bb633:          ; preds = %entry
187         br i1 false, label %cond_true667, label %cond_next669
188
189 cond_true667:           ; preds = %bb633
190         br label %cond_next669
191
192 cond_next669:           ; preds = %cond_true667, %bb633
193         br i1 false, label %cond_true678, label %cond_next791
194
195 cond_true678:           ; preds = %cond_next669
196         br label %bb735
197
198 bb679:          ; preds = %bb735
199         br i1 false, label %cond_true729, label %cond_next731
200
201 cond_true729:           ; preds = %bb679
202         br label %cond_next731
203
204 cond_next731:           ; preds = %cond_true729, %bb679
205         br label %bb735
206
207 bb735:          ; preds = %cond_next731, %cond_true678
208         br i1 false, label %bb679, label %bb743
209
210 bb743:          ; preds = %bb735
211         br i1 false, label %cond_true788, label %cond_next790
212
213 cond_true788:           ; preds = %bb743
214         br label %cond_next790
215
216 cond_next790:           ; preds = %cond_true788, %bb743
217         br label %cond_next791
218
219 cond_next791:           ; preds = %cond_next790, %cond_next669
220         br i1 false, label %cond_true805, label %cond_next807
221
222 cond_true805:           ; preds = %cond_next791
223         br label %cond_next807
224
225 cond_next807:           ; preds = %cond_true805, %cond_next791
226         store i8* null, i8** null
227         br label %return
228
229 bb810:          ; preds = %entry
230         br i1 false, label %cond_true870, label %cond_next872
231
232 cond_true870:           ; preds = %bb810
233         br label %cond_next872
234
235 cond_next872:           ; preds = %cond_true870, %bb810
236         br i1 false, label %cond_true877, label %cond_next879
237
238 cond_true877:           ; preds = %cond_next872
239         br label %cond_next879
240
241 cond_next879:           ; preds = %cond_true877, %cond_next872
242         store i8* null, i8** null
243         br label %return
244
245 bb882:          ; preds = %entry
246         br i1 false, label %cond_true920, label %cond_next922
247
248 cond_true920:           ; preds = %bb882
249         br label %cond_next922
250
251 cond_next922:           ; preds = %cond_true920, %bb882
252         store i8* null, i8** null
253         br label %return
254
255 bb925:          ; preds = %entry
256         br i1 false, label %cond_true965, label %cond_next967
257
258 cond_true965:           ; preds = %bb925
259         br label %cond_next967
260
261 cond_next967:           ; preds = %cond_true965, %bb925
262         store i8* null, i8** null
263         br label %return
264
265 bb970:          ; preds = %entry
266         unreachable
267                 ; No predecessors!
268         store i8* null, i8** null
269         br label %return
270
271 return:         ; preds = %0, %cond_next967, %cond_next922, %cond_next879, %cond_next807, %cond_next630, %cond_next415, %cond_next267, %cond_next191, %bb
272         %retval980 = load i8*, i8** null                ; <i8*> [#uses=1]
273         ret i8* %retval980
274 }