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