• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=x86 -mcpu=yonah -stats |& grep {Number of block tails merged} | grep 16
2; PR1909
3
4@.str = internal constant [48 x i8] c"transformed bounds: (%.2f, %.2f), (%.2f, %.2f)\0A\00"		; <[48 x i8]*> [#uses=1]
5
6define void @minmax(float* %result) nounwind optsize {
7entry:
8	%tmp2 = load float* %result, align 4		; <float> [#uses=6]
9	%tmp4 = getelementptr float* %result, i32 2		; <float*> [#uses=5]
10	%tmp5 = load float* %tmp4, align 4		; <float> [#uses=10]
11	%tmp7 = getelementptr float* %result, i32 4		; <float*> [#uses=5]
12	%tmp8 = load float* %tmp7, align 4		; <float> [#uses=8]
13	%tmp10 = getelementptr float* %result, i32 6		; <float*> [#uses=3]
14	%tmp11 = load float* %tmp10, align 4		; <float> [#uses=8]
15	%tmp12 = fcmp olt float %tmp8, %tmp11		; <i1> [#uses=5]
16	br i1 %tmp12, label %bb, label %bb21
17
18bb:		; preds = %entry
19	%tmp23469 = fcmp olt float %tmp5, %tmp8		; <i1> [#uses=1]
20	br i1 %tmp23469, label %bb26, label %bb30
21
22bb21:		; preds = %entry
23	%tmp23 = fcmp olt float %tmp5, %tmp11		; <i1> [#uses=1]
24	br i1 %tmp23, label %bb26, label %bb30
25
26bb26:		; preds = %bb21, %bb
27	%tmp52471 = fcmp olt float %tmp2, %tmp5		; <i1> [#uses=1]
28	br i1 %tmp52471, label %bb111, label %bb59
29
30bb30:		; preds = %bb21, %bb
31	br i1 %tmp12, label %bb40, label %bb50
32
33bb40:		; preds = %bb30
34	%tmp52473 = fcmp olt float %tmp2, %tmp8		; <i1> [#uses=1]
35	br i1 %tmp52473, label %bb111, label %bb59
36
37bb50:		; preds = %bb30
38	%tmp52 = fcmp olt float %tmp2, %tmp11		; <i1> [#uses=1]
39	br i1 %tmp52, label %bb111, label %bb59
40
41bb59:		; preds = %bb50, %bb40, %bb26
42	br i1 %tmp12, label %bb72, label %bb80
43
44bb72:		; preds = %bb59
45	%tmp82475 = fcmp olt float %tmp5, %tmp8		; <i1> [#uses=2]
46	%brmerge786 = or i1 %tmp82475, %tmp12		; <i1> [#uses=1]
47	%tmp4.mux787 = select i1 %tmp82475, float* %tmp4, float* %tmp7		; <float*> [#uses=1]
48	br i1 %brmerge786, label %bb111, label %bb103
49
50bb80:		; preds = %bb59
51	%tmp82 = fcmp olt float %tmp5, %tmp11		; <i1> [#uses=2]
52	%brmerge = or i1 %tmp82, %tmp12		; <i1> [#uses=1]
53	%tmp4.mux = select i1 %tmp82, float* %tmp4, float* %tmp7		; <float*> [#uses=1]
54	br i1 %brmerge, label %bb111, label %bb103
55
56bb103:		; preds = %bb80, %bb72
57	br label %bb111
58
59bb111:		; preds = %bb103, %bb80, %bb72, %bb50, %bb40, %bb26
60	%iftmp.0.0.in = phi float* [ %tmp10, %bb103 ], [ %result, %bb26 ], [ %result, %bb40 ], [ %result, %bb50 ], [ %tmp4.mux, %bb80 ], [ %tmp4.mux787, %bb72 ]		; <float*> [#uses=1]
61	%iftmp.0.0 = load float* %iftmp.0.0.in		; <float> [#uses=1]
62	%tmp125 = fcmp ogt float %tmp8, %tmp11		; <i1> [#uses=5]
63	br i1 %tmp125, label %bb128, label %bb136
64
65bb128:		; preds = %bb111
66	%tmp138477 = fcmp ogt float %tmp5, %tmp8		; <i1> [#uses=1]
67	br i1 %tmp138477, label %bb141, label %bb145
68
69bb136:		; preds = %bb111
70	%tmp138 = fcmp ogt float %tmp5, %tmp11		; <i1> [#uses=1]
71	br i1 %tmp138, label %bb141, label %bb145
72
73bb141:		; preds = %bb136, %bb128
74	%tmp167479 = fcmp ogt float %tmp2, %tmp5		; <i1> [#uses=1]
75	br i1 %tmp167479, label %bb226, label %bb174
76
77bb145:		; preds = %bb136, %bb128
78	br i1 %tmp125, label %bb155, label %bb165
79
80bb155:		; preds = %bb145
81	%tmp167481 = fcmp ogt float %tmp2, %tmp8		; <i1> [#uses=1]
82	br i1 %tmp167481, label %bb226, label %bb174
83
84bb165:		; preds = %bb145
85	%tmp167 = fcmp ogt float %tmp2, %tmp11		; <i1> [#uses=1]
86	br i1 %tmp167, label %bb226, label %bb174
87
88bb174:		; preds = %bb165, %bb155, %bb141
89	br i1 %tmp125, label %bb187, label %bb195
90
91bb187:		; preds = %bb174
92	%tmp197483 = fcmp ogt float %tmp5, %tmp8		; <i1> [#uses=2]
93	%brmerge790 = or i1 %tmp197483, %tmp125		; <i1> [#uses=1]
94	%tmp4.mux791 = select i1 %tmp197483, float* %tmp4, float* %tmp7		; <float*> [#uses=1]
95	br i1 %brmerge790, label %bb226, label %bb218
96
97bb195:		; preds = %bb174
98	%tmp197 = fcmp ogt float %tmp5, %tmp11		; <i1> [#uses=2]
99	%brmerge788 = or i1 %tmp197, %tmp125		; <i1> [#uses=1]
100	%tmp4.mux789 = select i1 %tmp197, float* %tmp4, float* %tmp7		; <float*> [#uses=1]
101	br i1 %brmerge788, label %bb226, label %bb218
102
103bb218:		; preds = %bb195, %bb187
104	br label %bb226
105
106bb226:		; preds = %bb218, %bb195, %bb187, %bb165, %bb155, %bb141
107	%iftmp.7.0.in = phi float* [ %tmp10, %bb218 ], [ %result, %bb141 ], [ %result, %bb155 ], [ %result, %bb165 ], [ %tmp4.mux789, %bb195 ], [ %tmp4.mux791, %bb187 ]		; <float*> [#uses=1]
108	%iftmp.7.0 = load float* %iftmp.7.0.in		; <float> [#uses=1]
109	%tmp229 = getelementptr float* %result, i32 1		; <float*> [#uses=7]
110	%tmp230 = load float* %tmp229, align 4		; <float> [#uses=6]
111	%tmp232 = getelementptr float* %result, i32 3		; <float*> [#uses=5]
112	%tmp233 = load float* %tmp232, align 4		; <float> [#uses=10]
113	%tmp235 = getelementptr float* %result, i32 5		; <float*> [#uses=5]
114	%tmp236 = load float* %tmp235, align 4		; <float> [#uses=8]
115	%tmp238 = getelementptr float* %result, i32 7		; <float*> [#uses=3]
116	%tmp239 = load float* %tmp238, align 4		; <float> [#uses=8]
117	%tmp240 = fcmp olt float %tmp236, %tmp239		; <i1> [#uses=5]
118	br i1 %tmp240, label %bb243, label %bb251
119
120bb243:		; preds = %bb226
121	%tmp253485 = fcmp olt float %tmp233, %tmp236		; <i1> [#uses=1]
122	br i1 %tmp253485, label %bb256, label %bb260
123
124bb251:		; preds = %bb226
125	%tmp253 = fcmp olt float %tmp233, %tmp239		; <i1> [#uses=1]
126	br i1 %tmp253, label %bb256, label %bb260
127
128bb256:		; preds = %bb251, %bb243
129	%tmp282487 = fcmp olt float %tmp230, %tmp233		; <i1> [#uses=1]
130	br i1 %tmp282487, label %bb341, label %bb289
131
132bb260:		; preds = %bb251, %bb243
133	br i1 %tmp240, label %bb270, label %bb280
134
135bb270:		; preds = %bb260
136	%tmp282489 = fcmp olt float %tmp230, %tmp236		; <i1> [#uses=1]
137	br i1 %tmp282489, label %bb341, label %bb289
138
139bb280:		; preds = %bb260
140	%tmp282 = fcmp olt float %tmp230, %tmp239		; <i1> [#uses=1]
141	br i1 %tmp282, label %bb341, label %bb289
142
143bb289:		; preds = %bb280, %bb270, %bb256
144	br i1 %tmp240, label %bb302, label %bb310
145
146bb302:		; preds = %bb289
147	%tmp312491 = fcmp olt float %tmp233, %tmp236		; <i1> [#uses=2]
148	%brmerge793 = or i1 %tmp312491, %tmp240		; <i1> [#uses=1]
149	%tmp232.mux794 = select i1 %tmp312491, float* %tmp232, float* %tmp235		; <float*> [#uses=1]
150	br i1 %brmerge793, label %bb341, label %bb333
151
152bb310:		; preds = %bb289
153	%tmp312 = fcmp olt float %tmp233, %tmp239		; <i1> [#uses=2]
154	%brmerge792 = or i1 %tmp312, %tmp240		; <i1> [#uses=1]
155	%tmp232.mux = select i1 %tmp312, float* %tmp232, float* %tmp235		; <float*> [#uses=1]
156	br i1 %brmerge792, label %bb341, label %bb333
157
158bb333:		; preds = %bb310, %bb302
159	br label %bb341
160
161bb341:		; preds = %bb333, %bb310, %bb302, %bb280, %bb270, %bb256
162	%iftmp.14.0.in = phi float* [ %tmp238, %bb333 ], [ %tmp229, %bb280 ], [ %tmp229, %bb270 ], [ %tmp229, %bb256 ], [ %tmp232.mux, %bb310 ], [ %tmp232.mux794, %bb302 ]		; <float*> [#uses=1]
163	%iftmp.14.0 = load float* %iftmp.14.0.in		; <float> [#uses=1]
164	%tmp355 = fcmp ogt float %tmp236, %tmp239		; <i1> [#uses=5]
165	br i1 %tmp355, label %bb358, label %bb366
166
167bb358:		; preds = %bb341
168	%tmp368493 = fcmp ogt float %tmp233, %tmp236		; <i1> [#uses=1]
169	br i1 %tmp368493, label %bb371, label %bb375
170
171bb366:		; preds = %bb341
172	%tmp368 = fcmp ogt float %tmp233, %tmp239		; <i1> [#uses=1]
173	br i1 %tmp368, label %bb371, label %bb375
174
175bb371:		; preds = %bb366, %bb358
176	%tmp397495 = fcmp ogt float %tmp230, %tmp233		; <i1> [#uses=1]
177	br i1 %tmp397495, label %bb456, label %bb404
178
179bb375:		; preds = %bb366, %bb358
180	br i1 %tmp355, label %bb385, label %bb395
181
182bb385:		; preds = %bb375
183	%tmp397497 = fcmp ogt float %tmp230, %tmp236		; <i1> [#uses=1]
184	br i1 %tmp397497, label %bb456, label %bb404
185
186bb395:		; preds = %bb375
187	%tmp397 = fcmp ogt float %tmp230, %tmp239		; <i1> [#uses=1]
188	br i1 %tmp397, label %bb456, label %bb404
189
190bb404:		; preds = %bb395, %bb385, %bb371
191	br i1 %tmp355, label %bb417, label %bb425
192
193bb417:		; preds = %bb404
194	%tmp427499 = fcmp ogt float %tmp233, %tmp236		; <i1> [#uses=2]
195	%brmerge797 = or i1 %tmp427499, %tmp355		; <i1> [#uses=1]
196	%tmp232.mux798 = select i1 %tmp427499, float* %tmp232, float* %tmp235		; <float*> [#uses=1]
197	br i1 %brmerge797, label %bb456, label %bb448
198
199bb425:		; preds = %bb404
200	%tmp427 = fcmp ogt float %tmp233, %tmp239		; <i1> [#uses=2]
201	%brmerge795 = or i1 %tmp427, %tmp355		; <i1> [#uses=1]
202	%tmp232.mux796 = select i1 %tmp427, float* %tmp232, float* %tmp235		; <float*> [#uses=1]
203	br i1 %brmerge795, label %bb456, label %bb448
204
205bb448:		; preds = %bb425, %bb417
206	br label %bb456
207
208bb456:		; preds = %bb448, %bb425, %bb417, %bb395, %bb385, %bb371
209	%iftmp.21.0.in = phi float* [ %tmp238, %bb448 ], [ %tmp229, %bb395 ], [ %tmp229, %bb385 ], [ %tmp229, %bb371 ], [ %tmp232.mux796, %bb425 ], [ %tmp232.mux798, %bb417 ]		; <float*> [#uses=1]
210	%iftmp.21.0 = load float* %iftmp.21.0.in		; <float> [#uses=1]
211	%tmp458459 = fpext float %iftmp.21.0 to double		; <double> [#uses=1]
212	%tmp460461 = fpext float %iftmp.7.0 to double		; <double> [#uses=1]
213	%tmp462463 = fpext float %iftmp.14.0 to double		; <double> [#uses=1]
214	%tmp464465 = fpext float %iftmp.0.0 to double		; <double> [#uses=1]
215	%tmp467 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([48 x i8]* @.str, i32 0, i32 0), double %tmp464465, double %tmp462463, double %tmp460461, double %tmp458459 ) nounwind 		; <i32> [#uses=0]
216	ret void
217}
218
219declare i32 @printf(i8*, ...) nounwind
220