brintos

brintos / llvm-project-archived public Read only

0
0
Text · 37.4 KiB · 1f9e7a9 Raw
1192 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown | FileCheck %s --check-prefix=X863 4; Incremental updates of the instruction depths should be enough for this test5; case.6; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=haswell -machine-combiner-inc-threshold=0| FileCheck %s --check-prefix=X64-HSW7 8; Function Attrs: norecurse nounwind readnone uwtable9define i32 @mult(i32, i32) local_unnamed_addr #0 {10; X86-LABEL: mult:11; X86:       # %bb.0:12; X86-NEXT:    pushl %esi13; X86-NEXT:    .cfi_def_cfa_offset 814; X86-NEXT:    .cfi_offset %esi, -815; X86-NEXT:    movl {{[0-9]+}}(%esp), %edx16; X86-NEXT:    cmpl $2, %edx17; X86-NEXT:    movl $1, %eax18; X86-NEXT:    movl $1, %esi19; X86-NEXT:    jge .LBB0_220; X86-NEXT:  # %bb.1:21; X86-NEXT:    movl %edx, %esi22; X86-NEXT:  .LBB0_2:23; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx24; X86-NEXT:    testl %edx, %edx25; X86-NEXT:    je .LBB0_426; X86-NEXT:  # %bb.3:27; X86-NEXT:    movl %esi, %eax28; X86-NEXT:  .LBB0_4:29; X86-NEXT:    decl %ecx30; X86-NEXT:    cmpl $31, %ecx31; X86-NEXT:    ja .LBB0_3532; X86-NEXT:  # %bb.5:33; X86-NEXT:    jmpl *.LJTI0_0(,%ecx,4)34; X86-NEXT:  .LBB0_6:35; X86-NEXT:    addl %eax, %eax36; X86-NEXT:    popl %esi37; X86-NEXT:    .cfi_def_cfa_offset 438; X86-NEXT:    retl39; X86-NEXT:  .LBB0_7:40; X86-NEXT:    .cfi_def_cfa_offset 841; X86-NEXT:    leal (%eax,%eax,8), %ecx42; X86-NEXT:    leal (%ecx,%ecx,2), %ecx43; X86-NEXT:    jmp .LBB0_944; X86-NEXT:  .LBB0_8:45; X86-NEXT:    movl %eax, %ecx46; X86-NEXT:    shll $4, %ecx47; X86-NEXT:    jmp .LBB0_948; X86-NEXT:  .LBB0_10:49; X86-NEXT:    leal (%eax,%eax,4), %eax50; X86-NEXT:    jmp .LBB0_1851; X86-NEXT:  .LBB0_11:52; X86-NEXT:    shll $2, %eax53; X86-NEXT:    jmp .LBB0_1854; X86-NEXT:  .LBB0_13:55; X86-NEXT:    leal (%eax,%eax,2), %ecx56; X86-NEXT:    jmp .LBB0_1457; X86-NEXT:  .LBB0_15:58; X86-NEXT:    addl %eax, %eax59; X86-NEXT:    jmp .LBB0_1260; X86-NEXT:  .LBB0_16:61; X86-NEXT:    leal (%eax,%eax,4), %ecx62; X86-NEXT:    leal (%ecx,%ecx,4), %ecx63; X86-NEXT:    jmp .LBB0_964; X86-NEXT:  .LBB0_17:65; X86-NEXT:    leal (%eax,%eax,4), %eax66; X86-NEXT:    jmp .LBB0_1267; X86-NEXT:  .LBB0_19:68; X86-NEXT:    shll $4, %eax69; X86-NEXT:    popl %esi70; X86-NEXT:    .cfi_def_cfa_offset 471; X86-NEXT:    retl72; X86-NEXT:  .LBB0_20:73; X86-NEXT:    .cfi_def_cfa_offset 874; X86-NEXT:    shll $2, %eax75; X86-NEXT:    popl %esi76; X86-NEXT:    .cfi_def_cfa_offset 477; X86-NEXT:    retl78; X86-NEXT:  .LBB0_21:79; X86-NEXT:    .cfi_def_cfa_offset 880; X86-NEXT:    shll $3, %eax81; X86-NEXT:    popl %esi82; X86-NEXT:    .cfi_def_cfa_offset 483; X86-NEXT:    retl84; X86-NEXT:  .LBB0_22:85; X86-NEXT:    .cfi_def_cfa_offset 886; X86-NEXT:    shll $5, %eax87; X86-NEXT:    popl %esi88; X86-NEXT:    .cfi_def_cfa_offset 489; X86-NEXT:    retl90; X86-NEXT:  .LBB0_23:91; X86-NEXT:    .cfi_def_cfa_offset 892; X86-NEXT:    addl %eax, %eax93; X86-NEXT:  .LBB0_33:94; X86-NEXT:    leal (%eax,%eax,8), %eax95; X86-NEXT:    popl %esi96; X86-NEXT:    .cfi_def_cfa_offset 497; X86-NEXT:    retl98; X86-NEXT:  .LBB0_24:99; X86-NEXT:    .cfi_def_cfa_offset 8100; X86-NEXT:    leal (%eax,%eax,4), %ecx101; X86-NEXT:  .LBB0_14:102; X86-NEXT:    leal (%eax,%ecx,4), %eax103; X86-NEXT:    popl %esi104; X86-NEXT:    .cfi_def_cfa_offset 4105; X86-NEXT:    retl106; X86-NEXT:  .LBB0_25:107; X86-NEXT:    .cfi_def_cfa_offset 8108; X86-NEXT:    addl %eax, %eax109; X86-NEXT:    jmp .LBB0_18110; X86-NEXT:  .LBB0_26:111; X86-NEXT:    leal (%eax,%eax,4), %ecx112; X86-NEXT:    leal (%eax,%ecx,4), %ecx113; X86-NEXT:    jmp .LBB0_9114; X86-NEXT:  .LBB0_27:115; X86-NEXT:    leal (%eax,%eax), %ecx116; X86-NEXT:    shll $4, %eax117; X86-NEXT:    jmp .LBB0_28118; X86-NEXT:  .LBB0_29:119; X86-NEXT:    leal (,%eax,8), %ecx120; X86-NEXT:    jmp .LBB0_38121; X86-NEXT:  .LBB0_30:122; X86-NEXT:    leal (%eax,%eax,8), %ecx123; X86-NEXT:    jmp .LBB0_32124; X86-NEXT:  .LBB0_31:125; X86-NEXT:    leal (%eax,%eax,4), %ecx126; X86-NEXT:  .LBB0_32:127; X86-NEXT:    leal (%eax,%ecx,2), %eax128; X86-NEXT:    popl %esi129; X86-NEXT:    .cfi_def_cfa_offset 4130; X86-NEXT:    retl131; X86-NEXT:  .LBB0_34:132; X86-NEXT:    .cfi_def_cfa_offset 8133; X86-NEXT:    movl %eax, %ecx134; X86-NEXT:    shll $5, %ecx135; X86-NEXT:    jmp .LBB0_38136; X86-NEXT:  .LBB0_35:137; X86-NEXT:    xorl %eax, %eax138; X86-NEXT:  .LBB0_36:139; X86-NEXT:    popl %esi140; X86-NEXT:    .cfi_def_cfa_offset 4141; X86-NEXT:    retl142; X86-NEXT:  .LBB0_37:143; X86-NEXT:    .cfi_def_cfa_offset 8144; X86-NEXT:    leal (%eax,%eax,2), %ecx145; X86-NEXT:    shll $3, %ecx146; X86-NEXT:  .LBB0_38:147; X86-NEXT:    subl %eax, %ecx148; X86-NEXT:    movl %ecx, %eax149; X86-NEXT:    popl %esi150; X86-NEXT:    .cfi_def_cfa_offset 4151; X86-NEXT:    retl152; X86-NEXT:  .LBB0_39:153; X86-NEXT:    .cfi_def_cfa_offset 8154; X86-NEXT:    shll $2, %eax155; X86-NEXT:  .LBB0_12:156; X86-NEXT:    leal (%eax,%eax,4), %eax157; X86-NEXT:    popl %esi158; X86-NEXT:    .cfi_def_cfa_offset 4159; X86-NEXT:    retl160; X86-NEXT:  .LBB0_40:161; X86-NEXT:    .cfi_def_cfa_offset 8162; X86-NEXT:    shll $3, %eax163; X86-NEXT:    jmp .LBB0_18164; X86-NEXT:  .LBB0_41:165; X86-NEXT:    leal (%eax,%eax,8), %ecx166; X86-NEXT:    leal (%ecx,%ecx,2), %ecx167; X86-NEXT:    addl %eax, %eax168; X86-NEXT:  .LBB0_9:169; X86-NEXT:    addl %ecx, %eax170; X86-NEXT:    popl %esi171; X86-NEXT:    .cfi_def_cfa_offset 4172; X86-NEXT:    retl173; X86-NEXT:  .LBB0_42:174; X86-NEXT:    .cfi_def_cfa_offset 8175; X86-NEXT:    leal (%eax,%eax), %ecx176; X86-NEXT:    shll $5, %eax177; X86-NEXT:  .LBB0_28:178; X86-NEXT:    subl %ecx, %eax179; X86-NEXT:    popl %esi180; X86-NEXT:    .cfi_def_cfa_offset 4181; X86-NEXT:    retl182; X86-NEXT:  .LBB0_43:183; X86-NEXT:    .cfi_def_cfa_offset 8184; X86-NEXT:    leal (%eax,%eax,8), %eax185; X86-NEXT:  .LBB0_18:186; X86-NEXT:    leal (%eax,%eax,2), %eax187; X86-NEXT:    popl %esi188; X86-NEXT:    .cfi_def_cfa_offset 4189; X86-NEXT:    retl190;191; X64-HSW-LABEL: mult:192; X64-HSW:       # %bb.0:193; X64-HSW-NEXT:    # kill: def $edi killed $edi def $rdi194; X64-HSW-NEXT:    cmpl $2, %esi195; X64-HSW-NEXT:    movl $1, %ecx196; X64-HSW-NEXT:    movl %esi, %eax197; X64-HSW-NEXT:    cmovgel %ecx, %eax198; X64-HSW-NEXT:    testl %esi, %esi199; X64-HSW-NEXT:    cmovel %ecx, %eax200; X64-HSW-NEXT:    decl %edi201; X64-HSW-NEXT:    cmpl $31, %edi202; X64-HSW-NEXT:    ja .LBB0_31203; X64-HSW-NEXT:  # %bb.1:204; X64-HSW-NEXT:    jmpq *.LJTI0_0(,%rdi,8)205; X64-HSW-NEXT:  .LBB0_2:206; X64-HSW-NEXT:    addl %eax, %eax207; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax208; X64-HSW-NEXT:    retq209; X64-HSW-NEXT:  .LBB0_3:210; X64-HSW-NEXT:    leal (%rax,%rax,8), %ecx211; X64-HSW-NEXT:    leal (%rcx,%rcx,2), %ecx212; X64-HSW-NEXT:    jmp .LBB0_22213; X64-HSW-NEXT:  .LBB0_4:214; X64-HSW-NEXT:    movl %eax, %ecx215; X64-HSW-NEXT:    shll $4, %ecx216; X64-HSW-NEXT:    jmp .LBB0_22217; X64-HSW-NEXT:  .LBB0_5:218; X64-HSW-NEXT:    leal (%rax,%rax,4), %eax219; X64-HSW-NEXT:  .LBB0_13:220; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax221; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax222; X64-HSW-NEXT:    retq223; X64-HSW-NEXT:  .LBB0_6:224; X64-HSW-NEXT:    shll $2, %eax225; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax226; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax227; X64-HSW-NEXT:    retq228; X64-HSW-NEXT:  .LBB0_8:229; X64-HSW-NEXT:    leal (%rax,%rax,2), %ecx230; X64-HSW-NEXT:    leal (%rax,%rcx,4), %eax231; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax232; X64-HSW-NEXT:    retq233; X64-HSW-NEXT:  .LBB0_10:234; X64-HSW-NEXT:    addl %eax, %eax235; X64-HSW-NEXT:  .LBB0_7:236; X64-HSW-NEXT:    leal (%rax,%rax,4), %eax237; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax238; X64-HSW-NEXT:    retq239; X64-HSW-NEXT:  .LBB0_11:240; X64-HSW-NEXT:    leal (%rax,%rax,4), %ecx241; X64-HSW-NEXT:    leal (%rcx,%rcx,4), %ecx242; X64-HSW-NEXT:    jmp .LBB0_22243; X64-HSW-NEXT:  .LBB0_12:244; X64-HSW-NEXT:    leal (%rax,%rax,4), %eax245; X64-HSW-NEXT:    leal (%rax,%rax,4), %eax246; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax247; X64-HSW-NEXT:    retq248; X64-HSW-NEXT:  .LBB0_14:249; X64-HSW-NEXT:    shll $4, %eax250; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax251; X64-HSW-NEXT:    retq252; X64-HSW-NEXT:  .LBB0_15:253; X64-HSW-NEXT:    shll $2, %eax254; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax255; X64-HSW-NEXT:    retq256; X64-HSW-NEXT:  .LBB0_16:257; X64-HSW-NEXT:    shll $3, %eax258; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax259; X64-HSW-NEXT:    retq260; X64-HSW-NEXT:  .LBB0_17:261; X64-HSW-NEXT:    shll $5, %eax262; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax263; X64-HSW-NEXT:    retq264; X64-HSW-NEXT:  .LBB0_18:265; X64-HSW-NEXT:    addl %eax, %eax266; X64-HSW-NEXT:  .LBB0_29:267; X64-HSW-NEXT:    leal (%rax,%rax,8), %eax268; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax269; X64-HSW-NEXT:    retq270; X64-HSW-NEXT:  .LBB0_19:271; X64-HSW-NEXT:    leal (%rax,%rax,4), %ecx272; X64-HSW-NEXT:    leal (%rax,%rcx,4), %eax273; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax274; X64-HSW-NEXT:    retq275; X64-HSW-NEXT:  .LBB0_20:276; X64-HSW-NEXT:    addl %eax, %eax277; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax278; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax279; X64-HSW-NEXT:    retq280; X64-HSW-NEXT:  .LBB0_21:281; X64-HSW-NEXT:    leal (%rax,%rax,4), %ecx282; X64-HSW-NEXT:    leal (%rax,%rcx,4), %ecx283; X64-HSW-NEXT:  .LBB0_22:284; X64-HSW-NEXT:    addl %eax, %ecx285; X64-HSW-NEXT:    movl %ecx, %eax286; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax287; X64-HSW-NEXT:    retq288; X64-HSW-NEXT:  .LBB0_23:289; X64-HSW-NEXT:    leal (%rax,%rax), %ecx290; X64-HSW-NEXT:    shll $4, %eax291; X64-HSW-NEXT:    subl %ecx, %eax292; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax293; X64-HSW-NEXT:    retq294; X64-HSW-NEXT:  .LBB0_25:295; X64-HSW-NEXT:    leal (,%rax,8), %ecx296; X64-HSW-NEXT:    jmp .LBB0_34297; X64-HSW-NEXT:  .LBB0_26:298; X64-HSW-NEXT:    leal (%rax,%rax,8), %ecx299; X64-HSW-NEXT:    leal (%rax,%rcx,2), %eax300; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax301; X64-HSW-NEXT:    retq302; X64-HSW-NEXT:  .LBB0_27:303; X64-HSW-NEXT:    leal (%rax,%rax,4), %ecx304; X64-HSW-NEXT:    leal (%rax,%rcx,2), %eax305; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax306; X64-HSW-NEXT:    retq307; X64-HSW-NEXT:  .LBB0_30:308; X64-HSW-NEXT:    movl %eax, %ecx309; X64-HSW-NEXT:    shll $5, %ecx310; X64-HSW-NEXT:    jmp .LBB0_34311; X64-HSW-NEXT:  .LBB0_31:312; X64-HSW-NEXT:    xorl %eax, %eax313; X64-HSW-NEXT:  .LBB0_32:314; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax315; X64-HSW-NEXT:    retq316; X64-HSW-NEXT:  .LBB0_33:317; X64-HSW-NEXT:    leal (%rax,%rax,2), %ecx318; X64-HSW-NEXT:    shll $3, %ecx319; X64-HSW-NEXT:  .LBB0_34:320; X64-HSW-NEXT:    subl %eax, %ecx321; X64-HSW-NEXT:    movl %ecx, %eax322; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax323; X64-HSW-NEXT:    retq324; X64-HSW-NEXT:  .LBB0_36:325; X64-HSW-NEXT:    shll $2, %eax326; X64-HSW-NEXT:    leal (%rax,%rax,4), %eax327; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax328; X64-HSW-NEXT:    retq329; X64-HSW-NEXT:  .LBB0_37:330; X64-HSW-NEXT:    shll $3, %eax331; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax332; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax333; X64-HSW-NEXT:    retq334; X64-HSW-NEXT:  .LBB0_38:335; X64-HSW-NEXT:    leal (%rax,%rax,8), %ecx336; X64-HSW-NEXT:    leal (%rcx,%rcx,2), %ecx337; X64-HSW-NEXT:    addl %eax, %eax338; X64-HSW-NEXT:    addl %ecx, %eax339; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax340; X64-HSW-NEXT:    retq341; X64-HSW-NEXT:  .LBB0_39:342; X64-HSW-NEXT:    leal (%rax,%rax), %ecx343; X64-HSW-NEXT:    shll $5, %eax344; X64-HSW-NEXT:    subl %ecx, %eax345; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax346; X64-HSW-NEXT:    retq347; X64-HSW-NEXT:  .LBB0_40:348; X64-HSW-NEXT:    leal (%rax,%rax,8), %eax349; X64-HSW-NEXT:    leal (%rax,%rax,2), %eax350; X64-HSW-NEXT:    # kill: def $eax killed $eax killed $rax351; X64-HSW-NEXT:    retq352  %3 = icmp eq i32 %1, 0353  %4 = icmp sgt i32 %1, 1354  %5 = or i1 %3, %4355  %6 = select i1 %5, i32 1, i32 %1356  switch i32 %0, label %69 [357    i32 1, label %70358    i32 2, label %7359    i32 3, label %9360    i32 4, label %11361    i32 5, label %13362    i32 6, label %15363    i32 7, label %17364    i32 8, label %19365    i32 9, label %21366    i32 10, label %23367    i32 11, label %25368    i32 12, label %27369    i32 13, label %29370    i32 14, label %31371    i32 15, label %33372    i32 16, label %35373    i32 17, label %37374    i32 18, label %39375    i32 19, label %41376    i32 20, label %43377    i32 21, label %45378    i32 22, label %47379    i32 23, label %49380    i32 24, label %51381    i32 25, label %53382    i32 26, label %55383    i32 27, label %57384    i32 28, label %59385    i32 29, label %61386    i32 30, label %63387    i32 31, label %65388    i32 32, label %67389  ]390 391; <label>:7:                                      ; preds = %2392  %8 = shl nsw i32 %6, 1393  br label %70394 395; <label>:9:                                      ; preds = %2396  %10 = mul nsw i32 %6, 3397  br label %70398 399; <label>:11:                                     ; preds = %2400  %12 = shl nsw i32 %6, 2401  br label %70402 403; <label>:13:                                     ; preds = %2404  %14 = mul nsw i32 %6, 5405  br label %70406 407; <label>:15:                                     ; preds = %2408  %16 = mul nsw i32 %6, 6409  br label %70410 411; <label>:17:                                     ; preds = %2412  %18 = mul nsw i32 %6, 7413  br label %70414 415; <label>:19:                                     ; preds = %2416  %20 = shl nsw i32 %6, 3417  br label %70418 419; <label>:21:                                     ; preds = %2420  %22 = mul nsw i32 %6, 9421  br label %70422 423; <label>:23:                                     ; preds = %2424  %24 = mul nsw i32 %6, 10425  br label %70426 427; <label>:25:                                     ; preds = %2428  %26 = mul nsw i32 %6, 11429  br label %70430 431; <label>:27:                                     ; preds = %2432  %28 = mul nsw i32 %6, 12433  br label %70434 435; <label>:29:                                     ; preds = %2436  %30 = mul nsw i32 %6, 13437  br label %70438 439; <label>:31:                                     ; preds = %2440  %32 = mul nsw i32 %6, 14441  br label %70442 443; <label>:33:                                     ; preds = %2444  %34 = mul nsw i32 %6, 15445  br label %70446 447; <label>:35:                                     ; preds = %2448  %36 = shl nsw i32 %6, 4449  br label %70450 451; <label>:37:                                     ; preds = %2452  %38 = mul nsw i32 %6, 17453  br label %70454 455; <label>:39:                                     ; preds = %2456  %40 = mul nsw i32 %6, 18457  br label %70458 459; <label>:41:                                     ; preds = %2460  %42 = mul nsw i32 %6, 19461  br label %70462 463; <label>:43:                                     ; preds = %2464  %44 = mul nsw i32 %6, 20465  br label %70466 467; <label>:45:                                     ; preds = %2468  %46 = mul nsw i32 %6, 21469  br label %70470 471; <label>:47:                                     ; preds = %2472  %48 = mul nsw i32 %6, 22473  br label %70474 475; <label>:49:                                     ; preds = %2476  %50 = mul nsw i32 %6, 23477  br label %70478 479; <label>:51:                                     ; preds = %2480  %52 = mul nsw i32 %6, 24481  br label %70482 483; <label>:53:                                     ; preds = %2484  %54 = mul nsw i32 %6, 25485  br label %70486 487; <label>:55:                                     ; preds = %2488  %56 = mul nsw i32 %6, 26489  br label %70490 491; <label>:57:                                     ; preds = %2492  %58 = mul nsw i32 %6, 27493  br label %70494 495; <label>:59:                                     ; preds = %2496  %60 = mul nsw i32 %6, 28497  br label %70498 499; <label>:61:                                     ; preds = %2500  %62 = mul nsw i32 %6, 29501  br label %70502 503; <label>:63:                                     ; preds = %2504  %64 = mul nsw i32 %6, 30505  br label %70506 507; <label>:65:                                     ; preds = %2508  %66 = mul nsw i32 %6, 31509  br label %70510 511; <label>:67:                                     ; preds = %2512  %68 = shl nsw i32 %6, 5513  br label %70514 515; <label>:69:                                     ; preds = %2516  br label %70517 518; <label>:70:                                     ; preds = %2, %69, %67, %65, %63, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7519  %71 = phi i32 [ %8, %7 ], [ %10, %9 ], [ %12, %11 ], [ %14, %13 ], [ %16, %15 ], [ %18, %17 ], [ %20, %19 ], [ %22, %21 ], [ %24, %23 ], [ %26, %25 ], [ %28, %27 ], [ %30, %29 ], [ %32, %31 ], [ %34, %33 ], [ %36, %35 ], [ %38, %37 ], [ %40, %39 ], [ %42, %41 ], [ %44, %43 ], [ %46, %45 ], [ %48, %47 ], [ %50, %49 ], [ %52, %51 ], [ %54, %53 ], [ %56, %55 ], [ %58, %57 ], [ %60, %59 ], [ %62, %61 ], [ %64, %63 ], [ %66, %65 ], [ %68, %67 ], [ 0, %69 ], [ %6, %2 ]520  ret i32 %71521}522 523; Function Attrs: norecurse nounwind readnone uwtable524define i32 @foo() local_unnamed_addr #0 {525; X86-LABEL: foo:526; X86:       # %bb.0:527; X86-NEXT:    pushl %ebp528; X86-NEXT:    .cfi_def_cfa_offset 8529; X86-NEXT:    pushl %ebx530; X86-NEXT:    .cfi_def_cfa_offset 12531; X86-NEXT:    pushl %edi532; X86-NEXT:    .cfi_def_cfa_offset 16533; X86-NEXT:    pushl %esi534; X86-NEXT:    .cfi_def_cfa_offset 20535; X86-NEXT:    .cfi_offset %esi, -20536; X86-NEXT:    .cfi_offset %edi, -16537; X86-NEXT:    .cfi_offset %ebx, -12538; X86-NEXT:    .cfi_offset %ebp, -8539; X86-NEXT:    pushl $0540; X86-NEXT:    .cfi_adjust_cfa_offset 4541; X86-NEXT:    pushl $1542; X86-NEXT:    .cfi_adjust_cfa_offset 4543; X86-NEXT:    calll mult@PLT544; X86-NEXT:    addl $8, %esp545; X86-NEXT:    .cfi_adjust_cfa_offset -8546; X86-NEXT:    movl %eax, %esi547; X86-NEXT:    xorl $1, %esi548; X86-NEXT:    pushl $1549; X86-NEXT:    .cfi_adjust_cfa_offset 4550; X86-NEXT:    pushl $2551; X86-NEXT:    .cfi_adjust_cfa_offset 4552; X86-NEXT:    calll mult@PLT553; X86-NEXT:    addl $8, %esp554; X86-NEXT:    .cfi_adjust_cfa_offset -8555; X86-NEXT:    movl %eax, %edi556; X86-NEXT:    xorl $2, %edi557; X86-NEXT:    orl %esi, %edi558; X86-NEXT:    pushl $1559; X86-NEXT:    .cfi_adjust_cfa_offset 4560; X86-NEXT:    pushl $3561; X86-NEXT:    .cfi_adjust_cfa_offset 4562; X86-NEXT:    calll mult@PLT563; X86-NEXT:    addl $8, %esp564; X86-NEXT:    .cfi_adjust_cfa_offset -8565; X86-NEXT:    movl %eax, %ebx566; X86-NEXT:    xorl $3, %ebx567; X86-NEXT:    pushl $2568; X86-NEXT:    .cfi_adjust_cfa_offset 4569; X86-NEXT:    pushl $4570; X86-NEXT:    .cfi_adjust_cfa_offset 4571; X86-NEXT:    calll mult@PLT572; X86-NEXT:    addl $8, %esp573; X86-NEXT:    .cfi_adjust_cfa_offset -8574; X86-NEXT:    movl %eax, %esi575; X86-NEXT:    xorl $4, %esi576; X86-NEXT:    orl %ebx, %esi577; X86-NEXT:    orl %edi, %esi578; X86-NEXT:    pushl $2579; X86-NEXT:    .cfi_adjust_cfa_offset 4580; X86-NEXT:    pushl $5581; X86-NEXT:    .cfi_adjust_cfa_offset 4582; X86-NEXT:    calll mult@PLT583; X86-NEXT:    addl $8, %esp584; X86-NEXT:    .cfi_adjust_cfa_offset -8585; X86-NEXT:    movl %eax, %edi586; X86-NEXT:    xorl $5, %edi587; X86-NEXT:    pushl $3588; X86-NEXT:    .cfi_adjust_cfa_offset 4589; X86-NEXT:    pushl $6590; X86-NEXT:    .cfi_adjust_cfa_offset 4591; X86-NEXT:    calll mult@PLT592; X86-NEXT:    addl $8, %esp593; X86-NEXT:    .cfi_adjust_cfa_offset -8594; X86-NEXT:    movl %eax, %ebx595; X86-NEXT:    xorl $6, %ebx596; X86-NEXT:    orl %edi, %ebx597; X86-NEXT:    pushl $3598; X86-NEXT:    .cfi_adjust_cfa_offset 4599; X86-NEXT:    pushl $7600; X86-NEXT:    .cfi_adjust_cfa_offset 4601; X86-NEXT:    calll mult@PLT602; X86-NEXT:    addl $8, %esp603; X86-NEXT:    .cfi_adjust_cfa_offset -8604; X86-NEXT:    movl %eax, %edi605; X86-NEXT:    xorl $7, %edi606; X86-NEXT:    orl %ebx, %edi607; X86-NEXT:    orl %esi, %edi608; X86-NEXT:    pushl $4609; X86-NEXT:    .cfi_adjust_cfa_offset 4610; X86-NEXT:    pushl $8611; X86-NEXT:    .cfi_adjust_cfa_offset 4612; X86-NEXT:    calll mult@PLT613; X86-NEXT:    addl $8, %esp614; X86-NEXT:    .cfi_adjust_cfa_offset -8615; X86-NEXT:    movl %eax, %ebx616; X86-NEXT:    xorl $8, %ebx617; X86-NEXT:    pushl $4618; X86-NEXT:    .cfi_adjust_cfa_offset 4619; X86-NEXT:    pushl $9620; X86-NEXT:    .cfi_adjust_cfa_offset 4621; X86-NEXT:    calll mult@PLT622; X86-NEXT:    addl $8, %esp623; X86-NEXT:    .cfi_adjust_cfa_offset -8624; X86-NEXT:    movl %eax, %esi625; X86-NEXT:    xorl $9, %esi626; X86-NEXT:    orl %ebx, %esi627; X86-NEXT:    pushl $5628; X86-NEXT:    .cfi_adjust_cfa_offset 4629; X86-NEXT:    pushl $10630; X86-NEXT:    .cfi_adjust_cfa_offset 4631; X86-NEXT:    calll mult@PLT632; X86-NEXT:    addl $8, %esp633; X86-NEXT:    .cfi_adjust_cfa_offset -8634; X86-NEXT:    movl %eax, %ebx635; X86-NEXT:    xorl $10, %ebx636; X86-NEXT:    orl %esi, %ebx637; X86-NEXT:    pushl $5638; X86-NEXT:    .cfi_adjust_cfa_offset 4639; X86-NEXT:    pushl $11640; X86-NEXT:    .cfi_adjust_cfa_offset 4641; X86-NEXT:    calll mult@PLT642; X86-NEXT:    addl $8, %esp643; X86-NEXT:    .cfi_adjust_cfa_offset -8644; X86-NEXT:    movl %eax, %esi645; X86-NEXT:    xorl $11, %esi646; X86-NEXT:    orl %ebx, %esi647; X86-NEXT:    orl %edi, %esi648; X86-NEXT:    pushl $6649; X86-NEXT:    .cfi_adjust_cfa_offset 4650; X86-NEXT:    pushl $12651; X86-NEXT:    .cfi_adjust_cfa_offset 4652; X86-NEXT:    calll mult@PLT653; X86-NEXT:    addl $8, %esp654; X86-NEXT:    .cfi_adjust_cfa_offset -8655; X86-NEXT:    movl %eax, %ebx656; X86-NEXT:    xorl $12, %ebx657; X86-NEXT:    pushl $6658; X86-NEXT:    .cfi_adjust_cfa_offset 4659; X86-NEXT:    pushl $13660; X86-NEXT:    .cfi_adjust_cfa_offset 4661; X86-NEXT:    calll mult@PLT662; X86-NEXT:    addl $8, %esp663; X86-NEXT:    .cfi_adjust_cfa_offset -8664; X86-NEXT:    movl %eax, %edi665; X86-NEXT:    xorl $13, %edi666; X86-NEXT:    orl %ebx, %edi667; X86-NEXT:    pushl $7668; X86-NEXT:    .cfi_adjust_cfa_offset 4669; X86-NEXT:    pushl $14670; X86-NEXT:    .cfi_adjust_cfa_offset 4671; X86-NEXT:    calll mult@PLT672; X86-NEXT:    addl $8, %esp673; X86-NEXT:    .cfi_adjust_cfa_offset -8674; X86-NEXT:    movl %eax, %ebx675; X86-NEXT:    xorl $14, %ebx676; X86-NEXT:    orl %edi, %ebx677; X86-NEXT:    pushl $7678; X86-NEXT:    .cfi_adjust_cfa_offset 4679; X86-NEXT:    pushl $15680; X86-NEXT:    .cfi_adjust_cfa_offset 4681; X86-NEXT:    calll mult@PLT682; X86-NEXT:    addl $8, %esp683; X86-NEXT:    .cfi_adjust_cfa_offset -8684; X86-NEXT:    movl %eax, %ebp685; X86-NEXT:    xorl $15, %ebp686; X86-NEXT:    orl %ebx, %ebp687; X86-NEXT:    pushl $8688; X86-NEXT:    .cfi_adjust_cfa_offset 4689; X86-NEXT:    pushl $16690; X86-NEXT:    .cfi_adjust_cfa_offset 4691; X86-NEXT:    calll mult@PLT692; X86-NEXT:    addl $8, %esp693; X86-NEXT:    .cfi_adjust_cfa_offset -8694; X86-NEXT:    movl %eax, %edi695; X86-NEXT:    xorl $16, %edi696; X86-NEXT:    orl %ebp, %edi697; X86-NEXT:    orl %esi, %edi698; X86-NEXT:    pushl $8699; X86-NEXT:    .cfi_adjust_cfa_offset 4700; X86-NEXT:    pushl $17701; X86-NEXT:    .cfi_adjust_cfa_offset 4702; X86-NEXT:    calll mult@PLT703; X86-NEXT:    addl $8, %esp704; X86-NEXT:    .cfi_adjust_cfa_offset -8705; X86-NEXT:    movl %eax, %ebx706; X86-NEXT:    xorl $17, %ebx707; X86-NEXT:    pushl $9708; X86-NEXT:    .cfi_adjust_cfa_offset 4709; X86-NEXT:    pushl $18710; X86-NEXT:    .cfi_adjust_cfa_offset 4711; X86-NEXT:    calll mult@PLT712; X86-NEXT:    addl $8, %esp713; X86-NEXT:    .cfi_adjust_cfa_offset -8714; X86-NEXT:    movl %eax, %esi715; X86-NEXT:    xorl $18, %esi716; X86-NEXT:    orl %ebx, %esi717; X86-NEXT:    pushl $9718; X86-NEXT:    .cfi_adjust_cfa_offset 4719; X86-NEXT:    pushl $19720; X86-NEXT:    .cfi_adjust_cfa_offset 4721; X86-NEXT:    calll mult@PLT722; X86-NEXT:    addl $8, %esp723; X86-NEXT:    .cfi_adjust_cfa_offset -8724; X86-NEXT:    movl %eax, %ebx725; X86-NEXT:    xorl $19, %ebx726; X86-NEXT:    orl %esi, %ebx727; X86-NEXT:    pushl $10728; X86-NEXT:    .cfi_adjust_cfa_offset 4729; X86-NEXT:    pushl $20730; X86-NEXT:    .cfi_adjust_cfa_offset 4731; X86-NEXT:    calll mult@PLT732; X86-NEXT:    addl $8, %esp733; X86-NEXT:    .cfi_adjust_cfa_offset -8734; X86-NEXT:    movl %eax, %esi735; X86-NEXT:    xorl $20, %esi736; X86-NEXT:    orl %ebx, %esi737; X86-NEXT:    pushl $10738; X86-NEXT:    .cfi_adjust_cfa_offset 4739; X86-NEXT:    pushl $21740; X86-NEXT:    .cfi_adjust_cfa_offset 4741; X86-NEXT:    calll mult@PLT742; X86-NEXT:    addl $8, %esp743; X86-NEXT:    .cfi_adjust_cfa_offset -8744; X86-NEXT:    movl %eax, %ebx745; X86-NEXT:    xorl $21, %ebx746; X86-NEXT:    orl %esi, %ebx747; X86-NEXT:    pushl $11748; X86-NEXT:    .cfi_adjust_cfa_offset 4749; X86-NEXT:    pushl $22750; X86-NEXT:    .cfi_adjust_cfa_offset 4751; X86-NEXT:    calll mult@PLT752; X86-NEXT:    addl $8, %esp753; X86-NEXT:    .cfi_adjust_cfa_offset -8754; X86-NEXT:    movl %eax, %esi755; X86-NEXT:    xorl $22, %esi756; X86-NEXT:    orl %ebx, %esi757; X86-NEXT:    orl %edi, %esi758; X86-NEXT:    pushl $11759; X86-NEXT:    .cfi_adjust_cfa_offset 4760; X86-NEXT:    pushl $23761; X86-NEXT:    .cfi_adjust_cfa_offset 4762; X86-NEXT:    calll mult@PLT763; X86-NEXT:    addl $8, %esp764; X86-NEXT:    .cfi_adjust_cfa_offset -8765; X86-NEXT:    movl %eax, %ebx766; X86-NEXT:    xorl $23, %ebx767; X86-NEXT:    pushl $12768; X86-NEXT:    .cfi_adjust_cfa_offset 4769; X86-NEXT:    pushl $24770; X86-NEXT:    .cfi_adjust_cfa_offset 4771; X86-NEXT:    calll mult@PLT772; X86-NEXT:    addl $8, %esp773; X86-NEXT:    .cfi_adjust_cfa_offset -8774; X86-NEXT:    movl %eax, %edi775; X86-NEXT:    xorl $24, %edi776; X86-NEXT:    orl %ebx, %edi777; X86-NEXT:    pushl $12778; X86-NEXT:    .cfi_adjust_cfa_offset 4779; X86-NEXT:    pushl $25780; X86-NEXT:    .cfi_adjust_cfa_offset 4781; X86-NEXT:    calll mult@PLT782; X86-NEXT:    addl $8, %esp783; X86-NEXT:    .cfi_adjust_cfa_offset -8784; X86-NEXT:    movl %eax, %ebx785; X86-NEXT:    xorl $25, %ebx786; X86-NEXT:    orl %edi, %ebx787; X86-NEXT:    pushl $13788; X86-NEXT:    .cfi_adjust_cfa_offset 4789; X86-NEXT:    pushl $26790; X86-NEXT:    .cfi_adjust_cfa_offset 4791; X86-NEXT:    calll mult@PLT792; X86-NEXT:    addl $8, %esp793; X86-NEXT:    .cfi_adjust_cfa_offset -8794; X86-NEXT:    movl %eax, %edi795; X86-NEXT:    xorl $26, %edi796; X86-NEXT:    orl %ebx, %edi797; X86-NEXT:    pushl $13798; X86-NEXT:    .cfi_adjust_cfa_offset 4799; X86-NEXT:    pushl $27800; X86-NEXT:    .cfi_adjust_cfa_offset 4801; X86-NEXT:    calll mult@PLT802; X86-NEXT:    addl $8, %esp803; X86-NEXT:    .cfi_adjust_cfa_offset -8804; X86-NEXT:    movl %eax, %ebx805; X86-NEXT:    xorl $27, %ebx806; X86-NEXT:    orl %edi, %ebx807; X86-NEXT:    pushl $14808; X86-NEXT:    .cfi_adjust_cfa_offset 4809; X86-NEXT:    pushl $28810; X86-NEXT:    .cfi_adjust_cfa_offset 4811; X86-NEXT:    calll mult@PLT812; X86-NEXT:    addl $8, %esp813; X86-NEXT:    .cfi_adjust_cfa_offset -8814; X86-NEXT:    movl %eax, %ebp815; X86-NEXT:    xorl $28, %ebp816; X86-NEXT:    orl %ebx, %ebp817; X86-NEXT:    pushl $14818; X86-NEXT:    .cfi_adjust_cfa_offset 4819; X86-NEXT:    pushl $29820; X86-NEXT:    .cfi_adjust_cfa_offset 4821; X86-NEXT:    calll mult@PLT822; X86-NEXT:    addl $8, %esp823; X86-NEXT:    .cfi_adjust_cfa_offset -8824; X86-NEXT:    movl %eax, %edi825; X86-NEXT:    xorl $29, %edi826; X86-NEXT:    orl %ebp, %edi827; X86-NEXT:    orl %esi, %edi828; X86-NEXT:    pushl $15829; X86-NEXT:    .cfi_adjust_cfa_offset 4830; X86-NEXT:    pushl $30831; X86-NEXT:    .cfi_adjust_cfa_offset 4832; X86-NEXT:    calll mult@PLT833; X86-NEXT:    addl $8, %esp834; X86-NEXT:    .cfi_adjust_cfa_offset -8835; X86-NEXT:    movl %eax, %ebx836; X86-NEXT:    xorl $30, %ebx837; X86-NEXT:    pushl $15838; X86-NEXT:    .cfi_adjust_cfa_offset 4839; X86-NEXT:    pushl $31840; X86-NEXT:    .cfi_adjust_cfa_offset 4841; X86-NEXT:    calll mult@PLT842; X86-NEXT:    addl $8, %esp843; X86-NEXT:    .cfi_adjust_cfa_offset -8844; X86-NEXT:    movl %eax, %esi845; X86-NEXT:    xorl $31, %esi846; X86-NEXT:    orl %ebx, %esi847; X86-NEXT:    orl %edi, %esi848; X86-NEXT:    pushl $16849; X86-NEXT:    .cfi_adjust_cfa_offset 4850; X86-NEXT:    pushl $32851; X86-NEXT:    .cfi_adjust_cfa_offset 4852; X86-NEXT:    calll mult@PLT853; X86-NEXT:    addl $8, %esp854; X86-NEXT:    .cfi_adjust_cfa_offset -8855; X86-NEXT:    xorl $32, %eax856; X86-NEXT:    xorl %ecx, %ecx857; X86-NEXT:    orl %esi, %eax858; X86-NEXT:    setne %cl859; X86-NEXT:    negl %ecx860; X86-NEXT:    movl %ecx, %eax861; X86-NEXT:    popl %esi862; X86-NEXT:    .cfi_def_cfa_offset 16863; X86-NEXT:    popl %edi864; X86-NEXT:    .cfi_def_cfa_offset 12865; X86-NEXT:    popl %ebx866; X86-NEXT:    .cfi_def_cfa_offset 8867; X86-NEXT:    popl %ebp868; X86-NEXT:    .cfi_def_cfa_offset 4869; X86-NEXT:    retl870;871; X64-HSW-LABEL: foo:872; X64-HSW:       # %bb.0:873; X64-HSW-NEXT:    pushq %rbp874; X64-HSW-NEXT:    .cfi_def_cfa_offset 16875; X64-HSW-NEXT:    pushq %r15876; X64-HSW-NEXT:    .cfi_def_cfa_offset 24877; X64-HSW-NEXT:    pushq %r14878; X64-HSW-NEXT:    .cfi_def_cfa_offset 32879; X64-HSW-NEXT:    pushq %rbx880; X64-HSW-NEXT:    .cfi_def_cfa_offset 40881; X64-HSW-NEXT:    pushq %rax882; X64-HSW-NEXT:    .cfi_def_cfa_offset 48883; X64-HSW-NEXT:    .cfi_offset %rbx, -40884; X64-HSW-NEXT:    .cfi_offset %r14, -32885; X64-HSW-NEXT:    .cfi_offset %r15, -24886; X64-HSW-NEXT:    .cfi_offset %rbp, -16887; X64-HSW-NEXT:    movl $1, %edi888; X64-HSW-NEXT:    xorl %esi, %esi889; X64-HSW-NEXT:    callq mult@PLT890; X64-HSW-NEXT:    movl %eax, %ebx891; X64-HSW-NEXT:    xorl $1, %ebx892; X64-HSW-NEXT:    movl $2, %edi893; X64-HSW-NEXT:    movl $1, %esi894; X64-HSW-NEXT:    callq mult@PLT895; X64-HSW-NEXT:    movl %eax, %ebp896; X64-HSW-NEXT:    xorl $2, %ebp897; X64-HSW-NEXT:    orl %ebx, %ebp898; X64-HSW-NEXT:    movl $3, %edi899; X64-HSW-NEXT:    movl $1, %esi900; X64-HSW-NEXT:    callq mult@PLT901; X64-HSW-NEXT:    movl %eax, %r14d902; X64-HSW-NEXT:    xorl $3, %r14d903; X64-HSW-NEXT:    movl $4, %edi904; X64-HSW-NEXT:    movl $2, %esi905; X64-HSW-NEXT:    callq mult@PLT906; X64-HSW-NEXT:    movl %eax, %ebx907; X64-HSW-NEXT:    xorl $4, %ebx908; X64-HSW-NEXT:    orl %r14d, %ebx909; X64-HSW-NEXT:    orl %ebp, %ebx910; X64-HSW-NEXT:    movl $5, %edi911; X64-HSW-NEXT:    movl $2, %esi912; X64-HSW-NEXT:    callq mult@PLT913; X64-HSW-NEXT:    movl %eax, %ebp914; X64-HSW-NEXT:    xorl $5, %ebp915; X64-HSW-NEXT:    movl $6, %edi916; X64-HSW-NEXT:    movl $3, %esi917; X64-HSW-NEXT:    callq mult@PLT918; X64-HSW-NEXT:    movl %eax, %r14d919; X64-HSW-NEXT:    xorl $6, %r14d920; X64-HSW-NEXT:    orl %ebp, %r14d921; X64-HSW-NEXT:    movl $7, %edi922; X64-HSW-NEXT:    movl $3, %esi923; X64-HSW-NEXT:    callq mult@PLT924; X64-HSW-NEXT:    movl %eax, %ebp925; X64-HSW-NEXT:    xorl $7, %ebp926; X64-HSW-NEXT:    orl %r14d, %ebp927; X64-HSW-NEXT:    orl %ebx, %ebp928; X64-HSW-NEXT:    movl $8, %edi929; X64-HSW-NEXT:    movl $4, %esi930; X64-HSW-NEXT:    callq mult@PLT931; X64-HSW-NEXT:    movl %eax, %ebx932; X64-HSW-NEXT:    xorl $8, %ebx933; X64-HSW-NEXT:    movl $9, %edi934; X64-HSW-NEXT:    movl $4, %esi935; X64-HSW-NEXT:    callq mult@PLT936; X64-HSW-NEXT:    movl %eax, %r14d937; X64-HSW-NEXT:    xorl $9, %r14d938; X64-HSW-NEXT:    orl %ebx, %r14d939; X64-HSW-NEXT:    movl $10, %edi940; X64-HSW-NEXT:    movl $5, %esi941; X64-HSW-NEXT:    callq mult@PLT942; X64-HSW-NEXT:    movl %eax, %r15d943; X64-HSW-NEXT:    xorl $10, %r15d944; X64-HSW-NEXT:    orl %r14d, %r15d945; X64-HSW-NEXT:    movl $11, %edi946; X64-HSW-NEXT:    movl $5, %esi947; X64-HSW-NEXT:    callq mult@PLT948; X64-HSW-NEXT:    movl %eax, %ebx949; X64-HSW-NEXT:    xorl $11, %ebx950; X64-HSW-NEXT:    orl %r15d, %ebx951; X64-HSW-NEXT:    orl %ebp, %ebx952; X64-HSW-NEXT:    movl $12, %edi953; X64-HSW-NEXT:    movl $6, %esi954; X64-HSW-NEXT:    callq mult@PLT955; X64-HSW-NEXT:    movl %eax, %ebp956; X64-HSW-NEXT:    xorl $12, %ebp957; X64-HSW-NEXT:    movl $13, %edi958; X64-HSW-NEXT:    movl $6, %esi959; X64-HSW-NEXT:    callq mult@PLT960; X64-HSW-NEXT:    movl %eax, %r14d961; X64-HSW-NEXT:    xorl $13, %r14d962; X64-HSW-NEXT:    orl %ebp, %r14d963; X64-HSW-NEXT:    movl $14, %edi964; X64-HSW-NEXT:    movl $7, %esi965; X64-HSW-NEXT:    callq mult@PLT966; X64-HSW-NEXT:    movl %eax, %ebp967; X64-HSW-NEXT:    xorl $14, %ebp968; X64-HSW-NEXT:    orl %r14d, %ebp969; X64-HSW-NEXT:    movl $15, %edi970; X64-HSW-NEXT:    movl $7, %esi971; X64-HSW-NEXT:    callq mult@PLT972; X64-HSW-NEXT:    movl %eax, %r14d973; X64-HSW-NEXT:    xorl $15, %r14d974; X64-HSW-NEXT:    orl %ebp, %r14d975; X64-HSW-NEXT:    movl $16, %edi976; X64-HSW-NEXT:    movl $8, %esi977; X64-HSW-NEXT:    callq mult@PLT978; X64-HSW-NEXT:    movl %eax, %ebp979; X64-HSW-NEXT:    xorl $16, %ebp980; X64-HSW-NEXT:    orl %r14d, %ebp981; X64-HSW-NEXT:    orl %ebx, %ebp982; X64-HSW-NEXT:    movl $17, %edi983; X64-HSW-NEXT:    movl $8, %esi984; X64-HSW-NEXT:    callq mult@PLT985; X64-HSW-NEXT:    movl %eax, %ebx986; X64-HSW-NEXT:    xorl $17, %ebx987; X64-HSW-NEXT:    movl $18, %edi988; X64-HSW-NEXT:    movl $9, %esi989; X64-HSW-NEXT:    callq mult@PLT990; X64-HSW-NEXT:    movl %eax, %r14d991; X64-HSW-NEXT:    xorl $18, %r14d992; X64-HSW-NEXT:    orl %ebx, %r14d993; X64-HSW-NEXT:    movl $19, %edi994; X64-HSW-NEXT:    movl $9, %esi995; X64-HSW-NEXT:    callq mult@PLT996; X64-HSW-NEXT:    movl %eax, %ebx997; X64-HSW-NEXT:    xorl $19, %ebx998; X64-HSW-NEXT:    orl %r14d, %ebx999; X64-HSW-NEXT:    movl $20, %edi1000; X64-HSW-NEXT:    movl $10, %esi1001; X64-HSW-NEXT:    callq mult@PLT1002; X64-HSW-NEXT:    movl %eax, %r14d1003; X64-HSW-NEXT:    xorl $20, %r14d1004; X64-HSW-NEXT:    orl %ebx, %r14d1005; X64-HSW-NEXT:    movl $21, %edi1006; X64-HSW-NEXT:    movl $10, %esi1007; X64-HSW-NEXT:    callq mult@PLT1008; X64-HSW-NEXT:    movl %eax, %r15d1009; X64-HSW-NEXT:    xorl $21, %r15d1010; X64-HSW-NEXT:    orl %r14d, %r15d1011; X64-HSW-NEXT:    movl $22, %edi1012; X64-HSW-NEXT:    movl $11, %esi1013; X64-HSW-NEXT:    callq mult@PLT1014; X64-HSW-NEXT:    movl %eax, %ebx1015; X64-HSW-NEXT:    xorl $22, %ebx1016; X64-HSW-NEXT:    orl %r15d, %ebx1017; X64-HSW-NEXT:    orl %ebp, %ebx1018; X64-HSW-NEXT:    movl $23, %edi1019; X64-HSW-NEXT:    movl $11, %esi1020; X64-HSW-NEXT:    callq mult@PLT1021; X64-HSW-NEXT:    movl %eax, %ebp1022; X64-HSW-NEXT:    xorl $23, %ebp1023; X64-HSW-NEXT:    movl $24, %edi1024; X64-HSW-NEXT:    movl $12, %esi1025; X64-HSW-NEXT:    callq mult@PLT1026; X64-HSW-NEXT:    movl %eax, %r14d1027; X64-HSW-NEXT:    xorl $24, %r14d1028; X64-HSW-NEXT:    orl %ebp, %r14d1029; X64-HSW-NEXT:    movl $25, %edi1030; X64-HSW-NEXT:    movl $12, %esi1031; X64-HSW-NEXT:    callq mult@PLT1032; X64-HSW-NEXT:    movl %eax, %ebp1033; X64-HSW-NEXT:    xorl $25, %ebp1034; X64-HSW-NEXT:    orl %r14d, %ebp1035; X64-HSW-NEXT:    movl $26, %edi1036; X64-HSW-NEXT:    movl $13, %esi1037; X64-HSW-NEXT:    callq mult@PLT1038; X64-HSW-NEXT:    movl %eax, %r14d1039; X64-HSW-NEXT:    xorl $26, %r14d1040; X64-HSW-NEXT:    orl %ebp, %r14d1041; X64-HSW-NEXT:    movl $27, %edi1042; X64-HSW-NEXT:    movl $13, %esi1043; X64-HSW-NEXT:    callq mult@PLT1044; X64-HSW-NEXT:    movl %eax, %ebp1045; X64-HSW-NEXT:    xorl $27, %ebp1046; X64-HSW-NEXT:    orl %r14d, %ebp1047; X64-HSW-NEXT:    movl $28, %edi1048; X64-HSW-NEXT:    movl $14, %esi1049; X64-HSW-NEXT:    callq mult@PLT1050; X64-HSW-NEXT:    movl %eax, %r14d1051; X64-HSW-NEXT:    xorl $28, %r14d1052; X64-HSW-NEXT:    orl %ebp, %r14d1053; X64-HSW-NEXT:    movl $29, %edi1054; X64-HSW-NEXT:    movl $14, %esi1055; X64-HSW-NEXT:    callq mult@PLT1056; X64-HSW-NEXT:    movl %eax, %ebp1057; X64-HSW-NEXT:    xorl $29, %ebp1058; X64-HSW-NEXT:    orl %r14d, %ebp1059; X64-HSW-NEXT:    orl %ebx, %ebp1060; X64-HSW-NEXT:    movl $30, %edi1061; X64-HSW-NEXT:    movl $15, %esi1062; X64-HSW-NEXT:    callq mult@PLT1063; X64-HSW-NEXT:    movl %eax, %ebx1064; X64-HSW-NEXT:    xorl $30, %ebx1065; X64-HSW-NEXT:    movl $31, %edi1066; X64-HSW-NEXT:    movl $15, %esi1067; X64-HSW-NEXT:    callq mult@PLT1068; X64-HSW-NEXT:    movl %eax, %r14d1069; X64-HSW-NEXT:    xorl $31, %r14d1070; X64-HSW-NEXT:    orl %ebx, %r14d1071; X64-HSW-NEXT:    orl %ebp, %r14d1072; X64-HSW-NEXT:    movl $32, %edi1073; X64-HSW-NEXT:    movl $16, %esi1074; X64-HSW-NEXT:    callq mult@PLT1075; X64-HSW-NEXT:    xorl $32, %eax1076; X64-HSW-NEXT:    xorl %ecx, %ecx1077; X64-HSW-NEXT:    orl %r14d, %eax1078; X64-HSW-NEXT:    setne %cl1079; X64-HSW-NEXT:    negl %ecx1080; X64-HSW-NEXT:    movl %ecx, %eax1081; X64-HSW-NEXT:    addq $8, %rsp1082; X64-HSW-NEXT:    .cfi_def_cfa_offset 401083; X64-HSW-NEXT:    popq %rbx1084; X64-HSW-NEXT:    .cfi_def_cfa_offset 321085; X64-HSW-NEXT:    popq %r141086; X64-HSW-NEXT:    .cfi_def_cfa_offset 241087; X64-HSW-NEXT:    popq %r151088; X64-HSW-NEXT:    .cfi_def_cfa_offset 161089; X64-HSW-NEXT:    popq %rbp1090; X64-HSW-NEXT:    .cfi_def_cfa_offset 81091; X64-HSW-NEXT:    retq1092  %1 = tail call i32 @mult(i32 1, i32 0)1093  %2 = icmp ne i32 %1, 11094  %3 = tail call i32 @mult(i32 2, i32 1)1095  %4 = icmp ne i32 %3, 21096  %5 = or i1 %2, %41097  %6 = tail call i32 @mult(i32 3, i32 1)1098  %7 = icmp ne i32 %6, 31099  %8 = or i1 %5, %71100  %9 = tail call i32 @mult(i32 4, i32 2)1101  %10 = icmp ne i32 %9, 41102  %11 = or i1 %8, %101103  %12 = tail call i32 @mult(i32 5, i32 2)1104  %13 = icmp ne i32 %12, 51105  %14 = or i1 %11, %131106  %15 = tail call i32 @mult(i32 6, i32 3)1107  %16 = icmp ne i32 %15, 61108  %17 = or i1 %14, %161109  %18 = tail call i32 @mult(i32 7, i32 3)1110  %19 = icmp ne i32 %18, 71111  %20 = or i1 %17, %191112  %21 = tail call i32 @mult(i32 8, i32 4)1113  %22 = icmp ne i32 %21, 81114  %23 = or i1 %20, %221115  %24 = tail call i32 @mult(i32 9, i32 4)1116  %25 = icmp ne i32 %24, 91117  %26 = or i1 %23, %251118  %27 = tail call i32 @mult(i32 10, i32 5)1119  %28 = icmp ne i32 %27, 101120  %29 = or i1 %26, %281121  %30 = tail call i32 @mult(i32 11, i32 5)1122  %31 = icmp ne i32 %30, 111123  %32 = or i1 %29, %311124  %33 = tail call i32 @mult(i32 12, i32 6)1125  %34 = icmp ne i32 %33, 121126  %35 = or i1 %32, %341127  %36 = tail call i32 @mult(i32 13, i32 6)1128  %37 = icmp ne i32 %36, 131129  %38 = or i1 %35, %371130  %39 = tail call i32 @mult(i32 14, i32 7)1131  %40 = icmp ne i32 %39, 141132  %41 = or i1 %38, %401133  %42 = tail call i32 @mult(i32 15, i32 7)1134  %43 = icmp ne i32 %42, 151135  %44 = or i1 %41, %431136  %45 = tail call i32 @mult(i32 16, i32 8)1137  %46 = icmp ne i32 %45, 161138  %47 = or i1 %44, %461139  %48 = tail call i32 @mult(i32 17, i32 8)1140  %49 = icmp ne i32 %48, 171141  %50 = or i1 %47, %491142  %51 = tail call i32 @mult(i32 18, i32 9)1143  %52 = icmp ne i32 %51, 181144  %53 = or i1 %50, %521145  %54 = tail call i32 @mult(i32 19, i32 9)1146  %55 = icmp ne i32 %54, 191147  %56 = or i1 %53, %551148  %57 = tail call i32 @mult(i32 20, i32 10)1149  %58 = icmp ne i32 %57, 201150  %59 = or i1 %56, %581151  %60 = tail call i32 @mult(i32 21, i32 10)1152  %61 = icmp ne i32 %60, 211153  %62 = or i1 %59, %611154  %63 = tail call i32 @mult(i32 22, i32 11)1155  %64 = icmp ne i32 %63, 221156  %65 = or i1 %62, %641157  %66 = tail call i32 @mult(i32 23, i32 11)1158  %67 = icmp ne i32 %66, 231159  %68 = or i1 %65, %671160  %69 = tail call i32 @mult(i32 24, i32 12)1161  %70 = icmp ne i32 %69, 241162  %71 = or i1 %68, %701163  %72 = tail call i32 @mult(i32 25, i32 12)1164  %73 = icmp ne i32 %72, 251165  %74 = or i1 %71, %731166  %75 = tail call i32 @mult(i32 26, i32 13)1167  %76 = icmp ne i32 %75, 261168  %77 = or i1 %74, %761169  %78 = tail call i32 @mult(i32 27, i32 13)1170  %79 = icmp ne i32 %78, 271171  %80 = or i1 %77, %791172  %81 = tail call i32 @mult(i32 28, i32 14)1173  %82 = icmp ne i32 %81, 281174  %83 = or i1 %80, %821175  %84 = tail call i32 @mult(i32 29, i32 14)1176  %85 = icmp ne i32 %84, 291177  %86 = or i1 %83, %851178  %87 = tail call i32 @mult(i32 30, i32 15)1179  %88 = icmp ne i32 %87, 301180  %89 = or i1 %86, %881181  %90 = tail call i32 @mult(i32 31, i32 15)1182  %91 = icmp ne i32 %90, 311183  %92 = or i1 %89, %911184  %93 = tail call i32 @mult(i32 32, i32 16)1185  %94 = icmp ne i32 %93, 321186  %95 = or i1 %92, %941187  %96 = sext i1 %95 to i321188  ret i32 %961189}1190 1191attributes #0 = { norecurse nounwind readnone uwtable  }1192