brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.0 KiB · 8153338 Raw
388 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2 3; RUN: llc -mtriple=mips-unknown-linux-gnu -enable-shrink-wrap=true \4; RUN:   -relocation-model=static < %s | \5; RUN:   FileCheck %s -check-prefix=SHRINK-WRAP-STATIC6 7; RUN: llc -mtriple=mips-unknown-linux-gnu -enable-shrink-wrap=false \8; RUN:   -relocation-model=static < %s | \9; RUN:   FileCheck %s -check-prefix=NO-SHRINK-WRAP-STATIC10 11; RUN: llc -mtriple=mips-unknown-linux-gnu -enable-shrink-wrap=true \12; RUN:   -relocation-model=pic -mips-jalr-reloc=false < %s | \13; RUN:   FileCheck %s -check-prefix=SHRINK-WRAP-PIC14 15; RUN: llc -mtriple=mips-unknown-linux-gnu -enable-shrink-wrap=false \16; RUN:   -relocation-model=pic -mips-jalr-reloc=false < %s | \17; RUN:   FileCheck %s -check-prefix=NO-SHRINK-WRAP-PIC18 19; RUN: llc -mtriple=mips64-unknown-linux-gnu -enable-shrink-wrap=true \20; RUN:   -relocation-model=static < %s | \21; RUN:   FileCheck %s -check-prefix=SHRINK-WRAP-64-STATIC22 23; RUN: llc -mtriple=mips64-unknown-linux-gnu -enable-shrink-wrap=false \24; RUN:   -relocation-model=static < %s | \25; RUN:   FileCheck %s -check-prefix=NO-SHRINK-WRAP-64-STATIC26 27; RUN: llc -mtriple=mips64-unknown-linux-gnu -enable-shrink-wrap=true \28; RUN:   -relocation-model=pic -mips-jalr-reloc=false < %s | \29; RUN:   FileCheck %s -check-prefix=SHRINK-WRAP-64-PIC30 31; RUN: llc -mtriple=mips64-unknown-linux-gnu -enable-shrink-wrap=false \32; RUN:   -relocation-model=pic -mips-jalr-reloc=false < %s | \33; RUN:   FileCheck %s -check-prefix=NO-SHRINK-WRAP-64-PIC34 35declare void @f(i32 signext)36 37define i32 @foo(i32 signext %a) {38; SHRINK-WRAP-STATIC-LABEL: foo:39; SHRINK-WRAP-STATIC:       # %bb.0: # %entry40; SHRINK-WRAP-STATIC-NEXT:    beqz $4, $BB0_241; SHRINK-WRAP-STATIC-NEXT:    nop42; SHRINK-WRAP-STATIC-NEXT:  # %bb.1: # %if.end43; SHRINK-WRAP-STATIC-NEXT:    addiu $sp, $sp, -2444; SHRINK-WRAP-STATIC-NEXT:    .cfi_def_cfa_offset 2445; SHRINK-WRAP-STATIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill46; SHRINK-WRAP-STATIC-NEXT:    .cfi_offset 31, -447; SHRINK-WRAP-STATIC-NEXT:    jal f48; SHRINK-WRAP-STATIC-NEXT:    addiu $4, $4, 149; SHRINK-WRAP-STATIC-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload50; SHRINK-WRAP-STATIC-NEXT:    addiu $sp, $sp, 2451; SHRINK-WRAP-STATIC-NEXT:  $BB0_2: # %return52; SHRINK-WRAP-STATIC-NEXT:    jr $ra53; SHRINK-WRAP-STATIC-NEXT:    addiu $2, $zero, 054;55; NO-SHRINK-WRAP-STATIC-LABEL: foo:56; NO-SHRINK-WRAP-STATIC:       # %bb.0: # %entry57; NO-SHRINK-WRAP-STATIC-NEXT:    addiu $sp, $sp, -2458; NO-SHRINK-WRAP-STATIC-NEXT:    .cfi_def_cfa_offset 2459; NO-SHRINK-WRAP-STATIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill60; NO-SHRINK-WRAP-STATIC-NEXT:    .cfi_offset 31, -461; NO-SHRINK-WRAP-STATIC-NEXT:    beqz $4, $BB0_262; NO-SHRINK-WRAP-STATIC-NEXT:    nop63; NO-SHRINK-WRAP-STATIC-NEXT:  # %bb.1: # %if.end64; NO-SHRINK-WRAP-STATIC-NEXT:    jal f65; NO-SHRINK-WRAP-STATIC-NEXT:    addiu $4, $4, 166; NO-SHRINK-WRAP-STATIC-NEXT:  $BB0_2: # %return67; NO-SHRINK-WRAP-STATIC-NEXT:    addiu $2, $zero, 068; NO-SHRINK-WRAP-STATIC-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload69; NO-SHRINK-WRAP-STATIC-NEXT:    jr $ra70; NO-SHRINK-WRAP-STATIC-NEXT:    addiu $sp, $sp, 2471;72; SHRINK-WRAP-PIC-LABEL: foo:73; SHRINK-WRAP-PIC:       # %bb.0: # %entry74; SHRINK-WRAP-PIC-NEXT:    lui $2, %hi(_gp_disp)75; SHRINK-WRAP-PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)76; SHRINK-WRAP-PIC-NEXT:    beqz $4, $BB0_277; SHRINK-WRAP-PIC-NEXT:    addu $gp, $2, $2578; SHRINK-WRAP-PIC-NEXT:  # %bb.1: # %if.end79; SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, -2480; SHRINK-WRAP-PIC-NEXT:    .cfi_def_cfa_offset 2481; SHRINK-WRAP-PIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill82; SHRINK-WRAP-PIC-NEXT:    .cfi_offset 31, -483; SHRINK-WRAP-PIC-NEXT:    lw $25, %call16(f)($gp)84; SHRINK-WRAP-PIC-NEXT:    jalr $2585; SHRINK-WRAP-PIC-NEXT:    addiu $4, $4, 186; SHRINK-WRAP-PIC-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload87; SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, 2488; SHRINK-WRAP-PIC-NEXT:  $BB0_2: # %return89; SHRINK-WRAP-PIC-NEXT:    jr $ra90; SHRINK-WRAP-PIC-NEXT:    addiu $2, $zero, 091;92; NO-SHRINK-WRAP-PIC-LABEL: foo:93; NO-SHRINK-WRAP-PIC:       # %bb.0: # %entry94; NO-SHRINK-WRAP-PIC-NEXT:    lui $2, %hi(_gp_disp)95; NO-SHRINK-WRAP-PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)96; NO-SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, -2497; NO-SHRINK-WRAP-PIC-NEXT:    .cfi_def_cfa_offset 2498; NO-SHRINK-WRAP-PIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill99; NO-SHRINK-WRAP-PIC-NEXT:    .cfi_offset 31, -4100; NO-SHRINK-WRAP-PIC-NEXT:    beqz $4, $BB0_2101; NO-SHRINK-WRAP-PIC-NEXT:    addu $gp, $2, $25102; NO-SHRINK-WRAP-PIC-NEXT:  # %bb.1: # %if.end103; NO-SHRINK-WRAP-PIC-NEXT:    lw $25, %call16(f)($gp)104; NO-SHRINK-WRAP-PIC-NEXT:    jalr $25105; NO-SHRINK-WRAP-PIC-NEXT:    addiu $4, $4, 1106; NO-SHRINK-WRAP-PIC-NEXT:  $BB0_2: # %return107; NO-SHRINK-WRAP-PIC-NEXT:    addiu $2, $zero, 0108; NO-SHRINK-WRAP-PIC-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload109; NO-SHRINK-WRAP-PIC-NEXT:    jr $ra110; NO-SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, 24111;112; SHRINK-WRAP-64-STATIC-LABEL: foo:113; SHRINK-WRAP-64-STATIC:       # %bb.0: # %entry114; SHRINK-WRAP-64-STATIC-NEXT:    beqz $4, .LBB0_2115; SHRINK-WRAP-64-STATIC-NEXT:    nop116; SHRINK-WRAP-64-STATIC-NEXT:  # %bb.1: # %if.end117; SHRINK-WRAP-64-STATIC-NEXT:    daddiu $sp, $sp, -16118; SHRINK-WRAP-64-STATIC-NEXT:    .cfi_def_cfa_offset 16119; SHRINK-WRAP-64-STATIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill120; SHRINK-WRAP-64-STATIC-NEXT:    .cfi_offset 31, -8121; SHRINK-WRAP-64-STATIC-NEXT:    jal f122; SHRINK-WRAP-64-STATIC-NEXT:    addiu $4, $4, 1123; SHRINK-WRAP-64-STATIC-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload124; SHRINK-WRAP-64-STATIC-NEXT:    daddiu $sp, $sp, 16125; SHRINK-WRAP-64-STATIC-NEXT:  .LBB0_2: # %return126; SHRINK-WRAP-64-STATIC-NEXT:    jr $ra127; SHRINK-WRAP-64-STATIC-NEXT:    addiu $2, $zero, 0128;129; NO-SHRINK-WRAP-64-STATIC-LABEL: foo:130; NO-SHRINK-WRAP-64-STATIC:       # %bb.0: # %entry131; NO-SHRINK-WRAP-64-STATIC-NEXT:    daddiu $sp, $sp, -16132; NO-SHRINK-WRAP-64-STATIC-NEXT:    .cfi_def_cfa_offset 16133; NO-SHRINK-WRAP-64-STATIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill134; NO-SHRINK-WRAP-64-STATIC-NEXT:    .cfi_offset 31, -8135; NO-SHRINK-WRAP-64-STATIC-NEXT:    beqz $4, .LBB0_2136; NO-SHRINK-WRAP-64-STATIC-NEXT:    nop137; NO-SHRINK-WRAP-64-STATIC-NEXT:  # %bb.1: # %if.end138; NO-SHRINK-WRAP-64-STATIC-NEXT:    jal f139; NO-SHRINK-WRAP-64-STATIC-NEXT:    addiu $4, $4, 1140; NO-SHRINK-WRAP-64-STATIC-NEXT:  .LBB0_2: # %return141; NO-SHRINK-WRAP-64-STATIC-NEXT:    addiu $2, $zero, 0142; NO-SHRINK-WRAP-64-STATIC-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload143; NO-SHRINK-WRAP-64-STATIC-NEXT:    jr $ra144; NO-SHRINK-WRAP-64-STATIC-NEXT:    daddiu $sp, $sp, 16145;146; SHRINK-WRAP-64-PIC-LABEL: foo:147; SHRINK-WRAP-64-PIC:       # %bb.0: # %entry148; SHRINK-WRAP-64-PIC-NEXT:    lui $1, %hi(%neg(%gp_rel(foo)))149; SHRINK-WRAP-64-PIC-NEXT:    beqz $4, .LBB0_2150; SHRINK-WRAP-64-PIC-NEXT:    daddu $2, $1, $25151; SHRINK-WRAP-64-PIC-NEXT:  # %bb.1: # %if.end152; SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, -16153; SHRINK-WRAP-64-PIC-NEXT:    .cfi_def_cfa_offset 16154; SHRINK-WRAP-64-PIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill155; SHRINK-WRAP-64-PIC-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill156; SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 31, -8157; SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 28, -16158; SHRINK-WRAP-64-PIC-NEXT:    daddiu $gp, $2, %lo(%neg(%gp_rel(foo)))159; SHRINK-WRAP-64-PIC-NEXT:    ld $25, %call16(f)($gp)160; SHRINK-WRAP-64-PIC-NEXT:    jalr $25161; SHRINK-WRAP-64-PIC-NEXT:    addiu $4, $4, 1162; SHRINK-WRAP-64-PIC-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload163; SHRINK-WRAP-64-PIC-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload164; SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, 16165; SHRINK-WRAP-64-PIC-NEXT:  .LBB0_2: # %return166; SHRINK-WRAP-64-PIC-NEXT:    jr $ra167; SHRINK-WRAP-64-PIC-NEXT:    addiu $2, $zero, 0168;169; NO-SHRINK-WRAP-64-PIC-LABEL: foo:170; NO-SHRINK-WRAP-64-PIC:       # %bb.0: # %entry171; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, -16172; NO-SHRINK-WRAP-64-PIC-NEXT:    .cfi_def_cfa_offset 16173; NO-SHRINK-WRAP-64-PIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill174; NO-SHRINK-WRAP-64-PIC-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill175; NO-SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 31, -8176; NO-SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 28, -16177; NO-SHRINK-WRAP-64-PIC-NEXT:    lui $1, %hi(%neg(%gp_rel(foo)))178; NO-SHRINK-WRAP-64-PIC-NEXT:    beqz $4, .LBB0_2179; NO-SHRINK-WRAP-64-PIC-NEXT:    daddu $2, $1, $25180; NO-SHRINK-WRAP-64-PIC-NEXT:  # %bb.1: # %if.end181; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $gp, $2, %lo(%neg(%gp_rel(foo)))182; NO-SHRINK-WRAP-64-PIC-NEXT:    ld $25, %call16(f)($gp)183; NO-SHRINK-WRAP-64-PIC-NEXT:    jalr $25184; NO-SHRINK-WRAP-64-PIC-NEXT:    addiu $4, $4, 1185; NO-SHRINK-WRAP-64-PIC-NEXT:  .LBB0_2: # %return186; NO-SHRINK-WRAP-64-PIC-NEXT:    addiu $2, $zero, 0187; NO-SHRINK-WRAP-64-PIC-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload188; NO-SHRINK-WRAP-64-PIC-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload189; NO-SHRINK-WRAP-64-PIC-NEXT:    jr $ra190; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, 16191entry:192  %cmp = icmp eq i32 %a, 0193  br i1 %cmp, label %return, label %if.end194 195if.end:196  %add = add nsw i32 %a, 1197  tail call void @f(i32 signext %add)198  br label %return199 200return:201  ret i32 0202}203 204; Test that long branch expansion works correctly with shrink-wrapping enabled.205define i32 @foo2(i32 signext %a) {206; SHRINK-WRAP-STATIC-LABEL: foo2:207; SHRINK-WRAP-STATIC:       # %bb.0:208; SHRINK-WRAP-STATIC-NEXT:    addiu $1, $zero, 4209; SHRINK-WRAP-STATIC-NEXT:    bne $4, $1, $BB1_2210; SHRINK-WRAP-STATIC-NEXT:    nop211; SHRINK-WRAP-STATIC-NEXT:  # %bb.1:212; SHRINK-WRAP-STATIC-NEXT:    j $BB1_3213; SHRINK-WRAP-STATIC-NEXT:    nop214; SHRINK-WRAP-STATIC-NEXT:  $BB1_2: # %if.then215; SHRINK-WRAP-STATIC-NEXT:    addiu $sp, $sp, -24216; SHRINK-WRAP-STATIC-NEXT:    .cfi_def_cfa_offset 24217; SHRINK-WRAP-STATIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill218; SHRINK-WRAP-STATIC-NEXT:    .cfi_offset 31, -4219; SHRINK-WRAP-STATIC-NEXT:    #APP220;221; NO-SHRINK-WRAP-STATIC-LABEL: foo2:222; NO-SHRINK-WRAP-STATIC:       # %bb.0:223; NO-SHRINK-WRAP-STATIC-NEXT:    addiu $sp, $sp, -24224; NO-SHRINK-WRAP-STATIC-NEXT:    .cfi_def_cfa_offset 24225; NO-SHRINK-WRAP-STATIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill226; NO-SHRINK-WRAP-STATIC-NEXT:    .cfi_offset 31, -4227; NO-SHRINK-WRAP-STATIC-NEXT:    addiu $1, $zero, 4228; NO-SHRINK-WRAP-STATIC-NEXT:    bne $4, $1, $BB1_2229; NO-SHRINK-WRAP-STATIC-NEXT:    nop230; NO-SHRINK-WRAP-STATIC-NEXT:  # %bb.1:231; NO-SHRINK-WRAP-STATIC-NEXT:    j $BB1_3232; NO-SHRINK-WRAP-STATIC-NEXT:    nop233; NO-SHRINK-WRAP-STATIC-NEXT:  $BB1_2: # %if.then234; NO-SHRINK-WRAP-STATIC-NEXT:    #APP235;236; SHRINK-WRAP-PIC-LABEL: foo2:237; SHRINK-WRAP-PIC:       # %bb.0:238; SHRINK-WRAP-PIC-NEXT:    lui $2, %hi(_gp_disp)239; SHRINK-WRAP-PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)240; SHRINK-WRAP-PIC-NEXT:    addiu $1, $zero, 4241; SHRINK-WRAP-PIC-NEXT:    bne $4, $1, $BB1_3242; SHRINK-WRAP-PIC-NEXT:    addu $gp, $2, $25243; SHRINK-WRAP-PIC-NEXT:  # %bb.1:244; SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, -8245; SHRINK-WRAP-PIC-NEXT:    sw $ra, 0($sp)246; SHRINK-WRAP-PIC-NEXT:    lui $1, %hi($BB1_4-$BB1_2)247; SHRINK-WRAP-PIC-NEXT:    bal $BB1_2248; SHRINK-WRAP-PIC-NEXT:    addiu $1, $1, %lo($BB1_4-$BB1_2)249; SHRINK-WRAP-PIC-NEXT:  $BB1_2:250; SHRINK-WRAP-PIC-NEXT:    addu $1, $ra, $1251; SHRINK-WRAP-PIC-NEXT:    lw $ra, 0($sp)252; SHRINK-WRAP-PIC-NEXT:    jr $1253; SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, 8254; SHRINK-WRAP-PIC-NEXT:  $BB1_3: # %if.then255; SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, -24256; SHRINK-WRAP-PIC-NEXT:    .cfi_def_cfa_offset 24257; SHRINK-WRAP-PIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill258; SHRINK-WRAP-PIC-NEXT:    .cfi_offset 31, -4259; SHRINK-WRAP-PIC-NEXT:    #APP260;261; NO-SHRINK-WRAP-PIC-LABEL: foo2:262; NO-SHRINK-WRAP-PIC:       # %bb.0:263; NO-SHRINK-WRAP-PIC-NEXT:    lui $2, %hi(_gp_disp)264; NO-SHRINK-WRAP-PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)265; NO-SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, -24266; NO-SHRINK-WRAP-PIC-NEXT:    .cfi_def_cfa_offset 24267; NO-SHRINK-WRAP-PIC-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill268; NO-SHRINK-WRAP-PIC-NEXT:    .cfi_offset 31, -4269; NO-SHRINK-WRAP-PIC-NEXT:    addiu $1, $zero, 4270; NO-SHRINK-WRAP-PIC-NEXT:    bne $4, $1, $BB1_3271; NO-SHRINK-WRAP-PIC-NEXT:    addu $gp, $2, $25272; NO-SHRINK-WRAP-PIC-NEXT:  # %bb.1:273; NO-SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, -8274; NO-SHRINK-WRAP-PIC-NEXT:    sw $ra, 0($sp)275; NO-SHRINK-WRAP-PIC-NEXT:    lui $1, %hi($BB1_4-$BB1_2)276; NO-SHRINK-WRAP-PIC-NEXT:    bal $BB1_2277; NO-SHRINK-WRAP-PIC-NEXT:    addiu $1, $1, %lo($BB1_4-$BB1_2)278; NO-SHRINK-WRAP-PIC-NEXT:  $BB1_2:279; NO-SHRINK-WRAP-PIC-NEXT:    addu $1, $ra, $1280; NO-SHRINK-WRAP-PIC-NEXT:    lw $ra, 0($sp)281; NO-SHRINK-WRAP-PIC-NEXT:    jr $1282; NO-SHRINK-WRAP-PIC-NEXT:    addiu $sp, $sp, 8283; NO-SHRINK-WRAP-PIC-NEXT:  $BB1_3: # %if.then284; NO-SHRINK-WRAP-PIC-NEXT:    #APP285;286; SHRINK-WRAP-64-STATIC-LABEL: foo2:287; SHRINK-WRAP-64-STATIC:       # %bb.0:288; SHRINK-WRAP-64-STATIC-NEXT:    addiu $1, $zero, 4289; SHRINK-WRAP-64-STATIC-NEXT:    bne $4, $1, .LBB1_2290; SHRINK-WRAP-64-STATIC-NEXT:    nop291; SHRINK-WRAP-64-STATIC-NEXT:  # %bb.1:292; SHRINK-WRAP-64-STATIC-NEXT:    j .LBB1_3293; SHRINK-WRAP-64-STATIC-NEXT:    nop294; SHRINK-WRAP-64-STATIC-NEXT:  .LBB1_2: # %if.then295; SHRINK-WRAP-64-STATIC-NEXT:    daddiu $sp, $sp, -16296; SHRINK-WRAP-64-STATIC-NEXT:    .cfi_def_cfa_offset 16297; SHRINK-WRAP-64-STATIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill298; SHRINK-WRAP-64-STATIC-NEXT:    .cfi_offset 31, -8299; SHRINK-WRAP-64-STATIC-NEXT:    sll $4, $4, 0300; SHRINK-WRAP-64-STATIC-NEXT:    #APP301;302; NO-SHRINK-WRAP-64-STATIC-LABEL: foo2:303; NO-SHRINK-WRAP-64-STATIC:       # %bb.0:304; NO-SHRINK-WRAP-64-STATIC-NEXT:    daddiu $sp, $sp, -16305; NO-SHRINK-WRAP-64-STATIC-NEXT:    .cfi_def_cfa_offset 16306; NO-SHRINK-WRAP-64-STATIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill307; NO-SHRINK-WRAP-64-STATIC-NEXT:    .cfi_offset 31, -8308; NO-SHRINK-WRAP-64-STATIC-NEXT:    addiu $1, $zero, 4309; NO-SHRINK-WRAP-64-STATIC-NEXT:    bne $4, $1, .LBB1_2310; NO-SHRINK-WRAP-64-STATIC-NEXT:    nop311; NO-SHRINK-WRAP-64-STATIC-NEXT:  # %bb.1:312; NO-SHRINK-WRAP-64-STATIC-NEXT:    j .LBB1_3313; NO-SHRINK-WRAP-64-STATIC-NEXT:    nop314; NO-SHRINK-WRAP-64-STATIC-NEXT:  .LBB1_2: # %if.then315; NO-SHRINK-WRAP-64-STATIC-NEXT:    sll $4, $4, 0316; NO-SHRINK-WRAP-64-STATIC-NEXT:    #APP317;318; SHRINK-WRAP-64-PIC-LABEL: foo2:319; SHRINK-WRAP-64-PIC:       # %bb.0:320; SHRINK-WRAP-64-PIC-NEXT:    lui $1, %hi(%neg(%gp_rel(foo2)))321; SHRINK-WRAP-64-PIC-NEXT:    daddu $2, $1, $25322; SHRINK-WRAP-64-PIC-NEXT:    addiu $1, $zero, 4323; SHRINK-WRAP-64-PIC-NEXT:    bne $4, $1, .LBB1_3324; SHRINK-WRAP-64-PIC-NEXT:    nop325; SHRINK-WRAP-64-PIC-NEXT:  # %bb.1:326; SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, -16327; SHRINK-WRAP-64-PIC-NEXT:    sd $ra, 0($sp)328; SHRINK-WRAP-64-PIC-NEXT:    daddiu $1, $zero, %hi(.LBB1_4-.LBB1_2)329; SHRINK-WRAP-64-PIC-NEXT:    dsll $1, $1, 16330; SHRINK-WRAP-64-PIC-NEXT:    bal .LBB1_2331; SHRINK-WRAP-64-PIC-NEXT:    daddiu $1, $1, %lo(.LBB1_4-.LBB1_2)332; SHRINK-WRAP-64-PIC-NEXT:  .LBB1_2:333; SHRINK-WRAP-64-PIC-NEXT:    daddu $1, $ra, $1334; SHRINK-WRAP-64-PIC-NEXT:    ld $ra, 0($sp)335; SHRINK-WRAP-64-PIC-NEXT:    jr $1336; SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, 16337; SHRINK-WRAP-64-PIC-NEXT:  .LBB1_3: # %if.then338; SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, -16339; SHRINK-WRAP-64-PIC-NEXT:    .cfi_def_cfa_offset 16340; SHRINK-WRAP-64-PIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill341; SHRINK-WRAP-64-PIC-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill342; SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 31, -8343; SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 28, -16344; SHRINK-WRAP-64-PIC-NEXT:    daddiu $gp, $2, %lo(%neg(%gp_rel(foo2)))345; SHRINK-WRAP-64-PIC-NEXT:    sll $4, $4, 0346; SHRINK-WRAP-64-PIC-NEXT:    #APP347;348; NO-SHRINK-WRAP-64-PIC-LABEL: foo2:349; NO-SHRINK-WRAP-64-PIC:       # %bb.0:350; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, -16351; NO-SHRINK-WRAP-64-PIC-NEXT:    .cfi_def_cfa_offset 16352; NO-SHRINK-WRAP-64-PIC-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill353; NO-SHRINK-WRAP-64-PIC-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill354; NO-SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 31, -8355; NO-SHRINK-WRAP-64-PIC-NEXT:    .cfi_offset 28, -16356; NO-SHRINK-WRAP-64-PIC-NEXT:    lui $1, %hi(%neg(%gp_rel(foo2)))357; NO-SHRINK-WRAP-64-PIC-NEXT:    daddu $2, $1, $25358; NO-SHRINK-WRAP-64-PIC-NEXT:    addiu $1, $zero, 4359; NO-SHRINK-WRAP-64-PIC-NEXT:    bne $4, $1, .LBB1_3360; NO-SHRINK-WRAP-64-PIC-NEXT:    nop361; NO-SHRINK-WRAP-64-PIC-NEXT:  # %bb.1:362; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, -16363; NO-SHRINK-WRAP-64-PIC-NEXT:    sd $ra, 0($sp)364; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $1, $zero, %hi(.LBB1_4-.LBB1_2)365; NO-SHRINK-WRAP-64-PIC-NEXT:    dsll $1, $1, 16366; NO-SHRINK-WRAP-64-PIC-NEXT:    bal .LBB1_2367; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $1, $1, %lo(.LBB1_4-.LBB1_2)368; NO-SHRINK-WRAP-64-PIC-NEXT:  .LBB1_2:369; NO-SHRINK-WRAP-64-PIC-NEXT:    daddu $1, $ra, $1370; NO-SHRINK-WRAP-64-PIC-NEXT:    ld $ra, 0($sp)371; NO-SHRINK-WRAP-64-PIC-NEXT:    jr $1372; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $sp, $sp, 16373; NO-SHRINK-WRAP-64-PIC-NEXT:  .LBB1_3: # %if.then374; NO-SHRINK-WRAP-64-PIC-NEXT:    daddiu $gp, $2, %lo(%neg(%gp_rel(foo2)))375; NO-SHRINK-WRAP-64-PIC-NEXT:    sll $4, $4, 0376; NO-SHRINK-WRAP-64-PIC-NEXT:    #APP377  %1 = icmp ne i32 %a, 4378  br i1 %1, label %if.then, label %if.end379 380if.then:381  call void asm sideeffect ".space 1048576", "~{$1}"()382  call void @f(i32 signext %a)383  br label %if.end384 385if.end:386  ret i32 0387}388