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