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