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