brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.6 KiB · 3e9be39 Raw
285 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=mipsel-unknown-linux-gnu -O3 -relocation-model=pic < %s \3; RUN:   | FileCheck %s -check-prefix=NOLONGBRANCH4 5; RUN: llc -mtriple=mipsel-unknown-linux-gnu -force-mips-long-branch -O3 -relocation-model=pic < %s \6; RUN:   | FileCheck %s -check-prefix=O32-PIC7; RUN: llc -mtriple=mipsel-unknown-linux-gnu -force-mips-long-branch -O3 -relocation-model=static < %s \8; RUN:   | FileCheck %s -check-prefix=O32-STATIC9; RUN: llc -mtriple=mipsel-unknown-linux-gnu -mcpu=mips32r6 -force-mips-long-branch -O3 \10; RUN:   -relocation-model=pic < %s | FileCheck %s -check-prefix=O32-R6-PIC11 12; RUN: llc -mtriple=mips64el-unknown-linux-gnu -mcpu=mips4 -target-abi=n64 -force-mips-long-branch -O3 -relocation-model=pic \13; RUN:   < %s | FileCheck %s -check-prefix=MIPS414; RUN: llc -mtriple=mips64el-unknown-linux-gnu -mcpu=mips64 -target-abi=n64 -force-mips-long-branch -O3 -relocation-model=pic \15; RUN:   < %s | FileCheck %s -check-prefix=MIPS6416; RUN: llc -mtriple=mips64el-unknown-linux-gnu -mcpu=mips64r6 -target-abi=n64 -force-mips-long-branch -O3 \17; RUN:   -relocation-model=pic < %s | FileCheck %s -check-prefix=N64-R618 19; RUN: llc -mtriple=mipsel-unknown-linux-gnu -mcpu=mips32r2 -mattr=micromips \20; RUN:   -force-mips-long-branch -O3 -relocation-model=pic < %s | FileCheck %s -check-prefix=MICROMIPS21; RUN: llc -mtriple=mipsel-unknown-linux-gnu -mcpu=mips32r2 -mattr=micromips \22; RUN:   -force-mips-long-branch -O3 -relocation-model=static < %s | FileCheck %s -check-prefix=MICROMIPSSTATIC23 24; RUN: llc -mtriple=mipsel-unknown-linux-gnu -mcpu=mips32r6 -mattr=micromips \25; RUN:   -force-mips-long-branch -O3 -relocation-model=static < %s | FileCheck %s -check-prefix=MICROMIPSR6STATIC26; RUN: llc -mtriple=mipsel-unknown-linux-gnu -mcpu=mips32r6 -mattr=micromips \27; RUN:   -force-mips-long-branch -O3 -relocation-model=pic < %s | FileCheck %s -check-prefix=MICROMIPSR6PIC28 29@x = external global i3230 31define void @test1(i32 signext %s) {32; NOLONGBRANCH-LABEL: test1:33; NOLONGBRANCH:       # %bb.0: # %entry34; NOLONGBRANCH-NEXT:    lui $2, %hi(_gp_disp)35; NOLONGBRANCH-NEXT:    addiu $2, $2, %lo(_gp_disp)36; NOLONGBRANCH-NEXT:    beqz $4, $BB0_237; NOLONGBRANCH-NEXT:    addu $2, $2, $2538; NOLONGBRANCH-NEXT:  # %bb.1: # %then39; NOLONGBRANCH-NEXT:    lw $1, %got(x)($2)40; NOLONGBRANCH-NEXT:    addiu $2, $zero, 141; NOLONGBRANCH-NEXT:    sw $2, 0($1)42; NOLONGBRANCH-NEXT:  $BB0_2: # %end43; NOLONGBRANCH-NEXT:    jr $ra44; NOLONGBRANCH-NEXT:    nop45;46; O32-PIC-LABEL: test1:47; O32-PIC:       # %bb.0: # %entry48; O32-PIC-NEXT:    lui $2, %hi(_gp_disp)49; O32-PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)50; O32-PIC-NEXT:    bnez $4, $BB0_351; O32-PIC-NEXT:    addu $2, $2, $2552; O32-PIC-NEXT:  # %bb.1: # %entry53; O32-PIC-NEXT:    addiu $sp, $sp, -854; O32-PIC-NEXT:    sw $ra, 0($sp)55; O32-PIC-NEXT:    lui $1, %hi($BB0_4-$BB0_2)56; O32-PIC-NEXT:    bal $BB0_257; O32-PIC-NEXT:    addiu $1, $1, %lo($BB0_4-$BB0_2)58; O32-PIC-NEXT:  $BB0_2: # %entry59; O32-PIC-NEXT:    addu $1, $ra, $160; O32-PIC-NEXT:    lw $ra, 0($sp)61; O32-PIC-NEXT:    jr $162; O32-PIC-NEXT:    addiu $sp, $sp, 863; O32-PIC-NEXT:  $BB0_3: # %then64; O32-PIC-NEXT:    lw $1, %got(x)($2)65; O32-PIC-NEXT:    addiu $2, $zero, 166; O32-PIC-NEXT:    sw $2, 0($1)67; O32-PIC-NEXT:  $BB0_4: # %end68; O32-PIC-NEXT:    jr $ra69; O32-PIC-NEXT:    nop70;71; O32-STATIC-LABEL: test1:72; O32-STATIC:       # %bb.0: # %entry73; O32-STATIC-NEXT:    bnez $4, $BB0_274; O32-STATIC-NEXT:    nop75; O32-STATIC-NEXT:  # %bb.1: # %entry76; O32-STATIC-NEXT:    j $BB0_377; O32-STATIC-NEXT:    nop78; O32-STATIC-NEXT:  $BB0_2: # %then79; O32-STATIC-NEXT:    lui $1, %hi(x)80; O32-STATIC-NEXT:    addiu $2, $zero, 181; O32-STATIC-NEXT:    sw $2, %lo(x)($1)82; O32-STATIC-NEXT:  $BB0_3: # %end83; O32-STATIC-NEXT:    jr $ra84; O32-STATIC-NEXT:    nop85;86; O32-R6-PIC-LABEL: test1:87; O32-R6-PIC:       # %bb.0: # %entry88; O32-R6-PIC-NEXT:    lui $2, %hi(_gp_disp)89; O32-R6-PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)90; O32-R6-PIC-NEXT:    bnez $4, $BB0_391; O32-R6-PIC-NEXT:    addu $2, $2, $2592; O32-R6-PIC-NEXT:  # %bb.1: # %entry93; O32-R6-PIC-NEXT:    addiu $sp, $sp, -894; O32-R6-PIC-NEXT:    sw $ra, 0($sp)95; O32-R6-PIC-NEXT:    lui $1, %hi($BB0_4-$BB0_2)96; O32-R6-PIC-NEXT:    addiu $1, $1, %lo($BB0_4-$BB0_2)97; O32-R6-PIC-NEXT:    balc $BB0_298; O32-R6-PIC-NEXT:  $BB0_2: # %entry99; O32-R6-PIC-NEXT:    addu $1, $ra, $1100; O32-R6-PIC-NEXT:    lw $ra, 0($sp)101; O32-R6-PIC-NEXT:    addiu $sp, $sp, 8102; O32-R6-PIC-NEXT:    jrc $1103; O32-R6-PIC-NEXT:  $BB0_3: # %then104; O32-R6-PIC-NEXT:    lw $1, %got(x)($2)105; O32-R6-PIC-NEXT:    addiu $2, $zero, 1106; O32-R6-PIC-NEXT:    sw $2, 0($1)107; O32-R6-PIC-NEXT:  $BB0_4: # %end108; O32-R6-PIC-NEXT:    jrc $ra109;110; O32-R6-STATIC-LABEL: test1:111; O32-R6-STATIC:       # %bb.0: # %entry112; O32-R6-STATIC-NEXT:    bnezc $4, $BB0_2113; O32-R6-STATIC-NEXT:    nop114; O32-R6-STATIC-NEXT:  # %bb.1: # %entry115; O32-R6-STATIC-NEXT:    bc $BB0_3116; O32-R6-STATIC-NEXT:  $BB0_2: # %then117; O32-R6-STATIC-NEXT:    lui $1, %hi(x)118; O32-R6-STATIC-NEXT:    addiu $2, $zero, 1119; O32-R6-STATIC-NEXT:    sw $2, %lo(x)($1)120; O32-R6-STATIC-NEXT:  $BB0_3: # %end121; O32-R6-STATIC-NEXT:    jrc $ra122;123; MIPS4-LABEL: test1:124; MIPS4:       # %bb.0: # %entry125; MIPS4-NEXT:    lui $1, %hi(%neg(%gp_rel(test1)))126; MIPS4-NEXT:    bnez $4, .LBB0_3127; MIPS4-NEXT:    daddu $2, $1, $25128; MIPS4-NEXT:  # %bb.1: # %entry129; MIPS4-NEXT:    daddiu $sp, $sp, -16130; MIPS4-NEXT:    sd $ra, 0($sp)131; MIPS4-NEXT:    daddiu $1, $zero, %hi(.LBB0_4-.LBB0_2)132; MIPS4-NEXT:    dsll $1, $1, 16133; MIPS4-NEXT:    bal .LBB0_2134; MIPS4-NEXT:    daddiu $1, $1, %lo(.LBB0_4-.LBB0_2)135; MIPS4-NEXT:  .LBB0_2: # %entry136; MIPS4-NEXT:    daddu $1, $ra, $1137; MIPS4-NEXT:    ld $ra, 0($sp)138; MIPS4-NEXT:    jr $1139; MIPS4-NEXT:    daddiu $sp, $sp, 16140; MIPS4-NEXT:  .LBB0_3: # %then141; MIPS4-NEXT:    daddiu $1, $2, %lo(%neg(%gp_rel(test1)))142; MIPS4-NEXT:    addiu $2, $zero, 1143; MIPS4-NEXT:    ld $1, %got_disp(x)($1)144; MIPS4-NEXT:    sw $2, 0($1)145; MIPS4-NEXT:  .LBB0_4: # %end146; MIPS4-NEXT:    jr $ra147; MIPS4-NEXT:    nop148;149; MIPS64-LABEL: test1:150; MIPS64:       # %bb.0: # %entry151; MIPS64-NEXT:    lui $1, %hi(%neg(%gp_rel(test1)))152; MIPS64-NEXT:    bnez $4, .LBB0_3153; MIPS64-NEXT:    daddu $2, $1, $25154; MIPS64-NEXT:  # %bb.1: # %entry155; MIPS64-NEXT:    daddiu $sp, $sp, -16156; MIPS64-NEXT:    sd $ra, 0($sp)157; MIPS64-NEXT:    daddiu $1, $zero, %hi(.LBB0_4-.LBB0_2)158; MIPS64-NEXT:    dsll $1, $1, 16159; MIPS64-NEXT:    bal .LBB0_2160; MIPS64-NEXT:    daddiu $1, $1, %lo(.LBB0_4-.LBB0_2)161; MIPS64-NEXT:  .LBB0_2: # %entry162; MIPS64-NEXT:    daddu $1, $ra, $1163; MIPS64-NEXT:    ld $ra, 0($sp)164; MIPS64-NEXT:    jr $1165; MIPS64-NEXT:    daddiu $sp, $sp, 16166; MIPS64-NEXT:  .LBB0_3: # %then167; MIPS64-NEXT:    daddiu $1, $2, %lo(%neg(%gp_rel(test1)))168; MIPS64-NEXT:    addiu $2, $zero, 1169; MIPS64-NEXT:    ld $1, %got_disp(x)($1)170; MIPS64-NEXT:    sw $2, 0($1)171; MIPS64-NEXT:  .LBB0_4: # %end172; MIPS64-NEXT:    jr $ra173; MIPS64-NEXT:    nop174;175; N64-R6-LABEL: test1:176; N64-R6:       # %bb.0: # %entry177; N64-R6-NEXT:    lui $1, %hi(%neg(%gp_rel(test1)))178; N64-R6-NEXT:    bnez $4, .LBB0_3179; N64-R6-NEXT:    daddu $2, $1, $25180; N64-R6-NEXT:  # %bb.1: # %entry181; N64-R6-NEXT:    daddiu $sp, $sp, -16182; N64-R6-NEXT:    sd $ra, 0($sp)183; N64-R6-NEXT:    daddiu $1, $zero, %hi(.LBB0_4-.LBB0_2)184; N64-R6-NEXT:    dsll $1, $1, 16185; N64-R6-NEXT:    daddiu $1, $1, %lo(.LBB0_4-.LBB0_2)186; N64-R6-NEXT:    balc .LBB0_2187; N64-R6-NEXT:  .LBB0_2: # %entry188; N64-R6-NEXT:    daddu $1, $ra, $1189; N64-R6-NEXT:    ld $ra, 0($sp)190; N64-R6-NEXT:    daddiu $sp, $sp, 16191; N64-R6-NEXT:    jrc $1192; N64-R6-NEXT:  .LBB0_3: # %then193; N64-R6-NEXT:    daddiu $1, $2, %lo(%neg(%gp_rel(test1)))194; N64-R6-NEXT:    addiu $2, $zero, 1195; N64-R6-NEXT:    ld $1, %got_disp(x)($1)196; N64-R6-NEXT:    sw $2, 0($1)197; N64-R6-NEXT:  .LBB0_4: # %end198; N64-R6-NEXT:    jrc $ra199;200; MICROMIPS-LABEL: test1:201; MICROMIPS:       # %bb.0: # %entry202; MICROMIPS-NEXT:    lui $2, %hi(_gp_disp)203; MICROMIPS-NEXT:    addiu $2, $2, %lo(_gp_disp)204; MICROMIPS-NEXT:    bnez $4, $BB0_3205; MICROMIPS-NEXT:    addu $2, $2, $25206; MICROMIPS-NEXT:  # %bb.1: # %entry207; MICROMIPS-NEXT:    addiu $sp, $sp, -8208; MICROMIPS-NEXT:    sw $ra, 0($sp)209; MICROMIPS-NEXT:    lui $1, %hi($BB0_4-$BB0_2)210; MICROMIPS-NEXT:    bal $BB0_2211; MICROMIPS-NEXT:    addiu $1, $1, %lo($BB0_4-$BB0_2)212; MICROMIPS-NEXT:  $BB0_2: # %entry213; MICROMIPS-NEXT:    addu $1, $ra, $1214; MICROMIPS-NEXT:    lw $ra, 0($sp)215; MICROMIPS-NEXT:    jr $1216; MICROMIPS-NEXT:    addiu $sp, $sp, 8217; MICROMIPS-NEXT:  $BB0_3: # %then218; MICROMIPS-NEXT:    lw $2, %got(x)($2)219; MICROMIPS-NEXT:    li16 $3, 1220; MICROMIPS-NEXT:    sw16 $3, 0($2)221; MICROMIPS-NEXT:  $BB0_4: # %end222; MICROMIPS-NEXT:    jrc $ra223;224; MICROMIPSSTATIC-LABEL: test1:225; MICROMIPSSTATIC:       # %bb.0: # %entry226; MICROMIPSSTATIC-NEXT:    bnezc $4, $BB0_2227; MICROMIPSSTATIC-NEXT:  # %bb.1: # %entry228; MICROMIPSSTATIC-NEXT:    j $BB0_3229; MICROMIPSSTATIC-NEXT:    nop230; MICROMIPSSTATIC-NEXT:  $BB0_2: # %then231; MICROMIPSSTATIC-NEXT:    lui $1, %hi(x)232; MICROMIPSSTATIC-NEXT:    li16 $2, 1233; MICROMIPSSTATIC-NEXT:    sw $2, %lo(x)($1)234; MICROMIPSSTATIC-NEXT:  $BB0_3: # %end235; MICROMIPSSTATIC-NEXT:    jrc $ra236;237; MICROMIPSR6STATIC-LABEL: test1:238; MICROMIPSR6STATIC:       # %bb.0: # %entry239; MICROMIPSR6STATIC-NEXT:    bnezc $4, $BB0_2240; MICROMIPSR6STATIC-NEXT:  # %bb.1: # %entry241; MICROMIPSR6STATIC-NEXT:    bc $BB0_3242; MICROMIPSR6STATIC-NEXT:  $BB0_2: # %then243; MICROMIPSR6STATIC-NEXT:    lui $1, %hi(x)244; MICROMIPSR6STATIC-NEXT:    li16 $2, 1245; MICROMIPSR6STATIC-NEXT:    sw $2, %lo(x)($1)246; MICROMIPSR6STATIC-NEXT:  $BB0_3: # %end247; MICROMIPSR6STATIC-NEXT:    jrc $ra248;249; MICROMIPSR6PIC-LABEL: test1:250; MICROMIPSR6PIC:       # %bb.0: # %entry251; MICROMIPSR6PIC-NEXT:    lui $2, %hi(_gp_disp)252; MICROMIPSR6PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)253; MICROMIPSR6PIC-NEXT:    addu $2, $2, $25254; MICROMIPSR6PIC-NEXT:    bnezc $4, $BB0_3255; MICROMIPSR6PIC-NEXT:  # %bb.1: # %entry256; MICROMIPSR6PIC-NEXT:    addiu $sp, $sp, -8257; MICROMIPSR6PIC-NEXT:    sw $ra, 0($sp)258; MICROMIPSR6PIC-NEXT:    lui $1, %hi($BB0_4-$BB0_2)259; MICROMIPSR6PIC-NEXT:    addiu $1, $1, %lo($BB0_4-$BB0_2)260; MICROMIPSR6PIC-NEXT:    balc $BB0_2261; MICROMIPSR6PIC-NEXT:  $BB0_2: # %entry262; MICROMIPSR6PIC-NEXT:    addu $1, $ra, $1263; MICROMIPSR6PIC-NEXT:    lw $ra, 0($sp)264; MICROMIPSR6PIC-NEXT:    addiu $sp, $sp, 8265; MICROMIPSR6PIC-NEXT:    jic $1, 0266; MICROMIPSR6PIC-NEXT:  $BB0_3: # %then267; MICROMIPSR6PIC-NEXT:    lw $2, %got(x)($2)268; MICROMIPSR6PIC-NEXT:    li16 $3, 1269; MICROMIPSR6PIC-NEXT:    sw16 $3, 0($2)270; MICROMIPSR6PIC-NEXT:  $BB0_4: # %end271; MICROMIPSR6PIC-NEXT:    jrc $ra272 273entry:274  %cmp = icmp eq i32 %s, 0275  br i1 %cmp, label %end, label %then276 277then:278  store i32 1, ptr @x, align 4279  br label %end280 281end:282  ret void283 284}285