1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
3 ; RUN: llc < %s -mtriple=x86_64-linux -mcpu=corei7 -relocation-model=static | FileCheck %s
5 ; The register-pressure scheduler should be able to schedule this in a
6 ; way that does not require spills.
8 @X = external dso_local global i64 ; <ptr> [#uses=25]
10 define fastcc i64 @foo() nounwind {
13 ; CHECK-NEXT: pushq %r14
14 ; CHECK-NEXT: pushq %rbx
15 ; CHECK-NEXT: movq X(%rip), %rcx
16 ; CHECK-NEXT: movq X(%rip), %r9
17 ; CHECK-NEXT: movq X(%rip), %r8
18 ; CHECK-NEXT: movq X(%rip), %rdi
19 ; CHECK-NEXT: movq X(%rip), %rsi
20 ; CHECK-NEXT: movq X(%rip), %rdx
21 ; CHECK-NEXT: movq X(%rip), %rbx
22 ; CHECK-NEXT: movq X(%rip), %rax
23 ; CHECK-NEXT: addq %rsi, %rax
24 ; CHECK-NEXT: movq X(%rip), %r10
25 ; CHECK-NEXT: movq X(%rip), %r11
26 ; CHECK-NEXT: bswapq %r10
27 ; CHECK-NEXT: leaq (%rbx,%rdx), %r14
28 ; CHECK-NEXT: addq %rsi, %r14
29 ; CHECK-NEXT: addq %rax, %r14
30 ; CHECK-NEXT: addq %r10, %r14
31 ; CHECK-NEXT: leaq (%r9,%rcx), %rax
32 ; CHECK-NEXT: leaq (%rax,%r8), %r10
33 ; CHECK-NEXT: addq %r14, %rdi
34 ; CHECK-NEXT: addq %r10, %r10
35 ; CHECK-NEXT: bswapq %r11
36 ; CHECK-NEXT: addq %r14, %r10
37 ; CHECK-NEXT: addq %rbx, %r11
38 ; CHECK-NEXT: leaq (%rsi,%rdx), %rbx
39 ; CHECK-NEXT: addq %rdi, %rbx
40 ; CHECK-NEXT: addq %rdi, %r11
41 ; CHECK-NEXT: addq %rbx, %r11
42 ; CHECK-NEXT: addq %rax, %rax
43 ; CHECK-NEXT: addq %r10, %rax
44 ; CHECK-NEXT: addq %r11, %r8
45 ; CHECK-NEXT: addq %r10, %rax
46 ; CHECK-NEXT: addq %r11, %rax
47 ; CHECK-NEXT: movq X(%rip), %r11
48 ; CHECK-NEXT: bswapq %r11
49 ; CHECK-NEXT: addq %rdx, %r11
50 ; CHECK-NEXT: leaq (%rdi,%rsi), %rdx
51 ; CHECK-NEXT: addq %r8, %rdx
52 ; CHECK-NEXT: addq %r8, %r11
53 ; CHECK-NEXT: addq %rdx, %r11
54 ; CHECK-NEXT: leaq (%r10,%rcx), %rdx
55 ; CHECK-NEXT: addq %rdx, %rdx
56 ; CHECK-NEXT: addq %rax, %rdx
57 ; CHECK-NEXT: addq %r11, %r9
58 ; CHECK-NEXT: addq %rax, %rdx
59 ; CHECK-NEXT: addq %r11, %rdx
60 ; CHECK-NEXT: movq X(%rip), %r11
61 ; CHECK-NEXT: bswapq %r11
62 ; CHECK-NEXT: addq %rsi, %r11
63 ; CHECK-NEXT: leaq (%r8,%rdi), %rsi
64 ; CHECK-NEXT: addq %r9, %rsi
65 ; CHECK-NEXT: addq %r9, %r11
66 ; CHECK-NEXT: addq %rsi, %r11
67 ; CHECK-NEXT: leaq (%rax,%r10), %rsi
68 ; CHECK-NEXT: addq %rsi, %rsi
69 ; CHECK-NEXT: addq %rdx, %rsi
70 ; CHECK-NEXT: addq %r11, %rcx
71 ; CHECK-NEXT: addq %rdx, %rsi
72 ; CHECK-NEXT: addq %r11, %rsi
73 ; CHECK-NEXT: movq X(%rip), %r11
74 ; CHECK-NEXT: bswapq %r11
75 ; CHECK-NEXT: addq %rdi, %r11
76 ; CHECK-NEXT: leaq (%r9,%r8), %rdi
77 ; CHECK-NEXT: addq %rcx, %rdi
78 ; CHECK-NEXT: addq %rcx, %r11
79 ; CHECK-NEXT: addq %rdi, %r11
80 ; CHECK-NEXT: leaq (%rdx,%rax), %rdi
81 ; CHECK-NEXT: addq %rdi, %rdi
82 ; CHECK-NEXT: addq %rsi, %rdi
83 ; CHECK-NEXT: addq %r11, %r10
84 ; CHECK-NEXT: addq %rsi, %rdi
85 ; CHECK-NEXT: addq %r11, %rdi
86 ; CHECK-NEXT: movq X(%rip), %r11
87 ; CHECK-NEXT: bswapq %r11
88 ; CHECK-NEXT: addq %r8, %r11
89 ; CHECK-NEXT: leaq (%rcx,%r9), %r8
90 ; CHECK-NEXT: addq %r10, %r8
91 ; CHECK-NEXT: addq %r10, %r11
92 ; CHECK-NEXT: addq %r8, %r11
93 ; CHECK-NEXT: leaq (%rsi,%rdx), %r8
94 ; CHECK-NEXT: addq %r8, %r8
95 ; CHECK-NEXT: addq %rdi, %r8
96 ; CHECK-NEXT: addq %r11, %rax
97 ; CHECK-NEXT: addq %rdi, %r8
98 ; CHECK-NEXT: addq %r11, %r8
99 ; CHECK-NEXT: movq X(%rip), %r11
100 ; CHECK-NEXT: bswapq %r11
101 ; CHECK-NEXT: addq %r9, %r11
102 ; CHECK-NEXT: leaq (%r10,%rcx), %r9
103 ; CHECK-NEXT: addq %rax, %r9
104 ; CHECK-NEXT: addq %rax, %r11
105 ; CHECK-NEXT: addq %r9, %r11
106 ; CHECK-NEXT: leaq (%rdi,%rsi), %r9
107 ; CHECK-NEXT: addq %r9, %r9
108 ; CHECK-NEXT: addq %r8, %r9
109 ; CHECK-NEXT: addq %r11, %rdx
110 ; CHECK-NEXT: addq %r8, %r9
111 ; CHECK-NEXT: addq %r11, %r9
112 ; CHECK-NEXT: movq X(%rip), %r11
113 ; CHECK-NEXT: bswapq %r11
114 ; CHECK-NEXT: addq %rcx, %r11
115 ; CHECK-NEXT: leaq (%rax,%r10), %rcx
116 ; CHECK-NEXT: addq %rdx, %rcx
117 ; CHECK-NEXT: addq %rdx, %r11
118 ; CHECK-NEXT: addq %rcx, %r11
119 ; CHECK-NEXT: leaq (%r8,%rdi), %rcx
120 ; CHECK-NEXT: addq %rcx, %rcx
121 ; CHECK-NEXT: addq %r9, %rcx
122 ; CHECK-NEXT: addq %r11, %rsi
123 ; CHECK-NEXT: addq %r9, %rcx
124 ; CHECK-NEXT: addq %r11, %rcx
125 ; CHECK-NEXT: movq X(%rip), %r11
126 ; CHECK-NEXT: bswapq %r11
127 ; CHECK-NEXT: addq %r10, %r11
128 ; CHECK-NEXT: leaq (%rdx,%rax), %r10
129 ; CHECK-NEXT: addq %rsi, %r10
130 ; CHECK-NEXT: addq %rsi, %r11
131 ; CHECK-NEXT: addq %r10, %r11
132 ; CHECK-NEXT: leaq (%r9,%r8), %r10
133 ; CHECK-NEXT: addq %r10, %r10
134 ; CHECK-NEXT: addq %rcx, %r10
135 ; CHECK-NEXT: addq %r11, %rdi
136 ; CHECK-NEXT: addq %rcx, %r10
137 ; CHECK-NEXT: addq %r11, %r10
138 ; CHECK-NEXT: movq X(%rip), %rbx
139 ; CHECK-NEXT: bswapq %rbx
140 ; CHECK-NEXT: addq %rax, %rbx
141 ; CHECK-NEXT: leaq (%rsi,%rdx), %rax
142 ; CHECK-NEXT: addq %rdi, %rax
143 ; CHECK-NEXT: addq %rdi, %rbx
144 ; CHECK-NEXT: addq %rax, %rbx
145 ; CHECK-NEXT: leaq (%rcx,%r9), %r11
146 ; CHECK-NEXT: addq %r11, %r11
147 ; CHECK-NEXT: addq %r10, %r11
148 ; CHECK-NEXT: addq %rbx, %r8
149 ; CHECK-NEXT: addq %r10, %r11
150 ; CHECK-NEXT: addq %rbx, %r11
151 ; CHECK-NEXT: movq X(%rip), %rax
152 ; CHECK-NEXT: bswapq %rax
153 ; CHECK-NEXT: addq %rdx, %rax
154 ; CHECK-NEXT: leaq (%rdi,%rsi), %rdx
155 ; CHECK-NEXT: addq %r8, %rdx
156 ; CHECK-NEXT: addq %r8, %rax
157 ; CHECK-NEXT: addq %rdx, %rax
158 ; CHECK-NEXT: leaq (%r10,%rcx), %rdx
159 ; CHECK-NEXT: addq %rdx, %rdx
160 ; CHECK-NEXT: addq %r11, %rdx
161 ; CHECK-NEXT: addq %rax, %r9
162 ; CHECK-NEXT: addq %r11, %rdx
163 ; CHECK-NEXT: addq %rax, %rdx
164 ; CHECK-NEXT: movq X(%rip), %rbx
165 ; CHECK-NEXT: bswapq %rbx
166 ; CHECK-NEXT: addq %rsi, %rbx
167 ; CHECK-NEXT: leaq (%r8,%rdi), %rax
168 ; CHECK-NEXT: addq %r9, %rax
169 ; CHECK-NEXT: addq %r9, %rbx
170 ; CHECK-NEXT: addq %rax, %rbx
171 ; CHECK-NEXT: leaq (%r11,%r10), %rax
172 ; CHECK-NEXT: addq %rax, %rax
173 ; CHECK-NEXT: addq %rdx, %rax
174 ; CHECK-NEXT: addq %rbx, %rcx
175 ; CHECK-NEXT: addq %rdx, %rax
176 ; CHECK-NEXT: addq %rbx, %rax
177 ; CHECK-NEXT: movq X(%rip), %rbx
178 ; CHECK-NEXT: bswapq %rbx
179 ; CHECK-NEXT: addq %rdi, %rbx
180 ; CHECK-NEXT: leaq (%r9,%r8), %rsi
181 ; CHECK-NEXT: addq %rcx, %rsi
182 ; CHECK-NEXT: addq %rcx, %rbx
183 ; CHECK-NEXT: addq %rsi, %rbx
184 ; CHECK-NEXT: leaq (%rdx,%r11), %rsi
185 ; CHECK-NEXT: addq %rsi, %rsi
186 ; CHECK-NEXT: addq %rax, %rsi
187 ; CHECK-NEXT: addq %rbx, %r10
188 ; CHECK-NEXT: addq %rax, %rsi
189 ; CHECK-NEXT: addq %rbx, %rsi
190 ; CHECK-NEXT: movq X(%rip), %rbx
191 ; CHECK-NEXT: bswapq %rbx
192 ; CHECK-NEXT: addq %r8, %rbx
193 ; CHECK-NEXT: leaq (%rcx,%r9), %rdi
194 ; CHECK-NEXT: addq %r10, %rdi
195 ; CHECK-NEXT: addq %r10, %rbx
196 ; CHECK-NEXT: addq %rdi, %rbx
197 ; CHECK-NEXT: leaq (%rax,%rdx), %rdi
198 ; CHECK-NEXT: addq %rdi, %rdi
199 ; CHECK-NEXT: addq %rsi, %rdi
200 ; CHECK-NEXT: addq %rbx, %r11
201 ; CHECK-NEXT: addq %rsi, %rdi
202 ; CHECK-NEXT: addq %rbx, %rdi
203 ; CHECK-NEXT: movq X(%rip), %r8
204 ; CHECK-NEXT: bswapq %r8
205 ; CHECK-NEXT: addq %r9, %r8
206 ; CHECK-NEXT: leaq (%r10,%rcx), %r9
207 ; CHECK-NEXT: addq %r11, %r9
208 ; CHECK-NEXT: addq %r11, %r8
209 ; CHECK-NEXT: addq %r9, %r8
210 ; CHECK-NEXT: addq %rax, %rsi
211 ; CHECK-NEXT: addq %rsi, %rsi
212 ; CHECK-NEXT: addq %rdi, %rsi
213 ; CHECK-NEXT: addq %rdi, %rsi
214 ; CHECK-NEXT: addq %r8, %rdx
215 ; CHECK-NEXT: addq %r8, %rsi
216 ; CHECK-NEXT: movq X(%rip), %rax
217 ; CHECK-NEXT: bswapq %rax
218 ; CHECK-NEXT: addq %r10, %r11
219 ; CHECK-NEXT: movq %rax, X(%rip)
220 ; CHECK-NEXT: addq %rcx, %rax
221 ; CHECK-NEXT: addq %rdx, %r11
222 ; CHECK-NEXT: addq %rdx, %rax
223 ; CHECK-NEXT: addq %r11, %rax
224 ; CHECK-NEXT: addq %rsi, %rax
225 ; CHECK-NEXT: popq %rbx
226 ; CHECK-NEXT: popq %r14
228 %tmp = load volatile i64, ptr @X ; <i64> [#uses=7]
229 %tmp1 = load volatile i64, ptr @X ; <i64> [#uses=5]
230 %tmp2 = load volatile i64, ptr @X ; <i64> [#uses=3]
231 %tmp3 = load volatile i64, ptr @X ; <i64> [#uses=1]
232 %tmp4 = load volatile i64, ptr @X ; <i64> [#uses=5]
233 %tmp5 = load volatile i64, ptr @X ; <i64> [#uses=3]
234 %tmp6 = load volatile i64, ptr @X ; <i64> [#uses=2]
235 %tmp7 = load volatile i64, ptr @X ; <i64> [#uses=1]
236 %tmp8 = load volatile i64, ptr @X ; <i64> [#uses=1]
237 %tmp9 = load volatile i64, ptr @X ; <i64> [#uses=1]
238 %tmp10 = load volatile i64, ptr @X ; <i64> [#uses=1]
239 %tmp11 = load volatile i64, ptr @X ; <i64> [#uses=1]
240 %tmp12 = load volatile i64, ptr @X ; <i64> [#uses=1]
241 %tmp13 = load volatile i64, ptr @X ; <i64> [#uses=1]
242 %tmp14 = load volatile i64, ptr @X ; <i64> [#uses=1]
243 %tmp15 = load volatile i64, ptr @X ; <i64> [#uses=1]
244 %tmp16 = load volatile i64, ptr @X ; <i64> [#uses=1]
245 %tmp17 = load volatile i64, ptr @X ; <i64> [#uses=1]
246 %tmp18 = load volatile i64, ptr @X ; <i64> [#uses=1]
247 %tmp19 = load volatile i64, ptr @X ; <i64> [#uses=1]
248 %tmp20 = load volatile i64, ptr @X ; <i64> [#uses=1]
249 %tmp21 = load volatile i64, ptr @X ; <i64> [#uses=1]
250 %tmp22 = load volatile i64, ptr @X ; <i64> [#uses=1]
251 %tmp23 = load volatile i64, ptr @X ; <i64> [#uses=1]
252 %tmp24 = call i64 @llvm.bswap.i64(i64 %tmp8) ; <i64> [#uses=1]
253 %tmp25 = add i64 %tmp6, %tmp5 ; <i64> [#uses=1]
254 %tmp26 = add i64 %tmp25, %tmp4 ; <i64> [#uses=1]
255 %tmp27 = add i64 %tmp7, %tmp4 ; <i64> [#uses=1]
256 %tmp28 = add i64 %tmp27, %tmp26 ; <i64> [#uses=1]
257 %tmp29 = add i64 %tmp28, %tmp24 ; <i64> [#uses=2]
258 %tmp30 = add i64 %tmp2, %tmp1 ; <i64> [#uses=1]
259 %tmp31 = add i64 %tmp30, %tmp ; <i64> [#uses=1]
260 %tmp32 = add i64 %tmp2, %tmp1 ; <i64> [#uses=1]
261 %tmp33 = add i64 %tmp31, %tmp32 ; <i64> [#uses=1]
262 %tmp34 = add i64 %tmp29, %tmp3 ; <i64> [#uses=5]
263 %tmp35 = add i64 %tmp33, %tmp ; <i64> [#uses=1]
264 %tmp36 = add i64 %tmp35, %tmp29 ; <i64> [#uses=7]
265 %tmp37 = call i64 @llvm.bswap.i64(i64 %tmp9) ; <i64> [#uses=1]
266 %tmp38 = add i64 %tmp4, %tmp5 ; <i64> [#uses=1]
267 %tmp39 = add i64 %tmp38, %tmp34 ; <i64> [#uses=1]
268 %tmp40 = add i64 %tmp6, %tmp37 ; <i64> [#uses=1]
269 %tmp41 = add i64 %tmp40, %tmp39 ; <i64> [#uses=1]
270 %tmp42 = add i64 %tmp41, %tmp34 ; <i64> [#uses=2]
271 %tmp43 = add i64 %tmp1, %tmp ; <i64> [#uses=1]
272 %tmp44 = add i64 %tmp36, %tmp43 ; <i64> [#uses=1]
273 %tmp45 = add i64 %tmp1, %tmp ; <i64> [#uses=1]
274 %tmp46 = add i64 %tmp44, %tmp45 ; <i64> [#uses=1]
275 %tmp47 = add i64 %tmp42, %tmp2 ; <i64> [#uses=5]
276 %tmp48 = add i64 %tmp36, %tmp46 ; <i64> [#uses=1]
277 %tmp49 = add i64 %tmp48, %tmp42 ; <i64> [#uses=7]
278 %tmp50 = call i64 @llvm.bswap.i64(i64 %tmp10) ; <i64> [#uses=1]
279 %tmp51 = add i64 %tmp34, %tmp4 ; <i64> [#uses=1]
280 %tmp52 = add i64 %tmp51, %tmp47 ; <i64> [#uses=1]
281 %tmp53 = add i64 %tmp5, %tmp50 ; <i64> [#uses=1]
282 %tmp54 = add i64 %tmp53, %tmp52 ; <i64> [#uses=1]
283 %tmp55 = add i64 %tmp54, %tmp47 ; <i64> [#uses=2]
284 %tmp56 = add i64 %tmp36, %tmp ; <i64> [#uses=1]
285 %tmp57 = add i64 %tmp49, %tmp56 ; <i64> [#uses=1]
286 %tmp58 = add i64 %tmp36, %tmp ; <i64> [#uses=1]
287 %tmp59 = add i64 %tmp57, %tmp58 ; <i64> [#uses=1]
288 %tmp60 = add i64 %tmp55, %tmp1 ; <i64> [#uses=5]
289 %tmp61 = add i64 %tmp49, %tmp59 ; <i64> [#uses=1]
290 %tmp62 = add i64 %tmp61, %tmp55 ; <i64> [#uses=7]
291 %tmp63 = call i64 @llvm.bswap.i64(i64 %tmp11) ; <i64> [#uses=1]
292 %tmp64 = add i64 %tmp47, %tmp34 ; <i64> [#uses=1]
293 %tmp65 = add i64 %tmp64, %tmp60 ; <i64> [#uses=1]
294 %tmp66 = add i64 %tmp4, %tmp63 ; <i64> [#uses=1]
295 %tmp67 = add i64 %tmp66, %tmp65 ; <i64> [#uses=1]
296 %tmp68 = add i64 %tmp67, %tmp60 ; <i64> [#uses=2]
297 %tmp69 = add i64 %tmp49, %tmp36 ; <i64> [#uses=1]
298 %tmp70 = add i64 %tmp62, %tmp69 ; <i64> [#uses=1]
299 %tmp71 = add i64 %tmp49, %tmp36 ; <i64> [#uses=1]
300 %tmp72 = add i64 %tmp70, %tmp71 ; <i64> [#uses=1]
301 %tmp73 = add i64 %tmp68, %tmp ; <i64> [#uses=5]
302 %tmp74 = add i64 %tmp62, %tmp72 ; <i64> [#uses=1]
303 %tmp75 = add i64 %tmp74, %tmp68 ; <i64> [#uses=7]
304 %tmp76 = call i64 @llvm.bswap.i64(i64 %tmp12) ; <i64> [#uses=1]
305 %tmp77 = add i64 %tmp60, %tmp47 ; <i64> [#uses=1]
306 %tmp78 = add i64 %tmp77, %tmp73 ; <i64> [#uses=1]
307 %tmp79 = add i64 %tmp34, %tmp76 ; <i64> [#uses=1]
308 %tmp80 = add i64 %tmp79, %tmp78 ; <i64> [#uses=1]
309 %tmp81 = add i64 %tmp80, %tmp73 ; <i64> [#uses=2]
310 %tmp82 = add i64 %tmp62, %tmp49 ; <i64> [#uses=1]
311 %tmp83 = add i64 %tmp75, %tmp82 ; <i64> [#uses=1]
312 %tmp84 = add i64 %tmp62, %tmp49 ; <i64> [#uses=1]
313 %tmp85 = add i64 %tmp83, %tmp84 ; <i64> [#uses=1]
314 %tmp86 = add i64 %tmp81, %tmp36 ; <i64> [#uses=5]
315 %tmp87 = add i64 %tmp75, %tmp85 ; <i64> [#uses=1]
316 %tmp88 = add i64 %tmp87, %tmp81 ; <i64> [#uses=7]
317 %tmp89 = call i64 @llvm.bswap.i64(i64 %tmp13) ; <i64> [#uses=1]
318 %tmp90 = add i64 %tmp73, %tmp60 ; <i64> [#uses=1]
319 %tmp91 = add i64 %tmp90, %tmp86 ; <i64> [#uses=1]
320 %tmp92 = add i64 %tmp47, %tmp89 ; <i64> [#uses=1]
321 %tmp93 = add i64 %tmp92, %tmp91 ; <i64> [#uses=1]
322 %tmp94 = add i64 %tmp93, %tmp86 ; <i64> [#uses=2]
323 %tmp95 = add i64 %tmp75, %tmp62 ; <i64> [#uses=1]
324 %tmp96 = add i64 %tmp88, %tmp95 ; <i64> [#uses=1]
325 %tmp97 = add i64 %tmp75, %tmp62 ; <i64> [#uses=1]
326 %tmp98 = add i64 %tmp96, %tmp97 ; <i64> [#uses=1]
327 %tmp99 = add i64 %tmp94, %tmp49 ; <i64> [#uses=5]
328 %tmp100 = add i64 %tmp88, %tmp98 ; <i64> [#uses=1]
329 %tmp101 = add i64 %tmp100, %tmp94 ; <i64> [#uses=7]
330 %tmp102 = call i64 @llvm.bswap.i64(i64 %tmp14) ; <i64> [#uses=1]
331 %tmp103 = add i64 %tmp86, %tmp73 ; <i64> [#uses=1]
332 %tmp104 = add i64 %tmp103, %tmp99 ; <i64> [#uses=1]
333 %tmp105 = add i64 %tmp102, %tmp60 ; <i64> [#uses=1]
334 %tmp106 = add i64 %tmp105, %tmp104 ; <i64> [#uses=1]
335 %tmp107 = add i64 %tmp106, %tmp99 ; <i64> [#uses=2]
336 %tmp108 = add i64 %tmp88, %tmp75 ; <i64> [#uses=1]
337 %tmp109 = add i64 %tmp101, %tmp108 ; <i64> [#uses=1]
338 %tmp110 = add i64 %tmp88, %tmp75 ; <i64> [#uses=1]
339 %tmp111 = add i64 %tmp109, %tmp110 ; <i64> [#uses=1]
340 %tmp112 = add i64 %tmp107, %tmp62 ; <i64> [#uses=5]
341 %tmp113 = add i64 %tmp101, %tmp111 ; <i64> [#uses=1]
342 %tmp114 = add i64 %tmp113, %tmp107 ; <i64> [#uses=7]
343 %tmp115 = call i64 @llvm.bswap.i64(i64 %tmp15) ; <i64> [#uses=1]
344 %tmp116 = add i64 %tmp99, %tmp86 ; <i64> [#uses=1]
345 %tmp117 = add i64 %tmp116, %tmp112 ; <i64> [#uses=1]
346 %tmp118 = add i64 %tmp115, %tmp73 ; <i64> [#uses=1]
347 %tmp119 = add i64 %tmp118, %tmp117 ; <i64> [#uses=1]
348 %tmp120 = add i64 %tmp119, %tmp112 ; <i64> [#uses=2]
349 %tmp121 = add i64 %tmp101, %tmp88 ; <i64> [#uses=1]
350 %tmp122 = add i64 %tmp114, %tmp121 ; <i64> [#uses=1]
351 %tmp123 = add i64 %tmp101, %tmp88 ; <i64> [#uses=1]
352 %tmp124 = add i64 %tmp122, %tmp123 ; <i64> [#uses=1]
353 %tmp125 = add i64 %tmp120, %tmp75 ; <i64> [#uses=5]
354 %tmp126 = add i64 %tmp114, %tmp124 ; <i64> [#uses=1]
355 %tmp127 = add i64 %tmp126, %tmp120 ; <i64> [#uses=7]
356 %tmp128 = call i64 @llvm.bswap.i64(i64 %tmp16) ; <i64> [#uses=1]
357 %tmp129 = add i64 %tmp112, %tmp99 ; <i64> [#uses=1]
358 %tmp130 = add i64 %tmp129, %tmp125 ; <i64> [#uses=1]
359 %tmp131 = add i64 %tmp128, %tmp86 ; <i64> [#uses=1]
360 %tmp132 = add i64 %tmp131, %tmp130 ; <i64> [#uses=1]
361 %tmp133 = add i64 %tmp132, %tmp125 ; <i64> [#uses=2]
362 %tmp134 = add i64 %tmp114, %tmp101 ; <i64> [#uses=1]
363 %tmp135 = add i64 %tmp127, %tmp134 ; <i64> [#uses=1]
364 %tmp136 = add i64 %tmp114, %tmp101 ; <i64> [#uses=1]
365 %tmp137 = add i64 %tmp135, %tmp136 ; <i64> [#uses=1]
366 %tmp138 = add i64 %tmp133, %tmp88 ; <i64> [#uses=5]
367 %tmp139 = add i64 %tmp127, %tmp137 ; <i64> [#uses=1]
368 %tmp140 = add i64 %tmp139, %tmp133 ; <i64> [#uses=7]
369 %tmp141 = call i64 @llvm.bswap.i64(i64 %tmp17) ; <i64> [#uses=1]
370 %tmp142 = add i64 %tmp125, %tmp112 ; <i64> [#uses=1]
371 %tmp143 = add i64 %tmp142, %tmp138 ; <i64> [#uses=1]
372 %tmp144 = add i64 %tmp141, %tmp99 ; <i64> [#uses=1]
373 %tmp145 = add i64 %tmp144, %tmp143 ; <i64> [#uses=1]
374 %tmp146 = add i64 %tmp145, %tmp138 ; <i64> [#uses=2]
375 %tmp147 = add i64 %tmp127, %tmp114 ; <i64> [#uses=1]
376 %tmp148 = add i64 %tmp140, %tmp147 ; <i64> [#uses=1]
377 %tmp149 = add i64 %tmp127, %tmp114 ; <i64> [#uses=1]
378 %tmp150 = add i64 %tmp148, %tmp149 ; <i64> [#uses=1]
379 %tmp151 = add i64 %tmp146, %tmp101 ; <i64> [#uses=5]
380 %tmp152 = add i64 %tmp140, %tmp150 ; <i64> [#uses=1]
381 %tmp153 = add i64 %tmp152, %tmp146 ; <i64> [#uses=7]
382 %tmp154 = call i64 @llvm.bswap.i64(i64 %tmp18) ; <i64> [#uses=1]
383 %tmp155 = add i64 %tmp138, %tmp125 ; <i64> [#uses=1]
384 %tmp156 = add i64 %tmp155, %tmp151 ; <i64> [#uses=1]
385 %tmp157 = add i64 %tmp154, %tmp112 ; <i64> [#uses=1]
386 %tmp158 = add i64 %tmp157, %tmp156 ; <i64> [#uses=1]
387 %tmp159 = add i64 %tmp158, %tmp151 ; <i64> [#uses=2]
388 %tmp160 = add i64 %tmp140, %tmp127 ; <i64> [#uses=1]
389 %tmp161 = add i64 %tmp153, %tmp160 ; <i64> [#uses=1]
390 %tmp162 = add i64 %tmp140, %tmp127 ; <i64> [#uses=1]
391 %tmp163 = add i64 %tmp161, %tmp162 ; <i64> [#uses=1]
392 %tmp164 = add i64 %tmp159, %tmp114 ; <i64> [#uses=5]
393 %tmp165 = add i64 %tmp153, %tmp163 ; <i64> [#uses=1]
394 %tmp166 = add i64 %tmp165, %tmp159 ; <i64> [#uses=7]
395 %tmp167 = call i64 @llvm.bswap.i64(i64 %tmp19) ; <i64> [#uses=1]
396 %tmp168 = add i64 %tmp151, %tmp138 ; <i64> [#uses=1]
397 %tmp169 = add i64 %tmp168, %tmp164 ; <i64> [#uses=1]
398 %tmp170 = add i64 %tmp167, %tmp125 ; <i64> [#uses=1]
399 %tmp171 = add i64 %tmp170, %tmp169 ; <i64> [#uses=1]
400 %tmp172 = add i64 %tmp171, %tmp164 ; <i64> [#uses=2]
401 %tmp173 = add i64 %tmp153, %tmp140 ; <i64> [#uses=1]
402 %tmp174 = add i64 %tmp166, %tmp173 ; <i64> [#uses=1]
403 %tmp175 = add i64 %tmp153, %tmp140 ; <i64> [#uses=1]
404 %tmp176 = add i64 %tmp174, %tmp175 ; <i64> [#uses=1]
405 %tmp177 = add i64 %tmp172, %tmp127 ; <i64> [#uses=5]
406 %tmp178 = add i64 %tmp166, %tmp176 ; <i64> [#uses=1]
407 %tmp179 = add i64 %tmp178, %tmp172 ; <i64> [#uses=6]
408 %tmp180 = call i64 @llvm.bswap.i64(i64 %tmp20) ; <i64> [#uses=1]
409 %tmp181 = add i64 %tmp164, %tmp151 ; <i64> [#uses=1]
410 %tmp182 = add i64 %tmp181, %tmp177 ; <i64> [#uses=1]
411 %tmp183 = add i64 %tmp180, %tmp138 ; <i64> [#uses=1]
412 %tmp184 = add i64 %tmp183, %tmp182 ; <i64> [#uses=1]
413 %tmp185 = add i64 %tmp184, %tmp177 ; <i64> [#uses=2]
414 %tmp186 = add i64 %tmp166, %tmp153 ; <i64> [#uses=1]
415 %tmp187 = add i64 %tmp179, %tmp186 ; <i64> [#uses=1]
416 %tmp188 = add i64 %tmp166, %tmp153 ; <i64> [#uses=1]
417 %tmp189 = add i64 %tmp187, %tmp188 ; <i64> [#uses=1]
418 %tmp190 = add i64 %tmp185, %tmp140 ; <i64> [#uses=4]
419 %tmp191 = add i64 %tmp179, %tmp189 ; <i64> [#uses=1]
420 %tmp192 = add i64 %tmp191, %tmp185 ; <i64> [#uses=4]
421 %tmp193 = call i64 @llvm.bswap.i64(i64 %tmp21) ; <i64> [#uses=1]
422 %tmp194 = add i64 %tmp177, %tmp164 ; <i64> [#uses=1]
423 %tmp195 = add i64 %tmp194, %tmp190 ; <i64> [#uses=1]
424 %tmp196 = add i64 %tmp193, %tmp151 ; <i64> [#uses=1]
425 %tmp197 = add i64 %tmp196, %tmp195 ; <i64> [#uses=1]
426 %tmp198 = add i64 %tmp197, %tmp190 ; <i64> [#uses=2]
427 %tmp199 = add i64 %tmp179, %tmp166 ; <i64> [#uses=1]
428 %tmp200 = add i64 %tmp192, %tmp199 ; <i64> [#uses=1]
429 %tmp201 = add i64 %tmp179, %tmp166 ; <i64> [#uses=1]
430 %tmp202 = add i64 %tmp200, %tmp201 ; <i64> [#uses=1]
431 %tmp203 = add i64 %tmp198, %tmp153 ; <i64> [#uses=3]
432 %tmp204 = add i64 %tmp192, %tmp202 ; <i64> [#uses=1]
433 %tmp205 = add i64 %tmp204, %tmp198 ; <i64> [#uses=2]
434 %tmp206 = call i64 @llvm.bswap.i64(i64 %tmp22) ; <i64> [#uses=1]
435 %tmp207 = add i64 %tmp190, %tmp177 ; <i64> [#uses=1]
436 %tmp208 = add i64 %tmp207, %tmp203 ; <i64> [#uses=1]
437 %tmp209 = add i64 %tmp206, %tmp164 ; <i64> [#uses=1]
438 %tmp210 = add i64 %tmp209, %tmp208 ; <i64> [#uses=1]
439 %tmp211 = add i64 %tmp210, %tmp203 ; <i64> [#uses=2]
440 %tmp212 = add i64 %tmp192, %tmp179 ; <i64> [#uses=1]
441 %tmp213 = add i64 %tmp205, %tmp212 ; <i64> [#uses=1]
442 %tmp214 = add i64 %tmp192, %tmp179 ; <i64> [#uses=1]
443 %tmp215 = add i64 %tmp213, %tmp214 ; <i64> [#uses=1]
444 %tmp216 = add i64 %tmp211, %tmp166 ; <i64> [#uses=2]
445 %tmp217 = add i64 %tmp205, %tmp215 ; <i64> [#uses=1]
446 %tmp218 = add i64 %tmp217, %tmp211 ; <i64> [#uses=1]
447 %tmp219 = call i64 @llvm.bswap.i64(i64 %tmp23) ; <i64> [#uses=2]
448 store volatile i64 %tmp219, ptr @X, align 8
449 %tmp220 = add i64 %tmp203, %tmp190 ; <i64> [#uses=1]
450 %tmp221 = add i64 %tmp220, %tmp216 ; <i64> [#uses=1]
451 %tmp222 = add i64 %tmp219, %tmp177 ; <i64> [#uses=1]
452 %tmp223 = add i64 %tmp222, %tmp221 ; <i64> [#uses=1]
453 %tmp224 = add i64 %tmp223, %tmp216 ; <i64> [#uses=1]
454 %tmp225 = add i64 %tmp224, %tmp218 ; <i64> [#uses=1]
458 declare i64 @llvm.bswap.i64(i64) nounwind readnone