[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / X86 / 2009-03-23-MultiUseSched.ll
blobbeac717343210cae0a8b8f08aad9bcf513cd51b2
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
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              ; <i64*> [#uses=25]
10 define 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
464 declare i64 @llvm.bswap.i64(i64) nounwind readnone