144 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2 3; Test that blez/ bgez are selected.4; RUN: llc -mtriple=mipsel-mti-linux-gnu < %s | FileCheck %s --check-prefix=MIPS325; RUN: llc -mtriple=mips64el-mti-linux-gnu < %s | FileCheck %s --check-prefix=MIPS646; RUN: llc -mtriple=mipsel-mti-linux-gnu -mattr=+micromips < %s | FileCheck %s --check-prefix=MM7 8define void @test_blez(i32 %a) {9; MIPS32-LABEL: test_blez:10; MIPS32: # %bb.0: # %entry11; MIPS32-NEXT: blez $4, $BB0_212; MIPS32-NEXT: nop13; MIPS32-NEXT: # %bb.1: # %if.then14; MIPS32-NEXT: addiu $sp, $sp, -2415; MIPS32-NEXT: .cfi_def_cfa_offset 2416; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill17; MIPS32-NEXT: .cfi_offset 31, -418; MIPS32-NEXT: jal foo119; MIPS32-NEXT: nop20; MIPS32-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload21; MIPS32-NEXT: addiu $sp, $sp, 2422; MIPS32-NEXT: $BB0_2: # %if.end23; MIPS32-NEXT: jr $ra24; MIPS32-NEXT: nop25;26; MIPS64-LABEL: test_blez:27; MIPS64: # %bb.0: # %entry28; MIPS64-NEXT: sll $1, $4, 029; MIPS64-NEXT: blez $1, .LBB0_230; MIPS64-NEXT: nop31; MIPS64-NEXT: # %bb.1: # %if.then32; MIPS64-NEXT: daddiu $sp, $sp, -1633; MIPS64-NEXT: .cfi_def_cfa_offset 1634; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill35; MIPS64-NEXT: .cfi_offset 31, -836; MIPS64-NEXT: jal foo137; MIPS64-NEXT: nop38; MIPS64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload39; MIPS64-NEXT: daddiu $sp, $sp, 1640; MIPS64-NEXT: .LBB0_2: # %if.end41; MIPS64-NEXT: jr $ra42; MIPS64-NEXT: nop43;44; MM-LABEL: test_blez:45; MM: # %bb.0: # %entry46; MM-NEXT: blez $4, $BB0_347; MM-NEXT: nop48; MM-NEXT: # %bb.1: # %entry49; MM-NEXT: j $BB0_250; MM-NEXT: nop51; MM-NEXT: $BB0_2: # %if.then52; MM-NEXT: addiu $sp, $sp, -2453; MM-NEXT: .cfi_def_cfa_offset 2454; MM-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill55; MM-NEXT: .cfi_offset 31, -456; MM-NEXT: jal foo157; MM-NEXT: nop58; MM-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload59; MM-NEXT: addiu $sp, $sp, 2460; MM-NEXT: $BB0_3: # %if.end61; MM-NEXT: jrc $ra62entry:63 %cmp = icmp sgt i32 %a, 064 br i1 %cmp, label %if.then, label %if.end65 66if.then:67 tail call void @foo1()68 br label %if.end69 70if.end:71 ret void72}73 74declare void @foo1()75 76define void @test_bgez(i32 %a) {77; MIPS32-LABEL: test_bgez:78; MIPS32: # %bb.0: # %entry79; MIPS32-NEXT: bltz $4, $BB1_280; MIPS32-NEXT: nop81; MIPS32-NEXT: # %bb.1: # %if.end82; MIPS32-NEXT: jr $ra83; MIPS32-NEXT: nop84; MIPS32-NEXT: $BB1_2: # %if.then85; MIPS32-NEXT: addiu $sp, $sp, -2486; MIPS32-NEXT: .cfi_def_cfa_offset 2487; MIPS32-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill88; MIPS32-NEXT: .cfi_offset 31, -489; MIPS32-NEXT: jal foo190; MIPS32-NEXT: nop91; MIPS32-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload92; MIPS32-NEXT: jr $ra93; MIPS32-NEXT: addiu $sp, $sp, 2494;95; MIPS64-LABEL: test_bgez:96; MIPS64: # %bb.0: # %entry97; MIPS64-NEXT: sll $1, $4, 098; MIPS64-NEXT: bltz $1, .LBB1_299; MIPS64-NEXT: nop100; MIPS64-NEXT: # %bb.1: # %if.end101; MIPS64-NEXT: jr $ra102; MIPS64-NEXT: nop103; MIPS64-NEXT: .LBB1_2: # %if.then104; MIPS64-NEXT: daddiu $sp, $sp, -16105; MIPS64-NEXT: .cfi_def_cfa_offset 16106; MIPS64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill107; MIPS64-NEXT: .cfi_offset 31, -8108; MIPS64-NEXT: jal foo1109; MIPS64-NEXT: nop110; MIPS64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload111; MIPS64-NEXT: jr $ra112; MIPS64-NEXT: daddiu $sp, $sp, 16113;114; MM-LABEL: test_bgez:115; MM: # %bb.0: # %entry116; MM-NEXT: bgez $4, $BB1_2117; MM-NEXT: nop118; MM-NEXT: # %bb.1: # %entry119; MM-NEXT: j $BB1_3120; MM-NEXT: nop121; MM-NEXT: $BB1_2: # %if.end122; MM-NEXT: jrc $ra123; MM-NEXT: $BB1_3: # %if.then124; MM-NEXT: addiu $sp, $sp, -24125; MM-NEXT: .cfi_def_cfa_offset 24126; MM-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill127; MM-NEXT: .cfi_offset 31, -4128; MM-NEXT: jal foo1129; MM-NEXT: nop130; MM-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload131; MM-NEXT: jr $ra132; MM-NEXT: addiu $sp, $sp, 24133entry:134 %cmp = icmp slt i32 %a, 0135 br i1 %cmp, label %if.then, label %if.end136 137if.then:138 tail call void @foo1()139 br label %if.end140 141if.end:142 ret void143}144