Home | History | Annotate | Download | only in X86
      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 
      5 define 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