1 ; RUN: llvm-upgrade < %s | llvm-as | llc
2 %struct.rtunion = type { long }
3 %struct.rtx_def = type { ushort, ubyte, ubyte, [1 x %struct.rtunion] }
4 %ix86_cpu = external global uint ; <uint*> [#uses=1]
5 %which_alternative = external global int ; <int*> [#uses=3]
7 implementation ; Functions:
9 declare fastcc int %recog()
11 void %athlon_fp_unit_ready_cost() {
13 %tmp = setlt int 0, 0 ; <bool> [#uses=1]
14 br bool %tmp, label %cond_true.i, label %cond_true
16 cond_true: ; preds = %entry
19 cond_true.i: ; preds = %entry
20 %tmp8.i = tail call fastcc int %recog( ) ; <int> [#uses=1]
21 switch int %tmp8.i, label %UnifiedReturnBlock [
36 int 101, label %bb1648
37 int 102, label %bb1648
38 int 103, label %bb1648
39 int 104, label %bb1648
40 int 133, label %bb1419
41 int 135, label %bb1238
42 int 136, label %bb1238
43 int 137, label %bb1238
44 int 138, label %bb1238
45 int 139, label %bb1201
46 int 140, label %bb1201
47 int 141, label %bb1154
48 int 142, label %bb1126
49 int 144, label %bb1201
50 int 145, label %bb1126
51 int 146, label %bb1201
52 int 147, label %bb1126
53 int 148, label %bb1201
54 int 149, label %bb1126
55 int 150, label %bb1201
56 int 151, label %bb1126
57 int 152, label %bb1096
58 int 153, label %bb1096
59 int 154, label %bb1096
60 int 157, label %bb1096
61 int 158, label %bb1096
62 int 159, label %bb1096
63 int 162, label %bb1096
64 int 163, label %bb1096
65 int 164, label %bb1096
66 int 167, label %bb1201
67 int 168, label %bb1201
68 int 170, label %bb1201
69 int 171, label %bb1201
70 int 173, label %bb1201
71 int 174, label %bb1201
72 int 176, label %bb1201
73 int 177, label %bb1201
80 int 365, label %bb1126
81 int 366, label %bb1126
82 int 367, label %bb1126
83 int 368, label %bb1126
84 int 369, label %bb1126
85 int 370, label %bb1126
86 int 371, label %bb1126
87 int 372, label %bb1126
88 int 373, label %bb1126
89 int 384, label %bb1126
90 int 385, label %bb1126
91 int 386, label %bb1126
92 int 387, label %bb1126
93 int 388, label %bb1126
94 int 389, label %bb1126
95 int 390, label %bb1126
96 int 391, label %bb1126
97 int 392, label %bb1126
100 int 528, label %bb919
101 int 529, label %bb839
102 int 531, label %cond_next6.i119
103 int 532, label %cond_next6.i97
104 int 533, label %cond_next6.i81
105 int 534, label %bb495
106 int 536, label %cond_next6.i81
107 int 537, label %cond_next6.i81
108 int 538, label %bb396
109 int 539, label %bb288
110 int 541, label %bb396
111 int 542, label %bb396
112 int 543, label %bb396
113 int 544, label %bb396
114 int 545, label %bb189
115 int 546, label %cond_next6.i
116 int 547, label %bb189
117 int 548, label %cond_next6.i
118 int 549, label %bb189
119 int 550, label %cond_next6.i
120 int 551, label %bb189
121 int 552, label %cond_next6.i
122 int 553, label %bb189
123 int 554, label %cond_next6.i
124 int 555, label %bb189
125 int 556, label %cond_next6.i
126 int 557, label %bb189
127 int 558, label %cond_next6.i
135 bb10: ; preds = %cond_true.i, %cond_true.i
138 bb18: ; preds = %cond_true.i
141 bb40: ; preds = %cond_true.i, %cond_true.i
144 cond_next6.i: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
147 bb189: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
150 bb288: ; preds = %cond_true.i
153 bb396: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
156 bb495: ; preds = %cond_true.i
159 cond_next6.i81: ; preds = %cond_true.i, %cond_true.i, %cond_true.i
162 cond_next6.i97: ; preds = %cond_true.i
165 cond_next6.i119: ; preds = %cond_true.i
166 %tmp.i126 = seteq ushort 0, 78 ; <bool> [#uses=1]
167 br bool %tmp.i126, label %cond_next778, label %bb802
169 cond_next778: ; preds = %cond_next6.i119
170 %tmp781 = seteq uint 0, 1 ; <bool> [#uses=1]
171 br bool %tmp781, label %cond_next784, label %bb790
173 cond_next784: ; preds = %cond_next778
174 %tmp785 = load uint* %ix86_cpu ; <uint> [#uses=1]
175 %tmp786 = seteq uint %tmp785, 5 ; <bool> [#uses=1]
176 br bool %tmp786, label %UnifiedReturnBlock, label %bb790
178 bb790: ; preds = %cond_next784, %cond_next778
179 %tmp793 = seteq uint 0, 1 ; <bool> [#uses=0]
182 bb802: ; preds = %cond_next6.i119
185 bb839: ; preds = %cond_true.i, %cond_true.i
188 bb919: ; preds = %cond_true.i, %cond_true.i
191 bb993: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
194 bb1096: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
197 bb1126: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
200 bb1154: ; preds = %cond_true.i
203 bb1201: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
206 bb1238: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
209 bb1419: ; preds = %cond_true.i
212 bb1648: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
213 %tmp1650 = load int* %which_alternative ; <int> [#uses=1]
214 switch int %tmp1650, label %bb1701 [
215 int 0, label %cond_next1675
216 int 1, label %cond_next1675
217 int 2, label %cond_next1675
220 cond_next1675: ; preds = %bb1648, %bb1648, %bb1648
223 bb1701: ; preds = %bb1648
224 %tmp1702 = load int* %which_alternative ; <int> [#uses=1]
225 switch int %tmp1702, label %bb1808 [
226 int 0, label %cond_next1727
227 int 1, label %cond_next1727
228 int 2, label %cond_next1727
231 cond_next1727: ; preds = %bb1701, %bb1701, %bb1701
234 bb1808: ; preds = %bb1701
235 %bothcond696 = or bool false, false ; <bool> [#uses=1]
236 br bool %bothcond696, label %bb1876, label %cond_next1834
238 cond_next1834: ; preds = %bb1808
241 bb1876: ; preds = %bb1808
242 %tmp1877 = load int* %which_alternative ; <int> [#uses=4]
243 %tmp1877 = cast int %tmp1877 to uint ; <uint> [#uses=1]
244 %bothcond699 = setlt uint %tmp1877, 2 ; <bool> [#uses=1]
245 %tmp1888 = seteq int %tmp1877, 2 ; <bool> [#uses=1]
246 %bothcond700 = or bool %bothcond699, %tmp1888 ; <bool> [#uses=1]
247 %bothcond700.not = xor bool %bothcond700, true ; <bool> [#uses=1]
248 %tmp1894 = seteq int %tmp1877, 3 ; <bool> [#uses=1]
249 %bothcond701 = or bool %tmp1894, %bothcond700.not ; <bool> [#uses=1]
250 %bothcond702 = or bool %bothcond701, false ; <bool> [#uses=1]
251 br bool %bothcond702, label %UnifiedReturnBlock, label %cond_next1902
253 cond_next1902: ; preds = %bb1876
254 switch int %tmp1877, label %cond_next1937 [
260 bb1918: ; preds = %cond_next1902, %cond_next1902, %cond_next1902
263 cond_next1937: ; preds = %cond_next1902
266 bb1948: ; preds = %cond_true.i, %cond_true.i, %cond_true.i
269 bb1994: ; preds = %cond_true.i, %cond_true.i
272 bb2035: ; preds = %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i, %cond_true.i
275 bb2063: ; preds = %cond_true.i
278 UnifiedReturnBlock: ; preds = %bb1876, %cond_next784, %cond_true.i
279 %UnifiedRetVal = phi int [ 100, %bb1876 ], [ 100, %cond_true.i ], [ 4, %cond_next784 ] ; <int> [#uses=0]