[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / CodeGen / X86 / mul-i512.ll
blob5781e339929c3a72b41c27edd889d246713d0df6
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=i386-unknown | FileCheck %s --check-prefix=X32
3 ; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s --check-prefix=X64
5 define void @test_512(ptr %a, ptr %b, ptr %out) nounwind {
6 ; X32-LABEL: test_512:
7 ; X32:       # %bb.0:
8 ; X32-NEXT:    pushl %ebp
9 ; X32-NEXT:    pushl %ebx
10 ; X32-NEXT:    pushl %edi
11 ; X32-NEXT:    pushl %esi
12 ; X32-NEXT:    subl $184, %esp
13 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
14 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx
15 ; X32-NEXT:    movl 28(%edx), %ecx
16 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
17 ; X32-NEXT:    movl 24(%edx), %ebp
18 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
19 ; X32-NEXT:    movl (%eax), %edi
20 ; X32-NEXT:    movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
21 ; X32-NEXT:    movl %ebp, %eax
22 ; X32-NEXT:    mull %edi
23 ; X32-NEXT:    movl %edx, %esi
24 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
25 ; X32-NEXT:    movl %ecx, %eax
26 ; X32-NEXT:    mull %edi
27 ; X32-NEXT:    movl %edx, %edi
28 ; X32-NEXT:    movl %eax, %ebx
29 ; X32-NEXT:    addl %esi, %ebx
30 ; X32-NEXT:    adcl $0, %edi
31 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
32 ; X32-NEXT:    movl 4(%eax), %ecx
33 ; X32-NEXT:    movl %ebp, %eax
34 ; X32-NEXT:    mull %ecx
35 ; X32-NEXT:    movl %ecx, %ebp
36 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
37 ; X32-NEXT:    movl %edx, %esi
38 ; X32-NEXT:    addl %ebx, %eax
39 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
40 ; X32-NEXT:    adcl %edi, %esi
41 ; X32-NEXT:    setb %cl
42 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
43 ; X32-NEXT:    mull %ebp
44 ; X32-NEXT:    addl %esi, %eax
45 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
46 ; X32-NEXT:    movzbl %cl, %eax
47 ; X32-NEXT:    adcl %eax, %edx
48 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
49 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
50 ; X32-NEXT:    movl 16(%ecx), %ebp
51 ; X32-NEXT:    movl %ebp, %eax
52 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
53 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
54 ; X32-NEXT:    mull %edi
55 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
56 ; X32-NEXT:    movl %edx, %esi
57 ; X32-NEXT:    movl 20(%ecx), %ebx
58 ; X32-NEXT:    movl %ebx, %eax
59 ; X32-NEXT:    mull %edi
60 ; X32-NEXT:    movl %edx, %edi
61 ; X32-NEXT:    movl %eax, %ecx
62 ; X32-NEXT:    addl %esi, %ecx
63 ; X32-NEXT:    adcl $0, %edi
64 ; X32-NEXT:    movl %ebp, %eax
65 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
66 ; X32-NEXT:    mull %esi
67 ; X32-NEXT:    movl %edx, %ebp
68 ; X32-NEXT:    addl %ecx, %eax
69 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
70 ; X32-NEXT:    adcl %edi, %ebp
71 ; X32-NEXT:    setb %cl
72 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
73 ; X32-NEXT:    movl %ebx, %eax
74 ; X32-NEXT:    mull %esi
75 ; X32-NEXT:    addl %ebp, %eax
76 ; X32-NEXT:    movzbl %cl, %ecx
77 ; X32-NEXT:    adcl %ecx, %edx
78 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
79 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
80 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
81 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
82 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
83 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
84 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi
85 ; X32-NEXT:    movl 8(%edi), %ebp
86 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
87 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
88 ; X32-NEXT:    movl %esi, %eax
89 ; X32-NEXT:    mull %ebp
90 ; X32-NEXT:    movl %edx, %ecx
91 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
92 ; X32-NEXT:    movl %ebx, %eax
93 ; X32-NEXT:    mull %ebp
94 ; X32-NEXT:    movl %edx, %ebp
95 ; X32-NEXT:    movl %eax, %ebx
96 ; X32-NEXT:    addl %ecx, %ebx
97 ; X32-NEXT:    adcl $0, %ebp
98 ; X32-NEXT:    movl 12(%edi), %ecx
99 ; X32-NEXT:    movl %esi, %eax
100 ; X32-NEXT:    mull %ecx
101 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
102 ; X32-NEXT:    movl %edx, %edi
103 ; X32-NEXT:    addl %ebx, %eax
104 ; X32-NEXT:    movl %eax, %esi
105 ; X32-NEXT:    adcl %ebp, %edi
106 ; X32-NEXT:    setb %bl
107 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
108 ; X32-NEXT:    mull %ecx
109 ; X32-NEXT:    movl %eax, %ecx
110 ; X32-NEXT:    addl %edi, %ecx
111 ; X32-NEXT:    movzbl %bl, %eax
112 ; X32-NEXT:    adcl %eax, %edx
113 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
114 ; X32-NEXT:    addl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
115 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
116 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
117 ; X32-NEXT:    adcl $0, %ecx
118 ; X32-NEXT:    adcl $0, %edx
119 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
120 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
121 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
122 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
123 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
124 ; X32-NEXT:    movl %esi, %eax
125 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
126 ; X32-NEXT:    mull %edi
127 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
128 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
129 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
130 ; X32-NEXT:    mull %edi
131 ; X32-NEXT:    movl %edx, %ebp
132 ; X32-NEXT:    movl %eax, %ebx
133 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
134 ; X32-NEXT:    adcl $0, %ebp
135 ; X32-NEXT:    movl %esi, %eax
136 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
137 ; X32-NEXT:    mull %edi
138 ; X32-NEXT:    movl %edx, %esi
139 ; X32-NEXT:    addl %ebx, %eax
140 ; X32-NEXT:    movl %eax, %ebx
141 ; X32-NEXT:    adcl %ebp, %esi
142 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
143 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
144 ; X32-NEXT:    mull %edi
145 ; X32-NEXT:    addl %esi, %eax
146 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 1-byte Folded Reload
147 ; X32-NEXT:    adcl %esi, %edx
148 ; X32-NEXT:    addl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
149 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
150 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
151 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
152 ; X32-NEXT:    adcl %ecx, %eax
153 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
154 ; X32-NEXT:    adcl $0, %edx
155 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
156 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
157 ; X32-NEXT:    movl 8(%ecx), %ebx
158 ; X32-NEXT:    movl %ebx, %eax
159 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
160 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
161 ; X32-NEXT:    mull %esi
162 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
163 ; X32-NEXT:    movl %edx, %ebp
164 ; X32-NEXT:    movl 12(%ecx), %ecx
165 ; X32-NEXT:    movl %ecx, %eax
166 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
167 ; X32-NEXT:    mull %esi
168 ; X32-NEXT:    movl %edx, %esi
169 ; X32-NEXT:    movl %eax, %edi
170 ; X32-NEXT:    addl %ebp, %edi
171 ; X32-NEXT:    adcl $0, %esi
172 ; X32-NEXT:    movl %ebx, %eax
173 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
174 ; X32-NEXT:    mull %ebx
175 ; X32-NEXT:    movl %edx, %ebp
176 ; X32-NEXT:    addl %edi, %eax
177 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
178 ; X32-NEXT:    adcl %esi, %ebp
179 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
180 ; X32-NEXT:    movl %ecx, %eax
181 ; X32-NEXT:    mull %ebx
182 ; X32-NEXT:    addl %ebp, %eax
183 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
184 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
185 ; X32-NEXT:    adcl %eax, %edx
186 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
187 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
188 ; X32-NEXT:    movl (%ecx), %esi
189 ; X32-NEXT:    movl %esi, %eax
190 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
191 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
192 ; X32-NEXT:    mull %edi
193 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
194 ; X32-NEXT:    movl %edx, (%esp) # 4-byte Spill
195 ; X32-NEXT:    movl 4(%ecx), %eax
196 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
197 ; X32-NEXT:    mull %edi
198 ; X32-NEXT:    movl %edx, %edi
199 ; X32-NEXT:    movl %eax, %ebp
200 ; X32-NEXT:    addl (%esp), %ebp # 4-byte Folded Reload
201 ; X32-NEXT:    adcl $0, %edi
202 ; X32-NEXT:    movl %esi, %eax
203 ; X32-NEXT:    mull %ebx
204 ; X32-NEXT:    movl %ebx, %esi
205 ; X32-NEXT:    movl %edx, %ecx
206 ; X32-NEXT:    addl %ebp, %eax
207 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
208 ; X32-NEXT:    adcl %edi, %ecx
209 ; X32-NEXT:    setb %bl
210 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
211 ; X32-NEXT:    movl %ebp, %eax
212 ; X32-NEXT:    mull %esi
213 ; X32-NEXT:    movl %eax, %esi
214 ; X32-NEXT:    addl %ecx, %esi
215 ; X32-NEXT:    movzbl %bl, %eax
216 ; X32-NEXT:    adcl %eax, %edx
217 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
218 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
219 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
220 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
221 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
222 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
223 ; X32-NEXT:    movl %ecx, %eax
224 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
225 ; X32-NEXT:    mull %edi
226 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
227 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
228 ; X32-NEXT:    movl %ebp, %eax
229 ; X32-NEXT:    mull %edi
230 ; X32-NEXT:    movl %edx, %ebp
231 ; X32-NEXT:    movl %eax, %ebx
232 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
233 ; X32-NEXT:    adcl $0, %ebp
234 ; X32-NEXT:    movl %ecx, %eax
235 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
236 ; X32-NEXT:    mull %ecx
237 ; X32-NEXT:    movl %edx, %edi
238 ; X32-NEXT:    addl %ebx, %eax
239 ; X32-NEXT:    movl %eax, %ebx
240 ; X32-NEXT:    adcl %ebp, %edi
241 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
242 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
243 ; X32-NEXT:    mull %ecx
244 ; X32-NEXT:    movl %eax, %ebp
245 ; X32-NEXT:    addl %edi, %ebp
246 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
247 ; X32-NEXT:    adcl %eax, %edx
248 ; X32-NEXT:    addl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
249 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
250 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
251 ; X32-NEXT:    adcl $0, %ebp
252 ; X32-NEXT:    adcl $0, %edx
253 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
254 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
255 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
256 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
257 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
258 ; X32-NEXT:    movl %esi, %eax
259 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
260 ; X32-NEXT:    mull %ecx
261 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
262 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
263 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
264 ; X32-NEXT:    mull %ecx
265 ; X32-NEXT:    movl %edx, %edi
266 ; X32-NEXT:    movl %eax, %ebx
267 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
268 ; X32-NEXT:    adcl $0, %edi
269 ; X32-NEXT:    movl %esi, %eax
270 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
271 ; X32-NEXT:    mull %ecx
272 ; X32-NEXT:    movl %edx, %esi
273 ; X32-NEXT:    addl %ebx, %eax
274 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
275 ; X32-NEXT:    adcl %edi, %esi
276 ; X32-NEXT:    setb %bl
277 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
278 ; X32-NEXT:    mull %ecx
279 ; X32-NEXT:    addl %esi, %eax
280 ; X32-NEXT:    movzbl %bl, %ecx
281 ; X32-NEXT:    movl %edx, %esi
282 ; X32-NEXT:    adcl %ecx, %esi
283 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
284 ; X32-NEXT:    addl %ebp, %ecx
285 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
286 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
287 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 1-byte Folded Reload
288 ; X32-NEXT:    adcl %edi, %eax
289 ; X32-NEXT:    adcl $0, %esi
290 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
291 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
292 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
293 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
294 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
295 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
296 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
297 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
298 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
299 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
300 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
301 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
302 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
303 ; X32-NEXT:    movl 16(%eax), %esi
304 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
305 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
306 ; X32-NEXT:    movl %ebx, %eax
307 ; X32-NEXT:    mull %esi
308 ; X32-NEXT:    movl %edx, %ecx
309 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
310 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
311 ; X32-NEXT:    movl %ebp, %eax
312 ; X32-NEXT:    mull %esi
313 ; X32-NEXT:    movl %edx, %esi
314 ; X32-NEXT:    movl %eax, %edi
315 ; X32-NEXT:    addl %ecx, %edi
316 ; X32-NEXT:    adcl $0, %esi
317 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
318 ; X32-NEXT:    movl 20(%eax), %ecx
319 ; X32-NEXT:    movl %ebx, %eax
320 ; X32-NEXT:    mull %ecx
321 ; X32-NEXT:    movl %ecx, %ebx
322 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
323 ; X32-NEXT:    movl %edx, %ecx
324 ; X32-NEXT:    addl %edi, %eax
325 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
326 ; X32-NEXT:    adcl %esi, %ecx
327 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
328 ; X32-NEXT:    movl %ebp, %eax
329 ; X32-NEXT:    mull %ebx
330 ; X32-NEXT:    addl %ecx, %eax
331 ; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill
332 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
333 ; X32-NEXT:    adcl %eax, %edx
334 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
335 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
336 ; X32-NEXT:    movl %ebp, %eax
337 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
338 ; X32-NEXT:    mull %esi
339 ; X32-NEXT:    movl %edx, %ecx
340 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
341 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
342 ; X32-NEXT:    movl %edi, %eax
343 ; X32-NEXT:    mull %esi
344 ; X32-NEXT:    movl %edx, %esi
345 ; X32-NEXT:    movl %eax, %ebx
346 ; X32-NEXT:    addl %ecx, %ebx
347 ; X32-NEXT:    adcl $0, %esi
348 ; X32-NEXT:    movl %ebp, %eax
349 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
350 ; X32-NEXT:    mull %ecx
351 ; X32-NEXT:    movl %edx, %ebp
352 ; X32-NEXT:    addl %ebx, %eax
353 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
354 ; X32-NEXT:    adcl %esi, %ebp
355 ; X32-NEXT:    setb %bl
356 ; X32-NEXT:    movl %edi, %eax
357 ; X32-NEXT:    mull %ecx
358 ; X32-NEXT:    movl %eax, %ecx
359 ; X32-NEXT:    addl %ebp, %ecx
360 ; X32-NEXT:    movzbl %bl, %eax
361 ; X32-NEXT:    adcl %eax, %edx
362 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
363 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
364 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
365 ; X32-NEXT:    adcl $0, (%esp) # 4-byte Folded Spill
366 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
367 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
368 ; X32-NEXT:    movl 24(%eax), %ebx
369 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
370 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
371 ; X32-NEXT:    movl %esi, %eax
372 ; X32-NEXT:    mull %ebx
373 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
374 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
375 ; X32-NEXT:    movl %edi, %eax
376 ; X32-NEXT:    mull %ebx
377 ; X32-NEXT:    movl %edx, %ebp
378 ; X32-NEXT:    movl %eax, %edi
379 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
380 ; X32-NEXT:    adcl $0, %ebp
381 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
382 ; X32-NEXT:    movl 28(%eax), %ebx
383 ; X32-NEXT:    movl %esi, %eax
384 ; X32-NEXT:    mull %ebx
385 ; X32-NEXT:    movl %edx, %esi
386 ; X32-NEXT:    addl %edi, %eax
387 ; X32-NEXT:    movl %eax, %edi
388 ; X32-NEXT:    adcl %ebp, %esi
389 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
390 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
391 ; X32-NEXT:    mull %ebx
392 ; X32-NEXT:    movl %ebx, %ebp
393 ; X32-NEXT:    movl %eax, %ebx
394 ; X32-NEXT:    addl %esi, %ebx
395 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
396 ; X32-NEXT:    adcl %eax, %edx
397 ; X32-NEXT:    addl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
398 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
399 ; X32-NEXT:    movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
400 ; X32-NEXT:    adcl $0, %ebx
401 ; X32-NEXT:    adcl $0, %edx
402 ; X32-NEXT:    addl (%esp), %ebx # 4-byte Folded Reload
403 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
404 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
405 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
406 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
407 ; X32-NEXT:    movl %ecx, %eax
408 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
409 ; X32-NEXT:    mull %esi
410 ; X32-NEXT:    movl %edx, (%esp) # 4-byte Spill
411 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
412 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
413 ; X32-NEXT:    mull %esi
414 ; X32-NEXT:    movl %edx, %esi
415 ; X32-NEXT:    movl %eax, %edi
416 ; X32-NEXT:    addl (%esp), %edi # 4-byte Folded Reload
417 ; X32-NEXT:    adcl $0, %esi
418 ; X32-NEXT:    movl %ecx, %eax
419 ; X32-NEXT:    movl %ebp, %ecx
420 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
421 ; X32-NEXT:    mull %ebp
422 ; X32-NEXT:    movl %edx, %ebp
423 ; X32-NEXT:    addl %edi, %eax
424 ; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill
425 ; X32-NEXT:    adcl %esi, %ebp
426 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
427 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
428 ; X32-NEXT:    mull %ecx
429 ; X32-NEXT:    addl %ebp, %eax
430 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
431 ; X32-NEXT:    adcl %ecx, %edx
432 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
433 ; X32-NEXT:    addl %ebx, %edi
434 ; X32-NEXT:    movl (%esp), %ebx # 4-byte Reload
435 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
436 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
437 ; X32-NEXT:    adcl %ecx, %eax
438 ; X32-NEXT:    adcl $0, %edx
439 ; X32-NEXT:    movl %edx, %esi
440 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
441 ; X32-NEXT:    addl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
442 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
443 ; X32-NEXT:    adcl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
444 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
445 ; X32-NEXT:    adcl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
446 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
447 ; X32-NEXT:    adcl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
448 ; X32-NEXT:    movl %edi, %edx
449 ; X32-NEXT:    adcl $0, %edx
450 ; X32-NEXT:    movl %ebx, %ecx
451 ; X32-NEXT:    adcl $0, %ecx
452 ; X32-NEXT:    adcl $0, %eax
453 ; X32-NEXT:    adcl $0, %esi
454 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
455 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
456 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
457 ; X32-NEXT:    movl %ecx, (%esp) # 4-byte Spill
458 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
459 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
460 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
461 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
462 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
463 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
464 ; X32-NEXT:    movl %edi, %eax
465 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
466 ; X32-NEXT:    mull %esi
467 ; X32-NEXT:    movl %edx, %ecx
468 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
469 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
470 ; X32-NEXT:    movl %ebp, %eax
471 ; X32-NEXT:    mull %esi
472 ; X32-NEXT:    movl %edx, %esi
473 ; X32-NEXT:    movl %eax, %ebx
474 ; X32-NEXT:    addl %ecx, %ebx
475 ; X32-NEXT:    adcl $0, %esi
476 ; X32-NEXT:    movl %edi, %eax
477 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
478 ; X32-NEXT:    mull %edi
479 ; X32-NEXT:    movl %edx, %ecx
480 ; X32-NEXT:    addl %ebx, %eax
481 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
482 ; X32-NEXT:    adcl %esi, %ecx
483 ; X32-NEXT:    setb %bl
484 ; X32-NEXT:    movl %ebp, %eax
485 ; X32-NEXT:    mull %edi
486 ; X32-NEXT:    addl %ecx, %eax
487 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
488 ; X32-NEXT:    movzbl %bl, %eax
489 ; X32-NEXT:    adcl %eax, %edx
490 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
491 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
492 ; X32-NEXT:    movl %edi, %eax
493 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
494 ; X32-NEXT:    mull %esi
495 ; X32-NEXT:    movl %edx, %ecx
496 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
497 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
498 ; X32-NEXT:    movl %ebp, %eax
499 ; X32-NEXT:    mull %esi
500 ; X32-NEXT:    movl %edx, %esi
501 ; X32-NEXT:    movl %eax, %ebx
502 ; X32-NEXT:    addl %ecx, %ebx
503 ; X32-NEXT:    adcl $0, %esi
504 ; X32-NEXT:    movl %edi, %eax
505 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
506 ; X32-NEXT:    mull %ecx
507 ; X32-NEXT:    movl %edx, %edi
508 ; X32-NEXT:    addl %ebx, %eax
509 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
510 ; X32-NEXT:    adcl %esi, %edi
511 ; X32-NEXT:    setb %bl
512 ; X32-NEXT:    movl %ebp, %eax
513 ; X32-NEXT:    mull %ecx
514 ; X32-NEXT:    movl %eax, %esi
515 ; X32-NEXT:    addl %edi, %esi
516 ; X32-NEXT:    movzbl %bl, %eax
517 ; X32-NEXT:    adcl %eax, %edx
518 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
519 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
520 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
521 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
522 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
523 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
524 ; X32-NEXT:    movl %ecx, %eax
525 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
526 ; X32-NEXT:    mull %edi
527 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
528 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
529 ; X32-NEXT:    movl %ebp, %eax
530 ; X32-NEXT:    mull %edi
531 ; X32-NEXT:    movl %edx, %ebx
532 ; X32-NEXT:    movl %eax, %ebp
533 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
534 ; X32-NEXT:    adcl $0, %ebx
535 ; X32-NEXT:    movl %ecx, %eax
536 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
537 ; X32-NEXT:    mull %edi
538 ; X32-NEXT:    movl %edx, %ecx
539 ; X32-NEXT:    addl %ebp, %eax
540 ; X32-NEXT:    movl %eax, %ebp
541 ; X32-NEXT:    adcl %ebx, %ecx
542 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
543 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
544 ; X32-NEXT:    mull %edi
545 ; X32-NEXT:    movl %edi, %ebx
546 ; X32-NEXT:    movl %eax, %edi
547 ; X32-NEXT:    addl %ecx, %edi
548 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
549 ; X32-NEXT:    adcl %eax, %edx
550 ; X32-NEXT:    addl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
551 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
552 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
553 ; X32-NEXT:    adcl $0, %edi
554 ; X32-NEXT:    adcl $0, %edx
555 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
556 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
557 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
558 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
559 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
560 ; X32-NEXT:    movl %ecx, %eax
561 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
562 ; X32-NEXT:    mull %esi
563 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
564 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
565 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
566 ; X32-NEXT:    mull %esi
567 ; X32-NEXT:    movl %edx, %esi
568 ; X32-NEXT:    movl %eax, %ebp
569 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
570 ; X32-NEXT:    adcl $0, %esi
571 ; X32-NEXT:    movl %ecx, %eax
572 ; X32-NEXT:    movl %ebx, %ecx
573 ; X32-NEXT:    mull %ebx
574 ; X32-NEXT:    movl %edx, %ebx
575 ; X32-NEXT:    addl %ebp, %eax
576 ; X32-NEXT:    movl %eax, %ebp
577 ; X32-NEXT:    adcl %esi, %ebx
578 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
579 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
580 ; X32-NEXT:    mull %ecx
581 ; X32-NEXT:    addl %ebx, %eax
582 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
583 ; X32-NEXT:    adcl %ecx, %edx
584 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
585 ; X32-NEXT:    addl %edi, %ecx
586 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
587 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 1-byte Folded Reload
588 ; X32-NEXT:    adcl %esi, %eax
589 ; X32-NEXT:    movl %eax, %esi
590 ; X32-NEXT:    adcl $0, %edx
591 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
592 ; X32-NEXT:    addl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
593 ; X32-NEXT:    movl (%esp), %eax # 4-byte Reload
594 ; X32-NEXT:    adcl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
595 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
596 ; X32-NEXT:    adcl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
597 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
598 ; X32-NEXT:    adcl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
599 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
600 ; X32-NEXT:    adcl %eax, %ecx
601 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
602 ; X32-NEXT:    adcl $0, %ebp
603 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
604 ; X32-NEXT:    adcl $0, %esi
605 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
606 ; X32-NEXT:    adcl $0, %edx
607 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
608 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
609 ; X32-NEXT:    movl 32(%eax), %edi
610 ; X32-NEXT:    movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
611 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
612 ; X32-NEXT:    movl %esi, %eax
613 ; X32-NEXT:    mull %edi
614 ; X32-NEXT:    movl %edx, %ecx
615 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
616 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
617 ; X32-NEXT:    movl %ebp, %eax
618 ; X32-NEXT:    mull %edi
619 ; X32-NEXT:    movl %edx, %edi
620 ; X32-NEXT:    movl %eax, %ebx
621 ; X32-NEXT:    addl %ecx, %ebx
622 ; X32-NEXT:    adcl $0, %edi
623 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
624 ; X32-NEXT:    movl 36(%eax), %ecx
625 ; X32-NEXT:    movl %esi, %eax
626 ; X32-NEXT:    movl %ecx, %esi
627 ; X32-NEXT:    movl %ecx, (%esp) # 4-byte Spill
628 ; X32-NEXT:    mull %ecx
629 ; X32-NEXT:    movl %edx, %ecx
630 ; X32-NEXT:    addl %ebx, %eax
631 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
632 ; X32-NEXT:    adcl %edi, %ecx
633 ; X32-NEXT:    setb %bl
634 ; X32-NEXT:    movl %ebp, %eax
635 ; X32-NEXT:    mull %esi
636 ; X32-NEXT:    addl %ecx, %eax
637 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
638 ; X32-NEXT:    movzbl %bl, %eax
639 ; X32-NEXT:    adcl %eax, %edx
640 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
641 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
642 ; X32-NEXT:    movl %esi, %eax
643 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
644 ; X32-NEXT:    mull %edi
645 ; X32-NEXT:    movl %edx, %ecx
646 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
647 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
648 ; X32-NEXT:    movl %ebx, %eax
649 ; X32-NEXT:    mull %edi
650 ; X32-NEXT:    movl %edx, %edi
651 ; X32-NEXT:    movl %eax, %ebp
652 ; X32-NEXT:    addl %ecx, %ebp
653 ; X32-NEXT:    adcl $0, %edi
654 ; X32-NEXT:    movl %esi, %eax
655 ; X32-NEXT:    movl (%esp), %ecx # 4-byte Reload
656 ; X32-NEXT:    mull %ecx
657 ; X32-NEXT:    movl %edx, %esi
658 ; X32-NEXT:    addl %ebp, %eax
659 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
660 ; X32-NEXT:    adcl %edi, %esi
661 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
662 ; X32-NEXT:    movl %ebx, %eax
663 ; X32-NEXT:    mull %ecx
664 ; X32-NEXT:    movl %eax, %edi
665 ; X32-NEXT:    addl %esi, %edi
666 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
667 ; X32-NEXT:    adcl %eax, %edx
668 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
669 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
670 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
671 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
672 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
673 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
674 ; X32-NEXT:    movl 40(%eax), %esi
675 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
676 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
677 ; X32-NEXT:    movl %ecx, %eax
678 ; X32-NEXT:    mull %esi
679 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
680 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
681 ; X32-NEXT:    movl %ebx, %eax
682 ; X32-NEXT:    mull %esi
683 ; X32-NEXT:    movl %edx, %ebp
684 ; X32-NEXT:    movl %eax, %ebx
685 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
686 ; X32-NEXT:    adcl $0, %ebp
687 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
688 ; X32-NEXT:    movl 44(%eax), %esi
689 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
690 ; X32-NEXT:    movl %ecx, %eax
691 ; X32-NEXT:    mull %esi
692 ; X32-NEXT:    movl %edx, %ecx
693 ; X32-NEXT:    addl %ebx, %eax
694 ; X32-NEXT:    movl %eax, %ebx
695 ; X32-NEXT:    adcl %ebp, %ecx
696 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
697 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
698 ; X32-NEXT:    mull %esi
699 ; X32-NEXT:    movl %edx, %ebp
700 ; X32-NEXT:    movl %eax, %esi
701 ; X32-NEXT:    addl %ecx, %esi
702 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
703 ; X32-NEXT:    adcl %eax, %ebp
704 ; X32-NEXT:    addl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
705 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
706 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
707 ; X32-NEXT:    adcl $0, %esi
708 ; X32-NEXT:    adcl $0, %ebp
709 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
710 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
711 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
712 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
713 ; X32-NEXT:    movl %ecx, %eax
714 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
715 ; X32-NEXT:    mull %edi
716 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
717 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
718 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
719 ; X32-NEXT:    mull %edi
720 ; X32-NEXT:    movl %edx, %edi
721 ; X32-NEXT:    movl %eax, %ebx
722 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
723 ; X32-NEXT:    adcl $0, %edi
724 ; X32-NEXT:    movl %ecx, %eax
725 ; X32-NEXT:    mull {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
726 ; X32-NEXT:    movl %edx, %ecx
727 ; X32-NEXT:    addl %ebx, %eax
728 ; X32-NEXT:    movl %eax, %ebx
729 ; X32-NEXT:    adcl %edi, %ecx
730 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
731 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
732 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
733 ; X32-NEXT:    mull %edi
734 ; X32-NEXT:    addl %ecx, %eax
735 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
736 ; X32-NEXT:    adcl %ecx, %edx
737 ; X32-NEXT:    addl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
738 ; X32-NEXT:    adcl %ebp, %ebx
739 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
740 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
741 ; X32-NEXT:    adcl %ecx, %eax
742 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
743 ; X32-NEXT:    adcl $0, %edx
744 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
745 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
746 ; X32-NEXT:    movl %edi, %esi
747 ; X32-NEXT:    imull %eax, %esi
748 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
749 ; X32-NEXT:    mull %ecx
750 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
751 ; X32-NEXT:    addl %esi, %edx
752 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
753 ; X32-NEXT:    imull %ebx, %ecx
754 ; X32-NEXT:    addl %edx, %ecx
755 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
756 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
757 ; X32-NEXT:    movl %eax, %esi
758 ; X32-NEXT:    movl (%esp), %edi # 4-byte Reload
759 ; X32-NEXT:    imull %edi, %esi
760 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
761 ; X32-NEXT:    mull %ebp
762 ; X32-NEXT:    movl %eax, %ecx
763 ; X32-NEXT:    addl %esi, %edx
764 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
765 ; X32-NEXT:    movl %ebp, %eax
766 ; X32-NEXT:    imull %ebp, %esi
767 ; X32-NEXT:    addl %edx, %esi
768 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
769 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
770 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
771 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
772 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
773 ; X32-NEXT:    mull %ecx
774 ; X32-NEXT:    movl %edx, %ebp
775 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
776 ; X32-NEXT:    movl %edi, %eax
777 ; X32-NEXT:    mull %ecx
778 ; X32-NEXT:    movl %edx, %esi
779 ; X32-NEXT:    movl %eax, %edi
780 ; X32-NEXT:    addl %ebp, %edi
781 ; X32-NEXT:    adcl $0, %esi
782 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
783 ; X32-NEXT:    mull %ebx
784 ; X32-NEXT:    movl %ebx, %ebp
785 ; X32-NEXT:    movl %edx, %ecx
786 ; X32-NEXT:    addl %edi, %eax
787 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
788 ; X32-NEXT:    adcl %esi, %ecx
789 ; X32-NEXT:    setb %bl
790 ; X32-NEXT:    movl (%esp), %eax # 4-byte Reload
791 ; X32-NEXT:    mull %ebp
792 ; X32-NEXT:    addl %ecx, %eax
793 ; X32-NEXT:    movzbl %bl, %ecx
794 ; X32-NEXT:    adcl %ecx, %edx
795 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
796 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
797 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
798 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
799 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi
800 ; X32-NEXT:    movl 60(%edi), %ecx
801 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
802 ; X32-NEXT:    imull %eax, %ecx
803 ; X32-NEXT:    movl 56(%edi), %esi
804 ; X32-NEXT:    movl %edi, %ebx
805 ; X32-NEXT:    mull %esi
806 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
807 ; X32-NEXT:    addl %ecx, %edx
808 ; X32-NEXT:    imull {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
809 ; X32-NEXT:    addl %edx, %esi
810 ; X32-NEXT:    movl 48(%edi), %edi
811 ; X32-NEXT:    movl 52(%ebx), %ebp
812 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
813 ; X32-NEXT:    movl %eax, %ebx
814 ; X32-NEXT:    imull %ebp, %ebx
815 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
816 ; X32-NEXT:    mull %edi
817 ; X32-NEXT:    addl %ebx, %edx
818 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
819 ; X32-NEXT:    imull %edi, %ecx
820 ; X32-NEXT:    addl %edx, %ecx
821 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
822 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
823 ; X32-NEXT:    adcl %esi, %ecx
824 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
825 ; X32-NEXT:    movl %edi, %eax
826 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
827 ; X32-NEXT:    mull %ecx
828 ; X32-NEXT:    movl %edx, %esi
829 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
830 ; X32-NEXT:    movl %ebp, %eax
831 ; X32-NEXT:    mull %ecx
832 ; X32-NEXT:    movl %edx, %ebx
833 ; X32-NEXT:    movl %eax, %ebp
834 ; X32-NEXT:    addl %esi, %ebp
835 ; X32-NEXT:    adcl $0, %ebx
836 ; X32-NEXT:    movl %edi, %eax
837 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
838 ; X32-NEXT:    mull %esi
839 ; X32-NEXT:    movl %edx, %ecx
840 ; X32-NEXT:    movl %eax, %edi
841 ; X32-NEXT:    addl %ebp, %edi
842 ; X32-NEXT:    adcl %ebx, %ecx
843 ; X32-NEXT:    setb %bl
844 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
845 ; X32-NEXT:    mull %esi
846 ; X32-NEXT:    addl %ecx, %eax
847 ; X32-NEXT:    movzbl %bl, %ecx
848 ; X32-NEXT:    adcl %ecx, %edx
849 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
850 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
851 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
852 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
853 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
854 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
855 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
856 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
857 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
858 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
859 ; X32-NEXT:    movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
860 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
861 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
862 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
863 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
864 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi
865 ; X32-NEXT:    movl 40(%edi), %ebp
866 ; X32-NEXT:    movl %ebp, %eax
867 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
868 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
869 ; X32-NEXT:    mull %ecx
870 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
871 ; X32-NEXT:    movl %edx, %esi
872 ; X32-NEXT:    movl 44(%edi), %edi
873 ; X32-NEXT:    movl %edi, %eax
874 ; X32-NEXT:    movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
875 ; X32-NEXT:    mull %ecx
876 ; X32-NEXT:    movl %edx, %ebx
877 ; X32-NEXT:    movl %eax, %ecx
878 ; X32-NEXT:    addl %esi, %ecx
879 ; X32-NEXT:    adcl $0, %ebx
880 ; X32-NEXT:    movl %ebp, %eax
881 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
882 ; X32-NEXT:    mull %ebp
883 ; X32-NEXT:    movl %edx, %esi
884 ; X32-NEXT:    addl %ecx, %eax
885 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
886 ; X32-NEXT:    adcl %ebx, %esi
887 ; X32-NEXT:    setb %cl
888 ; X32-NEXT:    movl %edi, %eax
889 ; X32-NEXT:    mull %ebp
890 ; X32-NEXT:    addl %esi, %eax
891 ; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill
892 ; X32-NEXT:    movzbl %cl, %eax
893 ; X32-NEXT:    adcl %eax, %edx
894 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
895 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
896 ; X32-NEXT:    movl 32(%ecx), %esi
897 ; X32-NEXT:    movl %esi, %eax
898 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
899 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
900 ; X32-NEXT:    mull %edi
901 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
902 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
903 ; X32-NEXT:    movl 36(%ecx), %ebp
904 ; X32-NEXT:    movl %ebp, %eax
905 ; X32-NEXT:    mull %edi
906 ; X32-NEXT:    movl %edx, %ebx
907 ; X32-NEXT:    movl %eax, %ecx
908 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
909 ; X32-NEXT:    adcl $0, %ebx
910 ; X32-NEXT:    movl %esi, %eax
911 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
912 ; X32-NEXT:    mull %esi
913 ; X32-NEXT:    movl %edx, %edi
914 ; X32-NEXT:    addl %ecx, %eax
915 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
916 ; X32-NEXT:    adcl %ebx, %edi
917 ; X32-NEXT:    setb %cl
918 ; X32-NEXT:    movl %ebp, %eax
919 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
920 ; X32-NEXT:    mull %esi
921 ; X32-NEXT:    movl %eax, %ebx
922 ; X32-NEXT:    addl %edi, %ebx
923 ; X32-NEXT:    movzbl %cl, %eax
924 ; X32-NEXT:    adcl %eax, %edx
925 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
926 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
927 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
928 ; X32-NEXT:    adcl $0, (%esp) # 4-byte Folded Spill
929 ; X32-NEXT:    adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
930 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
931 ; X32-NEXT:    movl %ecx, %eax
932 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
933 ; X32-NEXT:    mull %esi
934 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
935 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
936 ; X32-NEXT:    movl %ebp, %eax
937 ; X32-NEXT:    mull %esi
938 ; X32-NEXT:    movl %edx, %edi
939 ; X32-NEXT:    movl %eax, %ebp
940 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
941 ; X32-NEXT:    adcl $0, %edi
942 ; X32-NEXT:    movl %ecx, %eax
943 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
944 ; X32-NEXT:    mull %ecx
945 ; X32-NEXT:    movl %edx, %esi
946 ; X32-NEXT:    addl %ebp, %eax
947 ; X32-NEXT:    movl %eax, %ebp
948 ; X32-NEXT:    adcl %edi, %esi
949 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
950 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
951 ; X32-NEXT:    mull %ecx
952 ; X32-NEXT:    movl %edx, %ecx
953 ; X32-NEXT:    movl %eax, %edi
954 ; X32-NEXT:    addl %esi, %edi
955 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
956 ; X32-NEXT:    adcl %eax, %ecx
957 ; X32-NEXT:    addl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
958 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
959 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
960 ; X32-NEXT:    adcl $0, %edi
961 ; X32-NEXT:    adcl $0, %ecx
962 ; X32-NEXT:    addl (%esp), %edi # 4-byte Folded Reload
963 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
964 ; X32-NEXT:    setb {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
965 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
966 ; X32-NEXT:    movl %esi, %eax
967 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
968 ; X32-NEXT:    mull %ebx
969 ; X32-NEXT:    movl %edx, (%esp) # 4-byte Spill
970 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
971 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
972 ; X32-NEXT:    mull %ebx
973 ; X32-NEXT:    movl %edx, %ebx
974 ; X32-NEXT:    movl %eax, %ebp
975 ; X32-NEXT:    addl (%esp), %ebp # 4-byte Folded Reload
976 ; X32-NEXT:    adcl $0, %ebx
977 ; X32-NEXT:    movl %esi, %eax
978 ; X32-NEXT:    mull {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
979 ; X32-NEXT:    movl %edx, %esi
980 ; X32-NEXT:    addl %ebp, %eax
981 ; X32-NEXT:    movl %eax, %ebp
982 ; X32-NEXT:    adcl %ebx, %esi
983 ; X32-NEXT:    setb (%esp) # 1-byte Folded Spill
984 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
985 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
986 ; X32-NEXT:    mull %ebx
987 ; X32-NEXT:    addl %esi, %eax
988 ; X32-NEXT:    movl %eax, %esi
989 ; X32-NEXT:    movzbl (%esp), %eax # 1-byte Folded Reload
990 ; X32-NEXT:    adcl %eax, %edx
991 ; X32-NEXT:    addl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
992 ; X32-NEXT:    adcl %ecx, %ebp
993 ; X32-NEXT:    movl %ebp, (%esp) # 4-byte Spill
994 ; X32-NEXT:    movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
995 ; X32-NEXT:    adcl %eax, %esi
996 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
997 ; X32-NEXT:    adcl $0, %edx
998 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
999 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
1000 ; X32-NEXT:    movl 48(%ecx), %edi
1001 ; X32-NEXT:    movl %ebx, %esi
1002 ; X32-NEXT:    imull %edi, %esi
1003 ; X32-NEXT:    movl %edi, %eax
1004 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1005 ; X32-NEXT:    mull %ebx
1006 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1007 ; X32-NEXT:    addl %esi, %edx
1008 ; X32-NEXT:    movl 52(%ecx), %eax
1009 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1010 ; X32-NEXT:    imull %eax, %ebx
1011 ; X32-NEXT:    addl %edx, %ebx
1012 ; X32-NEXT:    movl 56(%ecx), %eax
1013 ; X32-NEXT:    movl %eax, %esi
1014 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
1015 ; X32-NEXT:    imull %ebp, %esi
1016 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1017 ; X32-NEXT:    mull %ecx
1018 ; X32-NEXT:    addl %esi, %edx
1019 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
1020 ; X32-NEXT:    movl 60(%esi), %esi
1021 ; X32-NEXT:    imull %ecx, %esi
1022 ; X32-NEXT:    addl %edx, %esi
1023 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1024 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1025 ; X32-NEXT:    adcl %ebx, %esi
1026 ; X32-NEXT:    movl %ecx, %eax
1027 ; X32-NEXT:    mull %edi
1028 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1029 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1030 ; X32-NEXT:    movl %ebp, %eax
1031 ; X32-NEXT:    mull %edi
1032 ; X32-NEXT:    movl %edx, %ecx
1033 ; X32-NEXT:    movl %eax, %ebx
1034 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
1035 ; X32-NEXT:    adcl $0, %ecx
1036 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1037 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
1038 ; X32-NEXT:    mull %ebp
1039 ; X32-NEXT:    movl %edx, %edi
1040 ; X32-NEXT:    addl %ebx, %eax
1041 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1042 ; X32-NEXT:    adcl %ecx, %edi
1043 ; X32-NEXT:    setb %cl
1044 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1045 ; X32-NEXT:    mull %ebp
1046 ; X32-NEXT:    addl %edi, %eax
1047 ; X32-NEXT:    movzbl %cl, %ecx
1048 ; X32-NEXT:    adcl %ecx, %edx
1049 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1050 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1051 ; X32-NEXT:    adcl %esi, %edx
1052 ; X32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1053 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1054 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1055 ; X32-NEXT:    imull %eax, %ecx
1056 ; X32-NEXT:    movl %eax, %esi
1057 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
1058 ; X32-NEXT:    mull %edi
1059 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1060 ; X32-NEXT:    addl %ecx, %edx
1061 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
1062 ; X32-NEXT:    imull %ebp, %edi
1063 ; X32-NEXT:    addl %edx, %edi
1064 ; X32-NEXT:    movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1065 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1066 ; X32-NEXT:    movl %eax, %ecx
1067 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
1068 ; X32-NEXT:    imull %edi, %ecx
1069 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1070 ; X32-NEXT:    mull %ebx
1071 ; X32-NEXT:    addl %ecx, %edx
1072 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1073 ; X32-NEXT:    imull %ebx, %ecx
1074 ; X32-NEXT:    addl %edx, %ecx
1075 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1076 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1077 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1078 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1079 ; X32-NEXT:    movl %ebx, %eax
1080 ; X32-NEXT:    mull %esi
1081 ; X32-NEXT:    movl %edx, %ebx
1082 ; X32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1083 ; X32-NEXT:    movl %edi, %eax
1084 ; X32-NEXT:    mull %esi
1085 ; X32-NEXT:    movl %edx, %esi
1086 ; X32-NEXT:    movl %eax, %ecx
1087 ; X32-NEXT:    addl %ebx, %ecx
1088 ; X32-NEXT:    adcl $0, %esi
1089 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1090 ; X32-NEXT:    mull %ebp
1091 ; X32-NEXT:    movl %edx, %ebx
1092 ; X32-NEXT:    movl %eax, %edi
1093 ; X32-NEXT:    addl %ecx, %edi
1094 ; X32-NEXT:    adcl %esi, %ebx
1095 ; X32-NEXT:    setb %cl
1096 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
1097 ; X32-NEXT:    mull %ebp
1098 ; X32-NEXT:    addl %ebx, %eax
1099 ; X32-NEXT:    movzbl %cl, %ecx
1100 ; X32-NEXT:    adcl %ecx, %edx
1101 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1102 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1103 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1104 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1105 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
1106 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1107 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1108 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1109 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1110 ; X32-NEXT:    adcl (%esp), %edi # 4-byte Folded Reload
1111 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1112 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1113 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1114 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
1115 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
1116 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1117 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1118 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1119 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
1120 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
1121 ; X32-NEXT:    movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1122 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
1123 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
1124 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
1125 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1126 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1127 ; X32-NEXT:    addl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
1128 ; X32-NEXT:    movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1129 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
1130 ; X32-NEXT:    movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1131 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Folded Reload
1132 ; X32-NEXT:    movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
1133 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
1134 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
1135 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
1136 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
1137 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
1138 ; X32-NEXT:    adcl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
1139 ; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
1140 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1141 ; X32-NEXT:    movl %esi, (%ecx)
1142 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1143 ; X32-NEXT:    movl %esi, 4(%ecx)
1144 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1145 ; X32-NEXT:    movl %esi, 8(%ecx)
1146 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1147 ; X32-NEXT:    movl %esi, 12(%ecx)
1148 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1149 ; X32-NEXT:    movl %esi, 16(%ecx)
1150 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1151 ; X32-NEXT:    movl %esi, 20(%ecx)
1152 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1153 ; X32-NEXT:    movl %esi, 24(%ecx)
1154 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1155 ; X32-NEXT:    movl %esi, 28(%ecx)
1156 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1157 ; X32-NEXT:    movl %esi, 32(%ecx)
1158 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1159 ; X32-NEXT:    movl %esi, 36(%ecx)
1160 ; X32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
1161 ; X32-NEXT:    movl %esi, 40(%ecx)
1162 ; X32-NEXT:    movl %ebx, 44(%ecx)
1163 ; X32-NEXT:    movl %ebp, 48(%ecx)
1164 ; X32-NEXT:    movl %edi, 52(%ecx)
1165 ; X32-NEXT:    movl %eax, 56(%ecx)
1166 ; X32-NEXT:    movl %edx, 60(%ecx)
1167 ; X32-NEXT:    addl $184, %esp
1168 ; X32-NEXT:    popl %esi
1169 ; X32-NEXT:    popl %edi
1170 ; X32-NEXT:    popl %ebx
1171 ; X32-NEXT:    popl %ebp
1172 ; X32-NEXT:    retl
1174 ; X64-LABEL: test_512:
1175 ; X64:       # %bb.0:
1176 ; X64-NEXT:    pushq %rbp
1177 ; X64-NEXT:    pushq %r15
1178 ; X64-NEXT:    pushq %r14
1179 ; X64-NEXT:    pushq %r13
1180 ; X64-NEXT:    pushq %r12
1181 ; X64-NEXT:    pushq %rbx
1182 ; X64-NEXT:    movq %rdx, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1183 ; X64-NEXT:    movq %rdi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1184 ; X64-NEXT:    movq (%rdi), %r9
1185 ; X64-NEXT:    movq 8(%rdi), %r8
1186 ; X64-NEXT:    movq 24(%rdi), %r15
1187 ; X64-NEXT:    movq 16(%rdi), %rax
1188 ; X64-NEXT:    movq (%rsi), %rdi
1189 ; X64-NEXT:    movq 8(%rsi), %r14
1190 ; X64-NEXT:    movq %rsi, %r12
1191 ; X64-NEXT:    movq %rax, %rsi
1192 ; X64-NEXT:    movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1193 ; X64-NEXT:    mulq %rdi
1194 ; X64-NEXT:    movq %rdx, %rcx
1195 ; X64-NEXT:    movq %rax, %r11
1196 ; X64-NEXT:    movq %r15, %rax
1197 ; X64-NEXT:    movq %r15, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1198 ; X64-NEXT:    mulq %rdi
1199 ; X64-NEXT:    movq %rdx, %rbp
1200 ; X64-NEXT:    movq %rax, %rbx
1201 ; X64-NEXT:    addq %rcx, %rbx
1202 ; X64-NEXT:    adcq $0, %rbp
1203 ; X64-NEXT:    movq %rsi, %rax
1204 ; X64-NEXT:    mulq %r14
1205 ; X64-NEXT:    movq %rdx, %rcx
1206 ; X64-NEXT:    movq %rax, %r10
1207 ; X64-NEXT:    addq %rbx, %r10
1208 ; X64-NEXT:    adcq %rbp, %rcx
1209 ; X64-NEXT:    setb %al
1210 ; X64-NEXT:    movzbl %al, %esi
1211 ; X64-NEXT:    movq %r15, %rax
1212 ; X64-NEXT:    mulq %r14
1213 ; X64-NEXT:    movq %r14, %r15
1214 ; X64-NEXT:    movq %r14, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1215 ; X64-NEXT:    movq %rax, %r14
1216 ; X64-NEXT:    addq %rcx, %r14
1217 ; X64-NEXT:    adcq %rsi, %rdx
1218 ; X64-NEXT:    movq %rdx, %r13
1219 ; X64-NEXT:    movq %r9, %rax
1220 ; X64-NEXT:    movq %rdi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1221 ; X64-NEXT:    mulq %rdi
1222 ; X64-NEXT:    movq %rdx, %rcx
1223 ; X64-NEXT:    movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1224 ; X64-NEXT:    movq %r8, %rax
1225 ; X64-NEXT:    mulq %rdi
1226 ; X64-NEXT:    movq %rdx, %rbx
1227 ; X64-NEXT:    movq %rax, %rbp
1228 ; X64-NEXT:    addq %rcx, %rbp
1229 ; X64-NEXT:    adcq $0, %rbx
1230 ; X64-NEXT:    movq %r9, %rax
1231 ; X64-NEXT:    movq %r9, %rdi
1232 ; X64-NEXT:    mulq %r15
1233 ; X64-NEXT:    movq %rdx, %rcx
1234 ; X64-NEXT:    addq %rbp, %rax
1235 ; X64-NEXT:    movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1236 ; X64-NEXT:    adcq %rbx, %rcx
1237 ; X64-NEXT:    setb %sil
1238 ; X64-NEXT:    movq %r8, %rax
1239 ; X64-NEXT:    mulq %r15
1240 ; X64-NEXT:    movq %rdx, %r15
1241 ; X64-NEXT:    movq %rax, %rbx
1242 ; X64-NEXT:    addq %rcx, %rbx
1243 ; X64-NEXT:    movzbl %sil, %eax
1244 ; X64-NEXT:    adcq %rax, %r15
1245 ; X64-NEXT:    addq %r11, %rbx
1246 ; X64-NEXT:    adcq %r10, %r15
1247 ; X64-NEXT:    adcq $0, %r14
1248 ; X64-NEXT:    adcq $0, %r13
1249 ; X64-NEXT:    movq %r13, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1250 ; X64-NEXT:    movq %r12, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1251 ; X64-NEXT:    movq 16(%r12), %r9
1252 ; X64-NEXT:    movq %rdi, %rax
1253 ; X64-NEXT:    movq %rdi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1254 ; X64-NEXT:    mulq %r9
1255 ; X64-NEXT:    movq %rdx, %r10
1256 ; X64-NEXT:    movq %rax, %r13
1257 ; X64-NEXT:    movq %r8, %rax
1258 ; X64-NEXT:    movq %r8, %r11
1259 ; X64-NEXT:    movq %r8, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1260 ; X64-NEXT:    mulq %r9
1261 ; X64-NEXT:    movq %rdx, %rcx
1262 ; X64-NEXT:    movq %rax, %rbp
1263 ; X64-NEXT:    addq %r10, %rbp
1264 ; X64-NEXT:    adcq $0, %rcx
1265 ; X64-NEXT:    movq 24(%r12), %r8
1266 ; X64-NEXT:    movq %rdi, %rax
1267 ; X64-NEXT:    mulq %r8
1268 ; X64-NEXT:    movq %rdx, %rsi
1269 ; X64-NEXT:    addq %rbp, %rax
1270 ; X64-NEXT:    movq %rax, %rbp
1271 ; X64-NEXT:    adcq %rcx, %rsi
1272 ; X64-NEXT:    setb %cl
1273 ; X64-NEXT:    movq %r11, %rax
1274 ; X64-NEXT:    mulq %r8
1275 ; X64-NEXT:    movq %rdx, %r11
1276 ; X64-NEXT:    movq %rax, %r12
1277 ; X64-NEXT:    addq %rsi, %r12
1278 ; X64-NEXT:    movzbl %cl, %eax
1279 ; X64-NEXT:    adcq %rax, %r11
1280 ; X64-NEXT:    addq %rbx, %r13
1281 ; X64-NEXT:    movq %r13, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1282 ; X64-NEXT:    adcq %r15, %rbp
1283 ; X64-NEXT:    movq %rbp, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1284 ; X64-NEXT:    adcq $0, %r12
1285 ; X64-NEXT:    adcq $0, %r11
1286 ; X64-NEXT:    addq %r14, %r12
1287 ; X64-NEXT:    adcq {{[-0-9]+}}(%r{{[sb]}}p), %r11 # 8-byte Folded Reload
1288 ; X64-NEXT:    setb %r15b
1289 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rbx # 8-byte Reload
1290 ; X64-NEXT:    movq %rbx, %rax
1291 ; X64-NEXT:    mulq %r9
1292 ; X64-NEXT:    movq %rdx, %rcx
1293 ; X64-NEXT:    movq %rax, %rdi
1294 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %r10 # 8-byte Reload
1295 ; X64-NEXT:    movq %r10, %rax
1296 ; X64-NEXT:    mulq %r9
1297 ; X64-NEXT:    movq %rdx, %rsi
1298 ; X64-NEXT:    movq %rax, %rbp
1299 ; X64-NEXT:    addq %rcx, %rbp
1300 ; X64-NEXT:    adcq $0, %rsi
1301 ; X64-NEXT:    movq %rbx, %rax
1302 ; X64-NEXT:    mulq %r8
1303 ; X64-NEXT:    movq %rdx, %rcx
1304 ; X64-NEXT:    addq %rbp, %rax
1305 ; X64-NEXT:    movq %rax, %rbp
1306 ; X64-NEXT:    adcq %rsi, %rcx
1307 ; X64-NEXT:    setb %bl
1308 ; X64-NEXT:    movq %r10, %rax
1309 ; X64-NEXT:    mulq %r8
1310 ; X64-NEXT:    movq %rax, %r14
1311 ; X64-NEXT:    addq %rcx, %r14
1312 ; X64-NEXT:    movzbl %bl, %eax
1313 ; X64-NEXT:    adcq %rax, %rdx
1314 ; X64-NEXT:    addq %r12, %rdi
1315 ; X64-NEXT:    movq %rdi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1316 ; X64-NEXT:    adcq %r11, %rbp
1317 ; X64-NEXT:    movq %rbp, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1318 ; X64-NEXT:    movzbl %r15b, %eax
1319 ; X64-NEXT:    adcq %rax, %r14
1320 ; X64-NEXT:    adcq $0, %rdx
1321 ; X64-NEXT:    movq %rdx, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1322 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rcx # 8-byte Reload
1323 ; X64-NEXT:    movq 32(%rcx), %r12
1324 ; X64-NEXT:    imulq %r12, %r8
1325 ; X64-NEXT:    movq %r12, %rax
1326 ; X64-NEXT:    mulq %r9
1327 ; X64-NEXT:    movq %rax, %r11
1328 ; X64-NEXT:    addq %r8, %rdx
1329 ; X64-NEXT:    movq 40(%rcx), %r8
1330 ; X64-NEXT:    imulq %r8, %r9
1331 ; X64-NEXT:    addq %rdx, %r9
1332 ; X64-NEXT:    movq 48(%rcx), %rax
1333 ; X64-NEXT:    movq %rcx, %rbp
1334 ; X64-NEXT:    movq %rax, %rdi
1335 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %r15 # 8-byte Reload
1336 ; X64-NEXT:    imulq %r15, %rdi
1337 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rbx # 8-byte Reload
1338 ; X64-NEXT:    mulq %rbx
1339 ; X64-NEXT:    movq %rax, %rcx
1340 ; X64-NEXT:    addq %rdi, %rdx
1341 ; X64-NEXT:    movq 56(%rbp), %rbp
1342 ; X64-NEXT:    imulq %rbx, %rbp
1343 ; X64-NEXT:    addq %rdx, %rbp
1344 ; X64-NEXT:    addq %r11, %rcx
1345 ; X64-NEXT:    adcq %r9, %rbp
1346 ; X64-NEXT:    movq %rbx, %rax
1347 ; X64-NEXT:    movq %rbx, %r11
1348 ; X64-NEXT:    mulq %r12
1349 ; X64-NEXT:    movq %rdx, %r9
1350 ; X64-NEXT:    movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
1351 ; X64-NEXT:    movq %r15, %rax
1352 ; X64-NEXT:    mulq %r12
1353 ; X64-NEXT:    movq %rdx, %rdi
1354 ; X64-NEXT:    movq %rax, %rbx
1355 ; X64-NEXT:    addq %r9, %rbx
1356 ; X64-NEXT:    adcq $0, %rdi
1357 ; X64-NEXT:    movq %r11, %rax
1358 ; X64-NEXT:    mulq %r8
1359 ; X64-NEXT:    movq %rdx, %rsi
1360 ; X64-NEXT:    movq %rax, %r12
1361 ; X64-NEXT:    addq %rbx, %r12
1362 ; X64-NEXT:    adcq %rdi, %rsi
1363 ; X64-NEXT:    setb %bl
1364 ; X64-NEXT:    movq %r15, %rax
1365 ; X64-NEXT:    mulq %r8
1366 ; X64-NEXT:    movq %rdx, %r15
1367 ; X64-NEXT:    movq %rax, %r13
1368 ; X64-NEXT:    addq %rsi, %r13
1369 ; X64-NEXT:    movzbl %bl, %eax
1370 ; X64-NEXT:    adcq %rax, %r15
1371 ; X64-NEXT:    addq %rcx, %r13
1372 ; X64-NEXT:    adcq %rbp, %r15
1373 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rdx # 8-byte Reload
1374 ; X64-NEXT:    movq 56(%rdx), %rcx
1375 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rax # 8-byte Reload
1376 ; X64-NEXT:    imulq %rax, %rcx
1377 ; X64-NEXT:    movq 48(%rdx), %rbx
1378 ; X64-NEXT:    movq %rdx, %r8
1379 ; X64-NEXT:    movq %rax, %rbp
1380 ; X64-NEXT:    mulq %rbx
1381 ; X64-NEXT:    movq %rax, %rsi
1382 ; X64-NEXT:    addq %rcx, %rdx
1383 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %r9 # 8-byte Reload
1384 ; X64-NEXT:    imulq %r9, %rbx
1385 ; X64-NEXT:    addq %rdx, %rbx
1386 ; X64-NEXT:    movq 32(%r8), %rdi
1387 ; X64-NEXT:    movq 40(%r8), %r8
1388 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rax # 8-byte Reload
1389 ; X64-NEXT:    movq %rax, %rcx
1390 ; X64-NEXT:    imulq %r8, %rcx
1391 ; X64-NEXT:    mulq %rdi
1392 ; X64-NEXT:    movq %rax, %r11
1393 ; X64-NEXT:    addq %rcx, %rdx
1394 ; X64-NEXT:    imulq %rdi, %r10
1395 ; X64-NEXT:    addq %rdx, %r10
1396 ; X64-NEXT:    addq %rsi, %r11
1397 ; X64-NEXT:    adcq %rbx, %r10
1398 ; X64-NEXT:    movq %rdi, %rax
1399 ; X64-NEXT:    mulq %rbp
1400 ; X64-NEXT:    movq %rdx, %rbx
1401 ; X64-NEXT:    movq %rax, %rsi
1402 ; X64-NEXT:    movq %r8, %rax
1403 ; X64-NEXT:    mulq %rbp
1404 ; X64-NEXT:    movq %rdx, %rcx
1405 ; X64-NEXT:    movq %rax, %rbp
1406 ; X64-NEXT:    addq %rbx, %rbp
1407 ; X64-NEXT:    adcq $0, %rcx
1408 ; X64-NEXT:    movq %rdi, %rax
1409 ; X64-NEXT:    mulq %r9
1410 ; X64-NEXT:    movq %rdx, %rbx
1411 ; X64-NEXT:    movq %rax, %rdi
1412 ; X64-NEXT:    addq %rbp, %rdi
1413 ; X64-NEXT:    adcq %rcx, %rbx
1414 ; X64-NEXT:    setb %cl
1415 ; X64-NEXT:    movq %r8, %rax
1416 ; X64-NEXT:    mulq %r9
1417 ; X64-NEXT:    addq %rbx, %rax
1418 ; X64-NEXT:    movzbl %cl, %ecx
1419 ; X64-NEXT:    adcq %rcx, %rdx
1420 ; X64-NEXT:    addq %r11, %rax
1421 ; X64-NEXT:    adcq %r10, %rdx
1422 ; X64-NEXT:    addq {{[-0-9]+}}(%r{{[sb]}}p), %rsi # 8-byte Folded Reload
1423 ; X64-NEXT:    adcq %r12, %rdi
1424 ; X64-NEXT:    adcq %r13, %rax
1425 ; X64-NEXT:    adcq %r15, %rdx
1426 ; X64-NEXT:    addq {{[-0-9]+}}(%r{{[sb]}}p), %rsi # 8-byte Folded Reload
1427 ; X64-NEXT:    adcq {{[-0-9]+}}(%r{{[sb]}}p), %rdi # 8-byte Folded Reload
1428 ; X64-NEXT:    adcq %r14, %rax
1429 ; X64-NEXT:    adcq {{[-0-9]+}}(%r{{[sb]}}p), %rdx # 8-byte Folded Reload
1430 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rcx # 8-byte Reload
1431 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rbp # 8-byte Reload
1432 ; X64-NEXT:    movq %rbp, (%rcx)
1433 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rbp # 8-byte Reload
1434 ; X64-NEXT:    movq %rbp, 8(%rcx)
1435 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rbp # 8-byte Reload
1436 ; X64-NEXT:    movq %rbp, 16(%rcx)
1437 ; X64-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %rbp # 8-byte Reload
1438 ; X64-NEXT:    movq %rbp, 24(%rcx)
1439 ; X64-NEXT:    movq %rsi, 32(%rcx)
1440 ; X64-NEXT:    movq %rdi, 40(%rcx)
1441 ; X64-NEXT:    movq %rax, 48(%rcx)
1442 ; X64-NEXT:    movq %rdx, 56(%rcx)
1443 ; X64-NEXT:    popq %rbx
1444 ; X64-NEXT:    popq %r12
1445 ; X64-NEXT:    popq %r13
1446 ; X64-NEXT:    popq %r14
1447 ; X64-NEXT:    popq %r15
1448 ; X64-NEXT:    popq %rbp
1449 ; X64-NEXT:    retq
1450   %av = load i512, ptr %a
1451   %bv = load i512, ptr %b
1452   %r = mul i512 %av, %bv
1453   store i512 %r, ptr %out
1454   ret void