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