• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
4
5define void @test_512(i512* %a, i512* %b, i512* %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 $244, %esp
13; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
14; X32-NEXT:    movl 20(%ecx), %edi
15; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
16; X32-NEXT:    movl 16(%ecx), %eax
17; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
18; X32-NEXT:    movl %ecx, %ebp
19; X32-NEXT:    xorl %ebx, %ebx
20; X32-NEXT:    mull %ebx
21; X32-NEXT:    movl %edx, %ecx
22; X32-NEXT:    movl %eax, %esi
23; X32-NEXT:    movl %edi, %eax
24; X32-NEXT:    mull %ebx
25; X32-NEXT:    movl %eax, %edi
26; X32-NEXT:    addl %ecx, %edi
27; X32-NEXT:    movl %edx, %ebx
28; X32-NEXT:    adcl $0, %ebx
29; X32-NEXT:    addl %esi, %edi
30; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
31; X32-NEXT:    movl %edi, (%esp) # 4-byte Spill
32; X32-NEXT:    adcl %ecx, %ebx
33; X32-NEXT:    movl %ecx, %edi
34; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
35; X32-NEXT:    setb %cl
36; X32-NEXT:    addl %eax, %ebx
37; X32-NEXT:    movzbl %cl, %ecx
38; X32-NEXT:    adcl %edx, %ecx
39; X32-NEXT:    movl 24(%ebp), %eax
40; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
41; X32-NEXT:    xorl %edx, %edx
42; X32-NEXT:    mull %edx
43; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
44; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
45; X32-NEXT:    addl %eax, %esi
46; X32-NEXT:    adcl %edx, %edi
47; X32-NEXT:    addl %ebx, %esi
48; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
49; X32-NEXT:    adcl %ecx, %edi
50; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
51; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
52; X32-NEXT:    movl (%ecx), %eax
53; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
54; X32-NEXT:    xorl %ebx, %ebx
55; X32-NEXT:    mull %ebx
56; X32-NEXT:    movl %eax, %ebp
57; X32-NEXT:    movl %edx, %edi
58; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
59; X32-NEXT:    movl 4(%ecx), %eax
60; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
61; X32-NEXT:    movl %ecx, %esi
62; X32-NEXT:    mull %ebx
63; X32-NEXT:    movl %eax, %ebx
64; X32-NEXT:    addl %edi, %ebx
65; X32-NEXT:    movl %edx, %ecx
66; X32-NEXT:    adcl $0, %ecx
67; X32-NEXT:    addl %ebp, %ebx
68; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
69; X32-NEXT:    adcl %edi, %ecx
70; X32-NEXT:    setb %bl
71; X32-NEXT:    addl %eax, %ecx
72; X32-NEXT:    movzbl %bl, %ebx
73; X32-NEXT:    adcl %edx, %ebx
74; X32-NEXT:    movl 8(%esi), %eax
75; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
76; X32-NEXT:    xorl %edx, %edx
77; X32-NEXT:    mull %edx
78; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
79; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
80; X32-NEXT:    movl %ebp, %esi
81; X32-NEXT:    addl %eax, %esi
82; X32-NEXT:    movl %edi, %eax
83; X32-NEXT:    adcl %edx, %eax
84; X32-NEXT:    addl %ecx, %esi
85; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
86; X32-NEXT:    adcl %ebx, %eax
87; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
88; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
89; X32-NEXT:    addl %ebp, %eax
90; X32-NEXT:    movl %ebp, %esi
91; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
92; X32-NEXT:    adcl %edi, %eax
93; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
94; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
95; X32-NEXT:    movl (%ecx), %eax
96; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
97; X32-NEXT:    xorl %ebp, %ebp
98; X32-NEXT:    mull %ebp
99; X32-NEXT:    movl %edx, %ebx
100; X32-NEXT:    movl %eax, %ecx
101; X32-NEXT:    movl %eax, %edx
102; X32-NEXT:    addl %esi, %edx
103; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
104; X32-NEXT:    movl %ebx, %eax
105; X32-NEXT:    adcl %edi, %eax
106; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
107; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
108; X32-NEXT:    movl 16(%eax), %eax
109; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
110; X32-NEXT:    mull %ebp
111; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
112; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
113; X32-NEXT:    movl %ecx, %edi
114; X32-NEXT:    movl %ecx, %ebp
115; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
116; X32-NEXT:    addl %eax, %edi
117; X32-NEXT:    movl %ebx, %eax
118; X32-NEXT:    adcl %edx, %eax
119; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
120; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
121; X32-NEXT:    addl %esi, %eax
122; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
123; X32-NEXT:    movl (%esp), %eax # 4-byte Reload
124; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
125; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
126; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
127; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
128; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
129; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
130; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
131; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
132; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
133; X32-NEXT:    movl 4(%eax), %eax
134; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
135; X32-NEXT:    xorl %edi, %edi
136; X32-NEXT:    mull %edi
137; X32-NEXT:    movl %eax, %esi
138; X32-NEXT:    addl %ebx, %esi
139; X32-NEXT:    movl %edx, %ecx
140; X32-NEXT:    adcl $0, %ecx
141; X32-NEXT:    addl %ebp, %esi
142; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
143; X32-NEXT:    adcl %ebx, %ecx
144; X32-NEXT:    movl %ebx, %esi
145; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
146; X32-NEXT:    setb %bl
147; X32-NEXT:    addl %eax, %ecx
148; X32-NEXT:    movzbl %bl, %ebx
149; X32-NEXT:    adcl %edx, %ebx
150; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
151; X32-NEXT:    movl 8(%eax), %eax
152; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
153; X32-NEXT:    mull %edi
154; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
155; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
156; X32-NEXT:    movl %ebp, %edi
157; X32-NEXT:    addl %eax, %edi
158; X32-NEXT:    adcl %edx, %esi
159; X32-NEXT:    addl %ecx, %edi
160; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
161; X32-NEXT:    adcl %ebx, %esi
162; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
163; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
164; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
165; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
166; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
167; X32-NEXT:    adcl %edi, {{[0-9]+}}(%esp) # 4-byte Folded Spill
168; X32-NEXT:    adcl %esi, {{[0-9]+}}(%esp) # 4-byte Folded Spill
169; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
170; X32-NEXT:    movl 20(%esi), %eax
171; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
172; X32-NEXT:    xorl %ecx, %ecx
173; X32-NEXT:    mull %ecx
174; X32-NEXT:    movl %eax, %ebx
175; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
176; X32-NEXT:    addl %edi, %ebx
177; X32-NEXT:    movl %edx, %ecx
178; X32-NEXT:    adcl $0, %ecx
179; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
180; X32-NEXT:    addl %ebp, %ebx
181; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
182; X32-NEXT:    adcl %edi, %ecx
183; X32-NEXT:    setb %bl
184; X32-NEXT:    addl %eax, %ecx
185; X32-NEXT:    movzbl %bl, %ebx
186; X32-NEXT:    adcl %edx, %ebx
187; X32-NEXT:    movl 24(%esi), %eax
188; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
189; X32-NEXT:    xorl %edx, %edx
190; X32-NEXT:    mull %edx
191; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
192; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
193; X32-NEXT:    movl %ebp, %esi
194; X32-NEXT:    addl %eax, %esi
195; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
196; X32-NEXT:    adcl %edx, %edi
197; X32-NEXT:    addl %ecx, %esi
198; X32-NEXT:    adcl %ebx, %edi
199; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
200; X32-NEXT:    addl %ebp, %eax
201; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
202; X32-NEXT:    movl %ebp, %edx
203; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
204; X32-NEXT:    adcl %ebp, {{[0-9]+}}(%esp) # 4-byte Folded Spill
205; X32-NEXT:    adcl %esi, {{[0-9]+}}(%esp) # 4-byte Folded Spill
206; X32-NEXT:    adcl %edi, {{[0-9]+}}(%esp) # 4-byte Folded Spill
207; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
208; X32-NEXT:    movl %ecx, %eax
209; X32-NEXT:    addl %edx, %eax
210; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
211; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
212; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
213; X32-NEXT:    movl %ecx, %eax
214; X32-NEXT:    addl %edx, %eax
215; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
216; X32-NEXT:    adcl (%esp), %ebp # 4-byte Folded Reload
217; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
218; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
219; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
220; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
221; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
222; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
223; X32-NEXT:    movl %ecx, %eax
224; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
225; X32-NEXT:    mull %edi
226; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill
227; X32-NEXT:    movl %edx, %ebp
228; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
229; X32-NEXT:    movl 28(%eax), %esi
230; X32-NEXT:    movl %esi, %eax
231; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
232; X32-NEXT:    mull %edi
233; X32-NEXT:    movl %edx, %edi
234; X32-NEXT:    movl %eax, %ebx
235; X32-NEXT:    addl %ebp, %ebx
236; X32-NEXT:    adcl $0, %edi
237; X32-NEXT:    movl %ecx, %eax
238; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
239; X32-NEXT:    mull %ecx
240; X32-NEXT:    movl %edx, %ebp
241; X32-NEXT:    addl %ebx, %eax
242; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
243; X32-NEXT:    adcl %edi, %ebp
244; X32-NEXT:    setb %bl
245; X32-NEXT:    movl %esi, %eax
246; X32-NEXT:    mull %ecx
247; X32-NEXT:    addl %ebp, %eax
248; X32-NEXT:    movzbl %bl, %ecx
249; X32-NEXT:    adcl %ecx, %edx
250; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
251; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
252; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
253; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
254; X32-NEXT:    addl %eax, %ecx
255; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
256; X32-NEXT:    adcl %edx, %esi
257; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
258; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
259; X32-NEXT:    movl %ecx, %eax
260; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
261; X32-NEXT:    mull %esi
262; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
263; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
264; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
265; X32-NEXT:    movl %edi, %eax
266; X32-NEXT:    mull %esi
267; X32-NEXT:    movl %edx, %ebx
268; X32-NEXT:    movl %eax, %ebp
269; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
270; X32-NEXT:    adcl $0, %ebx
271; X32-NEXT:    movl %ecx, %eax
272; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
273; X32-NEXT:    mull %esi
274; X32-NEXT:    movl %edx, %ecx
275; X32-NEXT:    addl %ebp, %eax
276; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
277; X32-NEXT:    adcl %ebx, %ecx
278; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
279; X32-NEXT:    movl %edi, %ebp
280; X32-NEXT:    movl %edi, %eax
281; X32-NEXT:    mull %esi
282; X32-NEXT:    movl %edx, %edi
283; X32-NEXT:    movl %eax, %ebx
284; X32-NEXT:    addl %ecx, %ebx
285; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
286; X32-NEXT:    adcl %eax, %edi
287; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
288; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
289; X32-NEXT:    addl (%esp), %ebx # 4-byte Folded Reload
290; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
291; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
292; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
293; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
294; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
295; X32-NEXT:    mull %esi
296; X32-NEXT:    movl %edx, %ecx
297; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
298; X32-NEXT:    movl %ebp, %eax
299; X32-NEXT:    mull %esi
300; X32-NEXT:    movl %edx, %esi
301; X32-NEXT:    movl %eax, %ebp
302; X32-NEXT:    addl %ecx, %ebp
303; X32-NEXT:    adcl $0, %esi
304; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
305; X32-NEXT:    movl 12(%eax), %ecx
306; X32-NEXT:    movl %ecx, (%esp) # 4-byte Spill
307; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
308; X32-NEXT:    mull %ecx
309; X32-NEXT:    movl %edx, %ecx
310; X32-NEXT:    addl %ebp, %eax
311; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
312; X32-NEXT:    adcl %esi, %ecx
313; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
314; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
315; X32-NEXT:    mull (%esp) # 4-byte Folded Reload
316; X32-NEXT:    addl %ecx, %eax
317; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx # 1-byte Folded Reload
318; X32-NEXT:    adcl %ecx, %edx
319; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
320; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
321; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
322; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
323; X32-NEXT:    addl %eax, %ebp
324; X32-NEXT:    adcl %edx, %ecx
325; X32-NEXT:    addl %ebx, {{[0-9]+}}(%esp) # 4-byte Folded Spill
326; X32-NEXT:    adcl %edi, {{[0-9]+}}(%esp) # 4-byte Folded Spill
327; X32-NEXT:    adcl $0, %ebp
328; X32-NEXT:    adcl $0, %ecx
329; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
330; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
331; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
332; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
333; X32-NEXT:    movl %ebx, %eax
334; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
335; X32-NEXT:    mull %esi
336; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
337; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
338; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
339; X32-NEXT:    mull %esi
340; X32-NEXT:    movl %eax, %edi
341; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
342; X32-NEXT:    adcl $0, %edx
343; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
344; X32-NEXT:    movl %ebx, %eax
345; X32-NEXT:    movl (%esp), %esi # 4-byte Reload
346; X32-NEXT:    mull %esi
347; X32-NEXT:    movl %edx, %ebx
348; X32-NEXT:    addl %edi, %eax
349; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
350; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
351; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
352; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
353; X32-NEXT:    mull %esi
354; X32-NEXT:    addl %ebx, %eax
355; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %esi # 1-byte Folded Reload
356; X32-NEXT:    adcl %esi, %edx
357; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
358; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
359; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
360; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
361; X32-NEXT:    addl %eax, %edi
362; X32-NEXT:    adcl %edx, %ebx
363; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx # 4-byte Reload
364; X32-NEXT:    addl %ebp, %edx
365; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
366; X32-NEXT:    adcl %ecx, %esi
367; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
368; X32-NEXT:    adcl %eax, %edi
369; X32-NEXT:    adcl $0, %ebx
370; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
371; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
372; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
373; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
374; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
375; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
376; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
377; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
378; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
379; X32-NEXT:    movl %ecx, %eax
380; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
381; X32-NEXT:    mull %edi
382; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
383; X32-NEXT:    movl %edx, %esi
384; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
385; X32-NEXT:    movl 12(%eax), %eax
386; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
387; X32-NEXT:    mull %edi
388; X32-NEXT:    movl %edx, %edi
389; X32-NEXT:    movl %eax, %ebp
390; X32-NEXT:    addl %esi, %ebp
391; X32-NEXT:    adcl $0, %edi
392; X32-NEXT:    movl %ecx, %eax
393; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
394; X32-NEXT:    mull %ebx
395; X32-NEXT:    movl %edx, %esi
396; X32-NEXT:    addl %ebp, %eax
397; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
398; X32-NEXT:    adcl %edi, %esi
399; X32-NEXT:    setb %cl
400; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
401; X32-NEXT:    mull %ebx
402; X32-NEXT:    addl %esi, %eax
403; X32-NEXT:    movzbl %cl, %ecx
404; X32-NEXT:    adcl %ecx, %edx
405; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
406; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
407; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
408; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
409; X32-NEXT:    addl %eax, %ecx
410; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
411; X32-NEXT:    adcl %edx, %esi
412; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
413; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
414; X32-NEXT:    movl %esi, %eax
415; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
416; X32-NEXT:    mull %ecx
417; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
418; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
419; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
420; X32-NEXT:    movl %ebx, %eax
421; X32-NEXT:    mull %ecx
422; X32-NEXT:    movl %edx, %edi
423; X32-NEXT:    movl %eax, %ebp
424; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
425; X32-NEXT:    adcl $0, %edi
426; X32-NEXT:    movl %esi, %eax
427; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
428; X32-NEXT:    mull %esi
429; X32-NEXT:    movl %edx, %ecx
430; X32-NEXT:    addl %ebp, %eax
431; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
432; X32-NEXT:    adcl %edi, %ecx
433; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
434; X32-NEXT:    movl %ebx, %edi
435; X32-NEXT:    movl %ebx, %eax
436; X32-NEXT:    mull %esi
437; X32-NEXT:    movl %eax, %ebp
438; X32-NEXT:    addl %ecx, %ebp
439; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
440; X32-NEXT:    adcl %eax, %edx
441; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
442; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
443; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
444; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
445; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
446; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
447; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
448; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
449; X32-NEXT:    movl %esi, %eax
450; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
451; X32-NEXT:    mull %ebx
452; X32-NEXT:    movl %edx, %ecx
453; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
454; X32-NEXT:    movl %edi, %eax
455; X32-NEXT:    mull %ebx
456; X32-NEXT:    movl %edx, %edi
457; X32-NEXT:    movl %eax, %ebx
458; X32-NEXT:    addl %ecx, %ebx
459; X32-NEXT:    adcl $0, %edi
460; X32-NEXT:    movl %esi, %eax
461; X32-NEXT:    movl (%esp), %ecx # 4-byte Reload
462; X32-NEXT:    mull %ecx
463; X32-NEXT:    movl %edx, %esi
464; X32-NEXT:    addl %ebx, %eax
465; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
466; X32-NEXT:    adcl %edi, %esi
467; X32-NEXT:    setb %bl
468; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
469; X32-NEXT:    mull %ecx
470; X32-NEXT:    addl %esi, %eax
471; X32-NEXT:    movzbl %bl, %ecx
472; X32-NEXT:    adcl %ecx, %edx
473; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
474; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
475; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
476; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
477; X32-NEXT:    addl %eax, %ebx
478; X32-NEXT:    adcl %edx, %ecx
479; X32-NEXT:    addl %ebp, {{[0-9]+}}(%esp) # 4-byte Folded Spill
480; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
481; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
482; X32-NEXT:    adcl $0, %ebx
483; X32-NEXT:    adcl $0, %ecx
484; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
485; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
486; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
487; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
488; X32-NEXT:    movl %ebp, %eax
489; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
490; X32-NEXT:    mull %esi
491; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
492; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
493; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
494; X32-NEXT:    mull %esi
495; X32-NEXT:    movl %eax, %edi
496; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
497; X32-NEXT:    adcl $0, %edx
498; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
499; X32-NEXT:    movl %ebp, %eax
500; X32-NEXT:    movl (%esp), %esi # 4-byte Reload
501; X32-NEXT:    mull %esi
502; X32-NEXT:    movl %edx, %ebp
503; X32-NEXT:    addl %edi, %eax
504; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
505; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
506; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
507; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
508; X32-NEXT:    mull %esi
509; X32-NEXT:    addl %ebp, %eax
510; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %esi # 1-byte Folded Reload
511; X32-NEXT:    adcl %esi, %edx
512; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
513; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
514; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
515; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
516; X32-NEXT:    addl %eax, %ebp
517; X32-NEXT:    adcl %edx, %edi
518; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx # 4-byte Reload
519; X32-NEXT:    addl %ebx, %edx
520; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
521; X32-NEXT:    adcl %ecx, %esi
522; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
523; X32-NEXT:    adcl %eax, %ebp
524; X32-NEXT:    adcl $0, %edi
525; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
526; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
527; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
528; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
529; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
530; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
531; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
532; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
533; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
534; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
535; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
536; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
537; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
538; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
539; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
540; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
541; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
542; X32-NEXT:    movl %ebx, %eax
543; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
544; X32-NEXT:    mull %ecx
545; X32-NEXT:    movl %edx, %esi
546; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
547; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
548; X32-NEXT:    movl %ebp, %eax
549; X32-NEXT:    mull %ecx
550; X32-NEXT:    movl %edx, %edi
551; X32-NEXT:    movl %eax, %ecx
552; X32-NEXT:    addl %esi, %ecx
553; X32-NEXT:    adcl $0, %edi
554; X32-NEXT:    movl %ebx, %eax
555; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
556; X32-NEXT:    mull %ebx
557; X32-NEXT:    movl %edx, %esi
558; X32-NEXT:    addl %ecx, %eax
559; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
560; X32-NEXT:    adcl %edi, %esi
561; X32-NEXT:    setb %cl
562; X32-NEXT:    movl %ebp, %eax
563; X32-NEXT:    mull %ebx
564; X32-NEXT:    addl %esi, %eax
565; X32-NEXT:    movzbl %cl, %ecx
566; X32-NEXT:    adcl %ecx, %edx
567; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
568; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
569; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
570; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
571; X32-NEXT:    addl %eax, %ecx
572; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
573; X32-NEXT:    adcl %edx, %esi
574; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
575; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
576; X32-NEXT:    movl %ebx, %eax
577; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
578; X32-NEXT:    mull %esi
579; X32-NEXT:    movl %edx, %ecx
580; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
581; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
582; X32-NEXT:    movl %ebp, %eax
583; X32-NEXT:    mull %esi
584; X32-NEXT:    movl %edx, %esi
585; X32-NEXT:    movl %eax, %edi
586; X32-NEXT:    addl %ecx, %edi
587; X32-NEXT:    adcl $0, %esi
588; X32-NEXT:    movl %ebx, %eax
589; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
590; X32-NEXT:    mull %ebx
591; X32-NEXT:    movl %edx, %ecx
592; X32-NEXT:    addl %edi, %eax
593; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
594; X32-NEXT:    adcl %esi, %ecx
595; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
596; X32-NEXT:    movl %ebp, %eax
597; X32-NEXT:    mull %ebx
598; X32-NEXT:    movl %eax, %edi
599; X32-NEXT:    addl %ecx, %edi
600; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
601; X32-NEXT:    adcl %eax, %edx
602; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
603; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
604; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
605; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
606; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
607; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
608; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
609; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
610; X32-NEXT:    movl %ebx, %eax
611; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
612; X32-NEXT:    mull %ecx
613; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
614; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
615; X32-NEXT:    movl %ebp, %eax
616; X32-NEXT:    mull %ecx
617; X32-NEXT:    movl %edx, %esi
618; X32-NEXT:    movl %eax, %ecx
619; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
620; X32-NEXT:    adcl $0, %esi
621; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
622; X32-NEXT:    movl 28(%eax), %ebp
623; X32-NEXT:    movl %ebx, %eax
624; X32-NEXT:    mull %ebp
625; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
626; X32-NEXT:    movl %edx, %ebx
627; X32-NEXT:    addl %ecx, %eax
628; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
629; X32-NEXT:    adcl %esi, %ebx
630; X32-NEXT:    setb %cl
631; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
632; X32-NEXT:    mull %ebp
633; X32-NEXT:    addl %ebx, %eax
634; X32-NEXT:    movzbl %cl, %ecx
635; X32-NEXT:    adcl %ecx, %edx
636; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
637; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
638; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
639; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
640; X32-NEXT:    addl %eax, %ebp
641; X32-NEXT:    adcl %edx, %ecx
642; X32-NEXT:    addl %edi, {{[0-9]+}}(%esp) # 4-byte Folded Spill
643; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
644; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
645; X32-NEXT:    adcl $0, %ebp
646; X32-NEXT:    adcl $0, %ecx
647; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
648; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
649; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
650; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
651; X32-NEXT:    movl %esi, %eax
652; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
653; X32-NEXT:    mull %edi
654; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
655; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
656; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
657; X32-NEXT:    mull %edi
658; X32-NEXT:    movl %edx, %edi
659; X32-NEXT:    movl %eax, %ebx
660; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
661; X32-NEXT:    adcl $0, %edi
662; X32-NEXT:    movl %esi, %eax
663; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
664; X32-NEXT:    mull %esi
665; X32-NEXT:    addl %ebx, %eax
666; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
667; X32-NEXT:    adcl %edi, %edx
668; X32-NEXT:    movl %edx, %edi
669; X32-NEXT:    setb %bl
670; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
671; X32-NEXT:    mull %esi
672; X32-NEXT:    addl %edi, %eax
673; X32-NEXT:    movzbl %bl, %esi
674; X32-NEXT:    adcl %esi, %edx
675; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
676; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
677; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
678; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
679; X32-NEXT:    addl %eax, %edi
680; X32-NEXT:    adcl %edx, %ebx
681; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx # 4-byte Reload
682; X32-NEXT:    addl %ebp, %edx
683; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
684; X32-NEXT:    adcl %ecx, %esi
685; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
686; X32-NEXT:    adcl %eax, %edi
687; X32-NEXT:    adcl $0, %ebx
688; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
689; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
690; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
691; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
692; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
693; X32-NEXT:    addl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
694; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
695; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
696; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
697; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
698; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
699; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
700; X32-NEXT:    adcl $0, %edx
701; X32-NEXT:    adcl $0, %esi
702; X32-NEXT:    adcl $0, %edi
703; X32-NEXT:    adcl $0, %ebx
704; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
705; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
706; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
707; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
708; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
709; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
710; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
711; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
712; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
713; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
714; X32-NEXT:    movl %esi, %eax
715; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
716; X32-NEXT:    mull %edi
717; X32-NEXT:    movl %edx, %ecx
718; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
719; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
720; X32-NEXT:    movl %ebp, %eax
721; X32-NEXT:    mull %edi
722; X32-NEXT:    movl %edx, %ebx
723; X32-NEXT:    movl %eax, %edi
724; X32-NEXT:    addl %ecx, %edi
725; X32-NEXT:    adcl $0, %ebx
726; X32-NEXT:    movl %esi, %eax
727; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
728; X32-NEXT:    mull %esi
729; X32-NEXT:    movl %edx, %ecx
730; X32-NEXT:    addl %edi, %eax
731; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
732; X32-NEXT:    adcl %ebx, %ecx
733; X32-NEXT:    setb %bl
734; X32-NEXT:    movl %ebp, %eax
735; X32-NEXT:    mull %esi
736; X32-NEXT:    addl %ecx, %eax
737; X32-NEXT:    movzbl %bl, %ecx
738; X32-NEXT:    adcl %ecx, %edx
739; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
740; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
741; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
742; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
743; X32-NEXT:    addl %eax, %esi
744; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
745; X32-NEXT:    adcl %edx, %ecx
746; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
747; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
748; X32-NEXT:    movl %ecx, %eax
749; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
750; X32-NEXT:    mull %edi
751; X32-NEXT:    movl %edx, %esi
752; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
753; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
754; X32-NEXT:    movl %ebp, %eax
755; X32-NEXT:    mull %edi
756; X32-NEXT:    movl %edx, %edi
757; X32-NEXT:    movl %eax, %ebx
758; X32-NEXT:    addl %esi, %ebx
759; X32-NEXT:    adcl $0, %edi
760; X32-NEXT:    movl %ecx, %eax
761; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
762; X32-NEXT:    mull %esi
763; X32-NEXT:    movl %edx, %ecx
764; X32-NEXT:    addl %ebx, %eax
765; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
766; X32-NEXT:    adcl %edi, %ecx
767; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
768; X32-NEXT:    movl %ebp, %eax
769; X32-NEXT:    movl %ebp, %edi
770; X32-NEXT:    mull %esi
771; X32-NEXT:    movl %eax, %ebx
772; X32-NEXT:    addl %ecx, %ebx
773; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
774; X32-NEXT:    adcl %eax, %edx
775; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
776; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
777; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
778; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
779; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
780; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
781; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
782; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
783; X32-NEXT:    movl %ebp, %eax
784; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
785; X32-NEXT:    mull %ecx
786; X32-NEXT:    movl %edx, %esi
787; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
788; X32-NEXT:    movl %edi, %eax
789; X32-NEXT:    mull %ecx
790; X32-NEXT:    movl %edx, %edi
791; X32-NEXT:    movl %eax, %ecx
792; X32-NEXT:    addl %esi, %ecx
793; X32-NEXT:    adcl $0, %edi
794; X32-NEXT:    movl %ebp, %eax
795; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
796; X32-NEXT:    mull %esi
797; X32-NEXT:    movl %edx, %ebp
798; X32-NEXT:    addl %ecx, %eax
799; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
800; X32-NEXT:    adcl %edi, %ebp
801; X32-NEXT:    setb %cl
802; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
803; X32-NEXT:    mull %esi
804; X32-NEXT:    addl %ebp, %eax
805; X32-NEXT:    movzbl %cl, %ecx
806; X32-NEXT:    adcl %ecx, %edx
807; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
808; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
809; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
810; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
811; X32-NEXT:    addl %eax, %esi
812; X32-NEXT:    adcl %edx, %ecx
813; X32-NEXT:    addl %ebx, {{[0-9]+}}(%esp) # 4-byte Folded Spill
814; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
815; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
816; X32-NEXT:    adcl $0, %esi
817; X32-NEXT:    adcl $0, %ecx
818; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
819; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
820; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
821; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
822; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
823; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
824; X32-NEXT:    movl %ebp, %eax
825; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
826; X32-NEXT:    mull %esi
827; X32-NEXT:    movl %edx, %ecx
828; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
829; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
830; X32-NEXT:    mull %esi
831; X32-NEXT:    movl %edx, %esi
832; X32-NEXT:    movl %eax, %edi
833; X32-NEXT:    addl %ecx, %edi
834; X32-NEXT:    adcl $0, %esi
835; X32-NEXT:    movl %ebp, %eax
836; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
837; X32-NEXT:    mull %ebx
838; X32-NEXT:    movl %edx, %ecx
839; X32-NEXT:    movl %eax, %ebp
840; X32-NEXT:    addl %edi, %ebp
841; X32-NEXT:    adcl %esi, %ecx
842; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
843; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
844; X32-NEXT:    mull %ebx
845; X32-NEXT:    addl %ecx, %eax
846; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx # 1-byte Folded Reload
847; X32-NEXT:    adcl %ecx, %edx
848; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
849; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
850; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
851; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
852; X32-NEXT:    addl %eax, %esi
853; X32-NEXT:    adcl %edx, %ecx
854; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx # 4-byte Reload
855; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
856; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
857; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
858; X32-NEXT:    adcl %eax, %esi
859; X32-NEXT:    adcl $0, %ecx
860; X32-NEXT:    addl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
861; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
862; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
863; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
864; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
865; X32-NEXT:    addl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
866; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
867; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
868; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
869; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
870; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
871; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
872; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
873; X32-NEXT:    adcl %eax, %edx
874; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
875; X32-NEXT:    adcl $0, %ebp
876; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
877; X32-NEXT:    adcl $0, %esi
878; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
879; X32-NEXT:    adcl $0, %ecx
880; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
881; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
882; X32-NEXT:    movl 32(%ecx), %edi
883; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
884; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
885; X32-NEXT:    movl %ecx, %eax
886; X32-NEXT:    mull %edi
887; X32-NEXT:    movl %edx, %esi
888; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
889; X32-NEXT:    movl (%esp), %ebp # 4-byte Reload
890; X32-NEXT:    movl %ebp, %eax
891; X32-NEXT:    mull %edi
892; X32-NEXT:    movl %edx, %edi
893; X32-NEXT:    movl %eax, %ebx
894; X32-NEXT:    addl %esi, %ebx
895; X32-NEXT:    adcl $0, %edi
896; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
897; X32-NEXT:    movl 36(%eax), %esi
898; X32-NEXT:    movl %ecx, %eax
899; X32-NEXT:    mull %esi
900; X32-NEXT:    movl %esi, %ecx
901; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
902; X32-NEXT:    movl %edx, %esi
903; X32-NEXT:    addl %ebx, %eax
904; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
905; X32-NEXT:    adcl %edi, %esi
906; X32-NEXT:    setb %bl
907; X32-NEXT:    movl %ebp, %eax
908; X32-NEXT:    mull %ecx
909; X32-NEXT:    movl %edx, %ecx
910; X32-NEXT:    movl %eax, %ebp
911; X32-NEXT:    addl %esi, %ebp
912; X32-NEXT:    movzbl %bl, %eax
913; X32-NEXT:    adcl %eax, %ecx
914; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
915; X32-NEXT:    movl %ebx, %eax
916; X32-NEXT:    xorl %edx, %edx
917; X32-NEXT:    mull %edx
918; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
919; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
920; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
921; X32-NEXT:    addl %eax, %edi
922; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
923; X32-NEXT:    adcl %edx, %esi
924; X32-NEXT:    addl %ebp, %edi
925; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
926; X32-NEXT:    adcl %ecx, %esi
927; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
928; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
929; X32-NEXT:    movl %ecx, %eax
930; X32-NEXT:    movl %ebx, %esi
931; X32-NEXT:    mull %ebx
932; X32-NEXT:    movl %edx, %edi
933; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
934; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
935; X32-NEXT:    movl %ebx, %eax
936; X32-NEXT:    mull %esi
937; X32-NEXT:    movl %edx, %esi
938; X32-NEXT:    movl %eax, %ebp
939; X32-NEXT:    addl %edi, %ebp
940; X32-NEXT:    adcl $0, %esi
941; X32-NEXT:    movl %ecx, %eax
942; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
943; X32-NEXT:    mull %edi
944; X32-NEXT:    movl %edx, %ecx
945; X32-NEXT:    addl %ebp, %eax
946; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
947; X32-NEXT:    adcl %esi, %ecx
948; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
949; X32-NEXT:    movl %ebx, %eax
950; X32-NEXT:    movl %ebx, %esi
951; X32-NEXT:    mull %edi
952; X32-NEXT:    addl %ecx, %eax
953; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx # 1-byte Folded Reload
954; X32-NEXT:    adcl %ecx, %edx
955; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
956; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
957; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
958; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
959; X32-NEXT:    addl %eax, %edi
960; X32-NEXT:    adcl %edx, %ecx
961; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
962; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
963; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
964; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
965; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
966; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
967; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
968; X32-NEXT:    movl 40(%eax), %ebp
969; X32-NEXT:    movl %eax, %ebx
970; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
971; X32-NEXT:    movl %edi, %eax
972; X32-NEXT:    mull %ebp
973; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
974; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
975; X32-NEXT:    movl %esi, %eax
976; X32-NEXT:    mull %ebp
977; X32-NEXT:    movl %edx, %esi
978; X32-NEXT:    movl %eax, %ecx
979; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
980; X32-NEXT:    adcl $0, %esi
981; X32-NEXT:    movl 44(%ebx), %ebx
982; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
983; X32-NEXT:    movl %edi, %eax
984; X32-NEXT:    mull %ebx
985; X32-NEXT:    movl %edx, %edi
986; X32-NEXT:    addl %ecx, %eax
987; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
988; X32-NEXT:    adcl %esi, %edi
989; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
990; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
991; X32-NEXT:    mull %ebx
992; X32-NEXT:    movl %edx, %ecx
993; X32-NEXT:    movl %eax, %esi
994; X32-NEXT:    addl %edi, %esi
995; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
996; X32-NEXT:    adcl %eax, %ecx
997; X32-NEXT:    movl %ebp, %eax
998; X32-NEXT:    xorl %edx, %edx
999; X32-NEXT:    mull %edx
1000; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1001; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1002; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1003; X32-NEXT:    addl %eax, %edi
1004; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1005; X32-NEXT:    adcl %edx, %eax
1006; X32-NEXT:    addl %esi, %edi
1007; X32-NEXT:    adcl %ecx, %eax
1008; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1009; X32-NEXT:    addl %ecx, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1010; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1011; X32-NEXT:    adcl %ecx, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1012; X32-NEXT:    adcl $0, %edi
1013; X32-NEXT:    adcl $0, %eax
1014; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
1015; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
1016; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1017; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1018; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
1019; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1020; X32-NEXT:    movl %ecx, %eax
1021; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
1022; X32-NEXT:    mull %ebp
1023; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1024; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1025; X32-NEXT:    movl (%esp), %edi # 4-byte Reload
1026; X32-NEXT:    movl %edi, %eax
1027; X32-NEXT:    mull %ebp
1028; X32-NEXT:    movl %edx, %esi
1029; X32-NEXT:    movl %eax, %ebx
1030; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1031; X32-NEXT:    adcl $0, %esi
1032; X32-NEXT:    movl %ecx, %eax
1033; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1034; X32-NEXT:    mull %ebp
1035; X32-NEXT:    movl %edx, %ecx
1036; X32-NEXT:    addl %ebx, %eax
1037; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1038; X32-NEXT:    adcl %esi, %ecx
1039; X32-NEXT:    setb %bl
1040; X32-NEXT:    movl %edi, %eax
1041; X32-NEXT:    mull %ebp
1042; X32-NEXT:    addl %ecx, %eax
1043; X32-NEXT:    movzbl %bl, %ecx
1044; X32-NEXT:    adcl %ecx, %edx
1045; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1046; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1047; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1048; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1049; X32-NEXT:    addl %eax, %esi
1050; X32-NEXT:    adcl %edx, %ecx
1051; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1052; X32-NEXT:    addl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1053; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1054; X32-NEXT:    adcl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1055; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
1056; X32-NEXT:    adcl %eax, %esi
1057; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
1058; X32-NEXT:    adcl $0, %ecx
1059; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1060; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1061; X32-NEXT:    imull %eax, %ebp
1062; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1063; X32-NEXT:    mull %esi
1064; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1065; X32-NEXT:    addl %ebp, %edx
1066; X32-NEXT:    imull {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1067; X32-NEXT:    addl %edx, %esi
1068; X32-NEXT:    movl %esi, %ebp
1069; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1070; X32-NEXT:    movl %eax, %esi
1071; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
1072; X32-NEXT:    imull %ebx, %esi
1073; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1074; X32-NEXT:    mull %edi
1075; X32-NEXT:    movl %eax, %ecx
1076; X32-NEXT:    addl %esi, %edx
1077; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1078; X32-NEXT:    movl %edi, %eax
1079; X32-NEXT:    imull %edi, %esi
1080; X32-NEXT:    addl %edx, %esi
1081; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1082; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1083; X32-NEXT:    adcl %ebp, %esi
1084; X32-NEXT:    movl %esi, %edi
1085; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1086; X32-NEXT:    mull %ecx
1087; X32-NEXT:    movl %edx, %ebp
1088; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1089; X32-NEXT:    movl %ebx, %eax
1090; X32-NEXT:    mull %ecx
1091; X32-NEXT:    movl %edx, %esi
1092; X32-NEXT:    movl %eax, %ebx
1093; X32-NEXT:    addl %ebp, %ebx
1094; X32-NEXT:    adcl $0, %esi
1095; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1096; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1097; X32-NEXT:    mull %ebp
1098; X32-NEXT:    movl %edx, %ecx
1099; X32-NEXT:    addl %ebx, %eax
1100; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1101; X32-NEXT:    adcl %esi, %ecx
1102; X32-NEXT:    setb %bl
1103; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1104; X32-NEXT:    mull %ebp
1105; X32-NEXT:    addl %ecx, %eax
1106; X32-NEXT:    movzbl %bl, %ecx
1107; X32-NEXT:    adcl %ecx, %edx
1108; X32-NEXT:    addl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1109; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1110; X32-NEXT:    adcl %edi, %edx
1111; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1112; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx
1113; X32-NEXT:    movl 60(%edx), %ecx
1114; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1115; X32-NEXT:    imull %eax, %ecx
1116; X32-NEXT:    movl 56(%edx), %esi
1117; X32-NEXT:    movl %edx, %edi
1118; X32-NEXT:    mull %esi
1119; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1120; X32-NEXT:    addl %ecx, %edx
1121; X32-NEXT:    imull {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1122; X32-NEXT:    addl %edx, %esi
1123; X32-NEXT:    movl 48(%edi), %ebx
1124; X32-NEXT:    movl 52(%edi), %ebp
1125; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1126; X32-NEXT:    movl %eax, %edi
1127; X32-NEXT:    imull %ebp, %edi
1128; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
1129; X32-NEXT:    mull %ebx
1130; X32-NEXT:    addl %edi, %edx
1131; X32-NEXT:    movl (%esp), %ecx # 4-byte Reload
1132; X32-NEXT:    imull %ebx, %ecx
1133; X32-NEXT:    addl %edx, %ecx
1134; X32-NEXT:    addl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1135; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1136; X32-NEXT:    adcl %esi, %ecx
1137; X32-NEXT:    movl %ecx, (%esp) # 4-byte Spill
1138; X32-NEXT:    movl %ebx, %eax
1139; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1140; X32-NEXT:    mull %ecx
1141; X32-NEXT:    movl %edx, %esi
1142; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1143; X32-NEXT:    movl %ebp, %eax
1144; X32-NEXT:    mull %ecx
1145; X32-NEXT:    movl %edx, %ebp
1146; X32-NEXT:    movl %eax, %edi
1147; X32-NEXT:    addl %esi, %edi
1148; X32-NEXT:    adcl $0, %ebp
1149; X32-NEXT:    movl %ebx, %eax
1150; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1151; X32-NEXT:    mull %esi
1152; X32-NEXT:    movl %edx, %ecx
1153; X32-NEXT:    movl %eax, %ebx
1154; X32-NEXT:    addl %edi, %ebx
1155; X32-NEXT:    adcl %ebp, %ecx
1156; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
1157; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1158; X32-NEXT:    mull %esi
1159; X32-NEXT:    addl %ecx, %eax
1160; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx # 1-byte Folded Reload
1161; X32-NEXT:    adcl %ecx, %edx
1162; X32-NEXT:    addl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1163; X32-NEXT:    adcl (%esp), %edx # 4-byte Folded Reload
1164; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1165; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1166; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1167; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1168; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
1169; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1170; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1171; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1172; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
1173; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1174; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1175; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
1176; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1177; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
1178; X32-NEXT:    movl %esi, %ecx
1179; X32-NEXT:    movl 40(%esi), %ebx
1180; X32-NEXT:    movl %ebx, %eax
1181; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill
1182; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1183; X32-NEXT:    mull %esi
1184; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill
1185; X32-NEXT:    movl %edx, %ebp
1186; X32-NEXT:    movl 44(%ecx), %ecx
1187; X32-NEXT:    movl %ecx, %eax
1188; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1189; X32-NEXT:    mull %esi
1190; X32-NEXT:    movl %edx, %esi
1191; X32-NEXT:    movl %eax, %edi
1192; X32-NEXT:    addl %ebp, %edi
1193; X32-NEXT:    adcl $0, %esi
1194; X32-NEXT:    movl %ebx, %eax
1195; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1196; X32-NEXT:    mull %ebp
1197; X32-NEXT:    movl %edx, %ebx
1198; X32-NEXT:    addl %edi, %eax
1199; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1200; X32-NEXT:    adcl %esi, %ebx
1201; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
1202; X32-NEXT:    movl %ecx, %eax
1203; X32-NEXT:    mull %ebp
1204; X32-NEXT:    movl %edx, %esi
1205; X32-NEXT:    movl %eax, %edi
1206; X32-NEXT:    addl %ebx, %edi
1207; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
1208; X32-NEXT:    adcl %eax, %esi
1209; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1210; X32-NEXT:    xorl %ecx, %ecx
1211; X32-NEXT:    mull %ecx
1212; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1213; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1214; X32-NEXT:    addl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1215; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
1216; X32-NEXT:    addl %edi, %eax
1217; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1218; X32-NEXT:    adcl %esi, %edx
1219; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1220; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
1221; X32-NEXT:    movl 32(%esi), %edi
1222; X32-NEXT:    movl %edi, %eax
1223; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
1224; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1225; X32-NEXT:    mull %ecx
1226; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1227; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1228; X32-NEXT:    movl 36(%esi), %esi
1229; X32-NEXT:    movl %esi, %eax
1230; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
1231; X32-NEXT:    mull %ecx
1232; X32-NEXT:    movl %edx, %ebx
1233; X32-NEXT:    movl %eax, %ebp
1234; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1235; X32-NEXT:    adcl $0, %ebx
1236; X32-NEXT:    movl %edi, %eax
1237; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1238; X32-NEXT:    mull %ecx
1239; X32-NEXT:    movl %edx, %edi
1240; X32-NEXT:    addl %ebp, %eax
1241; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1242; X32-NEXT:    adcl %ebx, %edi
1243; X32-NEXT:    setb %bl
1244; X32-NEXT:    movl %esi, %eax
1245; X32-NEXT:    mull %ecx
1246; X32-NEXT:    movl %edx, %ebp
1247; X32-NEXT:    movl %eax, %esi
1248; X32-NEXT:    addl %edi, %esi
1249; X32-NEXT:    movzbl %bl, %eax
1250; X32-NEXT:    adcl %eax, %ebp
1251; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1252; X32-NEXT:    movl %edi, %eax
1253; X32-NEXT:    xorl %ecx, %ecx
1254; X32-NEXT:    mull %ecx
1255; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1256; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1257; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1258; X32-NEXT:    addl %eax, %ecx
1259; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1260; X32-NEXT:    adcl %edx, %eax
1261; X32-NEXT:    addl %esi, %ecx
1262; X32-NEXT:    adcl %ebp, %eax
1263; X32-NEXT:    addl (%esp), %ecx # 4-byte Folded Reload
1264; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1265; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1266; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1267; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1268; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1269; X32-NEXT:    movl %edi, %eax
1270; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1271; X32-NEXT:    mull %esi
1272; X32-NEXT:    movl %edx, %ecx
1273; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill
1274; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
1275; X32-NEXT:    movl %ebx, %eax
1276; X32-NEXT:    mull %esi
1277; X32-NEXT:    movl %edx, %esi
1278; X32-NEXT:    movl %eax, %ebp
1279; X32-NEXT:    addl %ecx, %ebp
1280; X32-NEXT:    adcl $0, %esi
1281; X32-NEXT:    movl %edi, %eax
1282; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1283; X32-NEXT:    mull %ecx
1284; X32-NEXT:    movl %edx, %edi
1285; X32-NEXT:    addl %ebp, %eax
1286; X32-NEXT:    movl %eax, %ebp
1287; X32-NEXT:    adcl %esi, %edi
1288; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
1289; X32-NEXT:    movl %ebx, %eax
1290; X32-NEXT:    mull %ecx
1291; X32-NEXT:    movl %ecx, %ebx
1292; X32-NEXT:    addl %edi, %eax
1293; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx # 1-byte Folded Reload
1294; X32-NEXT:    adcl %ecx, %edx
1295; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1296; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1297; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1298; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1299; X32-NEXT:    addl %eax, %esi
1300; X32-NEXT:    adcl %edx, %ecx
1301; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1302; X32-NEXT:    addl %eax, (%esp) # 4-byte Folded Spill
1303; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1304; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
1305; X32-NEXT:    adcl $0, %esi
1306; X32-NEXT:    adcl $0, %ecx
1307; X32-NEXT:    addl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1308; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill
1309; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1310; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1311; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
1312; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1313; X32-NEXT:    movl %ecx, %eax
1314; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1315; X32-NEXT:    mull %esi
1316; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1317; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1318; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1319; X32-NEXT:    movl %edi, %eax
1320; X32-NEXT:    mull %esi
1321; X32-NEXT:    movl %edx, %esi
1322; X32-NEXT:    movl %eax, %ebp
1323; X32-NEXT:    addl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1324; X32-NEXT:    adcl $0, %esi
1325; X32-NEXT:    movl %ecx, %eax
1326; X32-NEXT:    mull %ebx
1327; X32-NEXT:    movl %edx, %ecx
1328; X32-NEXT:    addl %ebp, %eax
1329; X32-NEXT:    movl %eax, %ebp
1330; X32-NEXT:    adcl %esi, %ecx
1331; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill
1332; X32-NEXT:    movl %edi, %eax
1333; X32-NEXT:    mull %ebx
1334; X32-NEXT:    addl %ecx, %eax
1335; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %ecx # 1-byte Folded Reload
1336; X32-NEXT:    adcl %ecx, %edx
1337; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1338; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
1339; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1340; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1341; X32-NEXT:    addl %eax, %edi
1342; X32-NEXT:    adcl %edx, %ecx
1343; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1344; X32-NEXT:    addl %eax, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1345; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1346; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
1347; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload
1348; X32-NEXT:    adcl %eax, %edi
1349; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
1350; X32-NEXT:    adcl $0, %ecx
1351; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1352; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
1353; X32-NEXT:    movl 48(%ecx), %ebp
1354; X32-NEXT:    imull %ebp, %ebx
1355; X32-NEXT:    movl %ebp, %eax
1356; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1357; X32-NEXT:    mull %edi
1358; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1359; X32-NEXT:    addl %ebx, %edx
1360; X32-NEXT:    movl 52(%ecx), %eax
1361; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1362; X32-NEXT:    imull %eax, %edi
1363; X32-NEXT:    addl %edx, %edi
1364; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
1365; X32-NEXT:    movl 56(%ecx), %eax
1366; X32-NEXT:    movl %ecx, %ebx
1367; X32-NEXT:    movl %eax, %edi
1368; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1369; X32-NEXT:    imull %esi, %edi
1370; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1371; X32-NEXT:    mull %ecx
1372; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1373; X32-NEXT:    addl %edi, %edx
1374; X32-NEXT:    movl 60(%ebx), %ebx
1375; X32-NEXT:    movl %ecx, %eax
1376; X32-NEXT:    imull %ecx, %ebx
1377; X32-NEXT:    addl %edx, %ebx
1378; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1379; X32-NEXT:    addl %ecx, {{[0-9]+}}(%esp) # 4-byte Folded Spill
1380; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1381; X32-NEXT:    mull %ebp
1382; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1383; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1384; X32-NEXT:    movl %esi, %eax
1385; X32-NEXT:    mull %ebp
1386; X32-NEXT:    movl %edx, %ecx
1387; X32-NEXT:    movl %eax, %edi
1388; X32-NEXT:    addl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
1389; X32-NEXT:    adcl $0, %ecx
1390; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1391; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1392; X32-NEXT:    mull %ebp
1393; X32-NEXT:    movl %edx, %esi
1394; X32-NEXT:    addl %edi, %eax
1395; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1396; X32-NEXT:    adcl %ecx, %esi
1397; X32-NEXT:    setb %cl
1398; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1399; X32-NEXT:    mull %ebp
1400; X32-NEXT:    addl %esi, %eax
1401; X32-NEXT:    movzbl %cl, %ecx
1402; X32-NEXT:    adcl %ecx, %edx
1403; X32-NEXT:    addl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1404; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1405; X32-NEXT:    adcl %ebx, %edx
1406; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
1407; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1408; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1409; X32-NEXT:    imull %ebp, %edi
1410; X32-NEXT:    movl %ebp, %eax
1411; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1412; X32-NEXT:    mull %ecx
1413; X32-NEXT:    movl %eax, %esi
1414; X32-NEXT:    addl %edi, %edx
1415; X32-NEXT:    imull {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1416; X32-NEXT:    addl %edx, %ecx
1417; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1418; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1419; X32-NEXT:    movl %eax, %ecx
1420; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
1421; X32-NEXT:    imull %ebx, %ecx
1422; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1423; X32-NEXT:    mull %edi
1424; X32-NEXT:    addl %ecx, %edx
1425; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1426; X32-NEXT:    imull %edi, %ecx
1427; X32-NEXT:    addl %edx, %ecx
1428; X32-NEXT:    addl %esi, %eax
1429; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1430; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1431; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1432; X32-NEXT:    movl %edi, %eax
1433; X32-NEXT:    mull %ebp
1434; X32-NEXT:    movl %edx, %esi
1435; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
1436; X32-NEXT:    movl %ebx, %eax
1437; X32-NEXT:    mull %ebp
1438; X32-NEXT:    movl %edx, %edi
1439; X32-NEXT:    movl %eax, %ecx
1440; X32-NEXT:    addl %esi, %ecx
1441; X32-NEXT:    adcl $0, %edi
1442; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1443; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload
1444; X32-NEXT:    mull %ebx
1445; X32-NEXT:    movl %edx, %esi
1446; X32-NEXT:    movl %eax, %ebp
1447; X32-NEXT:    addl %ecx, %ebp
1448; X32-NEXT:    adcl %edi, %esi
1449; X32-NEXT:    setb %cl
1450; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
1451; X32-NEXT:    mull %ebx
1452; X32-NEXT:    movl %edx, %ebx
1453; X32-NEXT:    addl %esi, %eax
1454; X32-NEXT:    movzbl %cl, %ecx
1455; X32-NEXT:    adcl %ecx, %ebx
1456; X32-NEXT:    addl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1457; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1458; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1459; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1460; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1461; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1462; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1463; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1464; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1465; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1466; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
1467; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1468; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1469; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload
1470; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1471; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1472; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
1473; X32-NEXT:    movl (%esp), %edx # 4-byte Reload
1474; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
1475; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload
1476; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1477; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1478; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1479; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill
1480; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebp # 4-byte Reload
1481; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1482; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1483; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1484; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload
1485; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
1486; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edi # 4-byte Folded Reload
1487; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
1488; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
1489; X32-NEXT:    movl %edx, (%esp) # 4-byte Spill
1490; X32-NEXT:    adcl {{[0-9]+}}(%esp), %esi # 4-byte Folded Reload
1491; X32-NEXT:    movl {{[0-9]+}}(%esp), %edx # 4-byte Reload
1492; X32-NEXT:    adcl {{[0-9]+}}(%esp), %edx # 4-byte Folded Reload
1493; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebp # 4-byte Folded Reload
1494; X32-NEXT:    adcl {{[0-9]+}}(%esp), %eax # 4-byte Folded Reload
1495; X32-NEXT:    adcl {{[0-9]+}}(%esp), %ebx # 4-byte Folded Reload
1496; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
1497; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1498; X32-NEXT:    movl %edi, (%ecx)
1499; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1500; X32-NEXT:    movl %edi, 4(%ecx)
1501; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1502; X32-NEXT:    movl %edi, 8(%ecx)
1503; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1504; X32-NEXT:    movl %edi, 12(%ecx)
1505; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1506; X32-NEXT:    movl %edi, 16(%ecx)
1507; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1508; X32-NEXT:    movl %edi, 20(%ecx)
1509; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1510; X32-NEXT:    movl %edi, 24(%ecx)
1511; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1512; X32-NEXT:    movl %edi, 28(%ecx)
1513; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1514; X32-NEXT:    movl %edi, 32(%ecx)
1515; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi # 4-byte Reload
1516; X32-NEXT:    movl %edi, 36(%ecx)
1517; X32-NEXT:    movl (%esp), %edi # 4-byte Reload
1518; X32-NEXT:    movl %edi, 40(%ecx)
1519; X32-NEXT:    movl %esi, 44(%ecx)
1520; X32-NEXT:    movl %edx, 48(%ecx)
1521; X32-NEXT:    movl %ebp, 52(%ecx)
1522; X32-NEXT:    movl %eax, 56(%ecx)
1523; X32-NEXT:    movl %ebx, 60(%ecx)
1524; X32-NEXT:    addl $244, %esp
1525; X32-NEXT:    popl %esi
1526; X32-NEXT:    popl %edi
1527; X32-NEXT:    popl %ebx
1528; X32-NEXT:    popl %ebp
1529; X32-NEXT:    retl
1530;
1531; X64-LABEL: test_512:
1532; X64:       # %bb.0:
1533; X64-NEXT:    pushq %rbp
1534; X64-NEXT:    pushq %r15
1535; X64-NEXT:    pushq %r14
1536; X64-NEXT:    pushq %r13
1537; X64-NEXT:    pushq %r12
1538; X64-NEXT:    pushq %rbx
1539; X64-NEXT:    pushq %rax
1540; X64-NEXT:    movq %rdx, (%rsp) # 8-byte Spill
1541; X64-NEXT:    movq 24(%rdi), %r11
1542; X64-NEXT:    movq 16(%rdi), %r15
1543; X64-NEXT:    movq %rsi, -{{[0-9]+}}(%rsp) # 8-byte Spill
1544; X64-NEXT:    movq (%rsi), %rdx
1545; X64-NEXT:    movq 8(%rsi), %rbp
1546; X64-NEXT:    movq %r15, %rax
1547; X64-NEXT:    movq %rdx, %rsi
1548; X64-NEXT:    mulq %rdx
1549; X64-NEXT:    movq %rdx, %r9
1550; X64-NEXT:    movq %rax, %r8
1551; X64-NEXT:    movq %r11, %rax
1552; X64-NEXT:    movq %r11, -{{[0-9]+}}(%rsp) # 8-byte Spill
1553; X64-NEXT:    mulq %rsi
1554; X64-NEXT:    movq %rsi, %r10
1555; X64-NEXT:    movq %rdx, %rbx
1556; X64-NEXT:    movq %rax, %rsi
1557; X64-NEXT:    addq %r9, %rsi
1558; X64-NEXT:    adcq $0, %rbx
1559; X64-NEXT:    movq %r15, %rax
1560; X64-NEXT:    movq %r15, -{{[0-9]+}}(%rsp) # 8-byte Spill
1561; X64-NEXT:    mulq %rbp
1562; X64-NEXT:    movq %rdx, %rcx
1563; X64-NEXT:    movq %rax, %r9
1564; X64-NEXT:    addq %rsi, %r9
1565; X64-NEXT:    adcq %rbx, %rcx
1566; X64-NEXT:    setb %al
1567; X64-NEXT:    movzbl %al, %ebx
1568; X64-NEXT:    movq %r11, %rax
1569; X64-NEXT:    mulq %rbp
1570; X64-NEXT:    movq %rbp, %r14
1571; X64-NEXT:    movq %rbp, -{{[0-9]+}}(%rsp) # 8-byte Spill
1572; X64-NEXT:    movq %rdx, %rsi
1573; X64-NEXT:    movq %rax, %rbp
1574; X64-NEXT:    addq %rcx, %rbp
1575; X64-NEXT:    adcq %rbx, %rsi
1576; X64-NEXT:    xorl %ecx, %ecx
1577; X64-NEXT:    movq %r10, %rbx
1578; X64-NEXT:    movq %r10, -{{[0-9]+}}(%rsp) # 8-byte Spill
1579; X64-NEXT:    movq %r10, %rax
1580; X64-NEXT:    mulq %rcx
1581; X64-NEXT:    movq %rdx, %r13
1582; X64-NEXT:    movq %rax, %r10
1583; X64-NEXT:    movq %r15, %rax
1584; X64-NEXT:    mulq %rcx
1585; X64-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp) # 8-byte Spill
1586; X64-NEXT:    movq %rax, %r15
1587; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill
1588; X64-NEXT:    addq %r10, %r15
1589; X64-NEXT:    adcq %r13, %rdx
1590; X64-NEXT:    addq %rbp, %r15
1591; X64-NEXT:    adcq %rsi, %rdx
1592; X64-NEXT:    movq %rdx, %r12
1593; X64-NEXT:    movq %rdi, -{{[0-9]+}}(%rsp) # 8-byte Spill
1594; X64-NEXT:    movq (%rdi), %rcx
1595; X64-NEXT:    movq %rcx, %rax
1596; X64-NEXT:    mulq %rbx
1597; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill
1598; X64-NEXT:    movq %rdx, %r11
1599; X64-NEXT:    movq 8(%rdi), %rdi
1600; X64-NEXT:    movq %rdi, %rax
1601; X64-NEXT:    movq %rdi, -{{[0-9]+}}(%rsp) # 8-byte Spill
1602; X64-NEXT:    mulq %rbx
1603; X64-NEXT:    movq %rdx, %rbp
1604; X64-NEXT:    movq %rax, %rsi
1605; X64-NEXT:    addq %r11, %rsi
1606; X64-NEXT:    adcq $0, %rbp
1607; X64-NEXT:    movq %rcx, %rax
1608; X64-NEXT:    mulq %r14
1609; X64-NEXT:    movq %rdx, %rbx
1610; X64-NEXT:    addq %rsi, %rax
1611; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill
1612; X64-NEXT:    adcq %rbp, %rbx
1613; X64-NEXT:    setb %r11b
1614; X64-NEXT:    movq %rdi, %rax
1615; X64-NEXT:    mulq %r14
1616; X64-NEXT:    movq %rdx, %rsi
1617; X64-NEXT:    movq %rax, %rbp
1618; X64-NEXT:    addq %rbx, %rbp
1619; X64-NEXT:    movzbl %r11b, %eax
1620; X64-NEXT:    adcq %rax, %rsi
1621; X64-NEXT:    movq %rcx, %rax
1622; X64-NEXT:    xorl %edx, %edx
1623; X64-NEXT:    mulq %rdx
1624; X64-NEXT:    movq %rdx, %r14
1625; X64-NEXT:    movq %rax, %r11
1626; X64-NEXT:    addq %rax, %r10
1627; X64-NEXT:    adcq %rdx, %r13
1628; X64-NEXT:    addq %rbp, %r10
1629; X64-NEXT:    adcq %rsi, %r13
1630; X64-NEXT:    addq %r8, %r10
1631; X64-NEXT:    adcq %r9, %r13
1632; X64-NEXT:    adcq $0, %r15
1633; X64-NEXT:    adcq $0, %r12
1634; X64-NEXT:    movq %r12, -{{[0-9]+}}(%rsp) # 8-byte Spill
1635; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rsi # 8-byte Reload
1636; X64-NEXT:    movq 16(%rsi), %r8
1637; X64-NEXT:    movq %rcx, %rax
1638; X64-NEXT:    movq %rcx, %r9
1639; X64-NEXT:    movq %rcx, -{{[0-9]+}}(%rsp) # 8-byte Spill
1640; X64-NEXT:    mulq %r8
1641; X64-NEXT:    movq %rdx, %rdi
1642; X64-NEXT:    movq %rax, %r12
1643; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload
1644; X64-NEXT:    movq %rcx, %rax
1645; X64-NEXT:    mulq %r8
1646; X64-NEXT:    movq %rdx, %rbp
1647; X64-NEXT:    movq %rax, %rbx
1648; X64-NEXT:    addq %rdi, %rbx
1649; X64-NEXT:    adcq $0, %rbp
1650; X64-NEXT:    movq 24(%rsi), %rdi
1651; X64-NEXT:    movq %r9, %rax
1652; X64-NEXT:    mulq %rdi
1653; X64-NEXT:    movq %rdx, %rsi
1654; X64-NEXT:    addq %rbx, %rax
1655; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill
1656; X64-NEXT:    adcq %rbp, %rsi
1657; X64-NEXT:    setb %bpl
1658; X64-NEXT:    movq %rcx, %rax
1659; X64-NEXT:    mulq %rdi
1660; X64-NEXT:    movq %rdx, %rbx
1661; X64-NEXT:    movq %rax, %r9
1662; X64-NEXT:    addq %rsi, %r9
1663; X64-NEXT:    movzbl %bpl, %eax
1664; X64-NEXT:    adcq %rax, %rbx
1665; X64-NEXT:    movq %r8, %rax
1666; X64-NEXT:    xorl %ecx, %ecx
1667; X64-NEXT:    mulq %rcx
1668; X64-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp) # 8-byte Spill
1669; X64-NEXT:    movq %rax, %rbp
1670; X64-NEXT:    addq %rax, %r11
1671; X64-NEXT:    adcq %rdx, %r14
1672; X64-NEXT:    addq %r9, %r11
1673; X64-NEXT:    adcq %rbx, %r14
1674; X64-NEXT:    addq %r10, %r12
1675; X64-NEXT:    movq %r12, -{{[0-9]+}}(%rsp) # 8-byte Spill
1676; X64-NEXT:    adcq %r13, -{{[0-9]+}}(%rsp) # 8-byte Folded Spill
1677; X64-NEXT:    adcq $0, %r11
1678; X64-NEXT:    adcq $0, %r14
1679; X64-NEXT:    addq %r15, %r11
1680; X64-NEXT:    adcq -{{[0-9]+}}(%rsp), %r14 # 8-byte Folded Reload
1681; X64-NEXT:    setb %r9b
1682; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload
1683; X64-NEXT:    movq %rcx, %rax
1684; X64-NEXT:    mulq %r8
1685; X64-NEXT:    movq %rdx, %r15
1686; X64-NEXT:    movq %rax, %r12
1687; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r10 # 8-byte Reload
1688; X64-NEXT:    movq %r10, %rax
1689; X64-NEXT:    mulq %r8
1690; X64-NEXT:    movq %rdx, %rsi
1691; X64-NEXT:    movq %rax, %rbx
1692; X64-NEXT:    addq %r15, %rbx
1693; X64-NEXT:    adcq $0, %rsi
1694; X64-NEXT:    movq %rcx, %rax
1695; X64-NEXT:    mulq %rdi
1696; X64-NEXT:    movq %rdx, %rcx
1697; X64-NEXT:    addq %rbx, %rax
1698; X64-NEXT:    movq %rax, %rbx
1699; X64-NEXT:    adcq %rsi, %rcx
1700; X64-NEXT:    setb %sil
1701; X64-NEXT:    movq %r10, %rax
1702; X64-NEXT:    mulq %rdi
1703; X64-NEXT:    addq %rcx, %rax
1704; X64-NEXT:    movzbl %sil, %ecx
1705; X64-NEXT:    adcq %rcx, %rdx
1706; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rsi # 8-byte Reload
1707; X64-NEXT:    addq %rbp, %rsi
1708; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload
1709; X64-NEXT:    adcq -{{[0-9]+}}(%rsp), %rcx # 8-byte Folded Reload
1710; X64-NEXT:    addq %rax, %rsi
1711; X64-NEXT:    adcq %rdx, %rcx
1712; X64-NEXT:    addq %r11, %r12
1713; X64-NEXT:    movq %r12, -{{[0-9]+}}(%rsp) # 8-byte Spill
1714; X64-NEXT:    adcq %r14, %rbx
1715; X64-NEXT:    movq %rbx, -{{[0-9]+}}(%rsp) # 8-byte Spill
1716; X64-NEXT:    movzbl %r9b, %eax
1717; X64-NEXT:    adcq %rax, %rsi
1718; X64-NEXT:    movq %rsi, -{{[0-9]+}}(%rsp) # 8-byte Spill
1719; X64-NEXT:    adcq $0, %rcx
1720; X64-NEXT:    movq %rcx, -{{[0-9]+}}(%rsp) # 8-byte Spill
1721; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload
1722; X64-NEXT:    movq 32(%rcx), %rsi
1723; X64-NEXT:    imulq %rsi, %rdi
1724; X64-NEXT:    movq %rsi, %rax
1725; X64-NEXT:    mulq %r8
1726; X64-NEXT:    movq %rax, %r10
1727; X64-NEXT:    addq %rdi, %rdx
1728; X64-NEXT:    movq 40(%rcx), %r9
1729; X64-NEXT:    imulq %r9, %r8
1730; X64-NEXT:    addq %rdx, %r8
1731; X64-NEXT:    movq 48(%rcx), %rax
1732; X64-NEXT:    movq %rcx, %rbx
1733; X64-NEXT:    movq %rax, %rdi
1734; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload
1735; X64-NEXT:    imulq %rcx, %rdi
1736; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rbp # 8-byte Reload
1737; X64-NEXT:    mulq %rbp
1738; X64-NEXT:    movq %rax, %r14
1739; X64-NEXT:    addq %rdi, %rdx
1740; X64-NEXT:    movq 56(%rbx), %rbx
1741; X64-NEXT:    imulq %rbp, %rbx
1742; X64-NEXT:    addq %rdx, %rbx
1743; X64-NEXT:    addq %r10, %r14
1744; X64-NEXT:    adcq %r8, %rbx
1745; X64-NEXT:    movq %rbp, %rax
1746; X64-NEXT:    movq %rbp, %r10
1747; X64-NEXT:    mulq %rsi
1748; X64-NEXT:    movq %rdx, %rdi
1749; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill
1750; X64-NEXT:    movq %rcx, %rax
1751; X64-NEXT:    movq %rcx, %r8
1752; X64-NEXT:    mulq %rsi
1753; X64-NEXT:    movq %rdx, %rsi
1754; X64-NEXT:    movq %rax, %rbp
1755; X64-NEXT:    addq %rdi, %rbp
1756; X64-NEXT:    adcq $0, %rsi
1757; X64-NEXT:    movq %r10, %rax
1758; X64-NEXT:    mulq %r9
1759; X64-NEXT:    movq %rdx, %rdi
1760; X64-NEXT:    movq %rax, %r13
1761; X64-NEXT:    addq %rbp, %r13
1762; X64-NEXT:    adcq %rsi, %rdi
1763; X64-NEXT:    setb %cl
1764; X64-NEXT:    movq %r8, %rax
1765; X64-NEXT:    mulq %r9
1766; X64-NEXT:    movq %rdx, %r11
1767; X64-NEXT:    movq %rax, %r9
1768; X64-NEXT:    addq %rdi, %r9
1769; X64-NEXT:    movzbl %cl, %eax
1770; X64-NEXT:    adcq %rax, %r11
1771; X64-NEXT:    addq %r14, %r9
1772; X64-NEXT:    adcq %rbx, %r11
1773; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rdx # 8-byte Reload
1774; X64-NEXT:    movq 56(%rdx), %rcx
1775; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r10 # 8-byte Reload
1776; X64-NEXT:    imulq %r10, %rcx
1777; X64-NEXT:    movq 48(%rdx), %rbx
1778; X64-NEXT:    movq %rdx, %rbp
1779; X64-NEXT:    movq %r10, %rax
1780; X64-NEXT:    mulq %rbx
1781; X64-NEXT:    movq %rax, %rsi
1782; X64-NEXT:    addq %rcx, %rdx
1783; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r15 # 8-byte Reload
1784; X64-NEXT:    imulq %r15, %rbx
1785; X64-NEXT:    addq %rdx, %rbx
1786; X64-NEXT:    movq 32(%rbp), %rdi
1787; X64-NEXT:    movq 40(%rbp), %r8
1788; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rax # 8-byte Reload
1789; X64-NEXT:    movq %rax, %rcx
1790; X64-NEXT:    imulq %r8, %rcx
1791; X64-NEXT:    mulq %rdi
1792; X64-NEXT:    movq %rax, %r14
1793; X64-NEXT:    addq %rcx, %rdx
1794; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rax # 8-byte Reload
1795; X64-NEXT:    imulq %rdi, %rax
1796; X64-NEXT:    addq %rdx, %rax
1797; X64-NEXT:    addq %rsi, %r14
1798; X64-NEXT:    adcq %rbx, %rax
1799; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill
1800; X64-NEXT:    movq %rdi, %rax
1801; X64-NEXT:    mulq %r10
1802; X64-NEXT:    movq %rdx, %r12
1803; X64-NEXT:    movq %rax, %rsi
1804; X64-NEXT:    movq %r8, %rax
1805; X64-NEXT:    mulq %r10
1806; X64-NEXT:    movq %rdx, %rcx
1807; X64-NEXT:    movq %rax, %rbx
1808; X64-NEXT:    addq %r12, %rbx
1809; X64-NEXT:    adcq $0, %rcx
1810; X64-NEXT:    movq %rdi, %rax
1811; X64-NEXT:    mulq %r15
1812; X64-NEXT:    movq %rdx, %rbp
1813; X64-NEXT:    movq %rax, %rdi
1814; X64-NEXT:    addq %rbx, %rdi
1815; X64-NEXT:    adcq %rcx, %rbp
1816; X64-NEXT:    setb %cl
1817; X64-NEXT:    movq %r8, %rax
1818; X64-NEXT:    mulq %r15
1819; X64-NEXT:    addq %rbp, %rax
1820; X64-NEXT:    movzbl %cl, %ecx
1821; X64-NEXT:    adcq %rcx, %rdx
1822; X64-NEXT:    addq %r14, %rax
1823; X64-NEXT:    adcq -{{[0-9]+}}(%rsp), %rdx # 8-byte Folded Reload
1824; X64-NEXT:    addq -{{[0-9]+}}(%rsp), %rsi # 8-byte Folded Reload
1825; X64-NEXT:    adcq %r13, %rdi
1826; X64-NEXT:    adcq %r9, %rax
1827; X64-NEXT:    adcq %r11, %rdx
1828; X64-NEXT:    addq -{{[0-9]+}}(%rsp), %rsi # 8-byte Folded Reload
1829; X64-NEXT:    adcq -{{[0-9]+}}(%rsp), %rdi # 8-byte Folded Reload
1830; X64-NEXT:    adcq -{{[0-9]+}}(%rsp), %rax # 8-byte Folded Reload
1831; X64-NEXT:    adcq -{{[0-9]+}}(%rsp), %rdx # 8-byte Folded Reload
1832; X64-NEXT:    movq (%rsp), %rcx # 8-byte Reload
1833; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rbp # 8-byte Reload
1834; X64-NEXT:    movq %rbp, (%rcx)
1835; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rbp # 8-byte Reload
1836; X64-NEXT:    movq %rbp, 8(%rcx)
1837; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rbp # 8-byte Reload
1838; X64-NEXT:    movq %rbp, 16(%rcx)
1839; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rbp # 8-byte Reload
1840; X64-NEXT:    movq %rbp, 24(%rcx)
1841; X64-NEXT:    movq %rsi, 32(%rcx)
1842; X64-NEXT:    movq %rdi, 40(%rcx)
1843; X64-NEXT:    movq %rax, 48(%rcx)
1844; X64-NEXT:    movq %rdx, 56(%rcx)
1845; X64-NEXT:    addq $8, %rsp
1846; X64-NEXT:    popq %rbx
1847; X64-NEXT:    popq %r12
1848; X64-NEXT:    popq %r13
1849; X64-NEXT:    popq %r14
1850; X64-NEXT:    popq %r15
1851; X64-NEXT:    popq %rbp
1852; X64-NEXT:    retq
1853  %av = load i512, i512* %a
1854  %bv = load i512, i512* %b
1855  %r = mul i512 %av, %bv
1856  store i512 %r, i512* %out
1857  ret void
1858}
1859