196 lines · plain
1; RUN: llc -relocation-model=pic -mtriple=mipsel -mcpu=mips64r6 \2; RUN: -disable-mips-delay-filler -target-abi=n64 < %s | FileCheck %s3 4; Function Attrs: nounwind5define void @l() {6entry:7; CHECK-LABEL: l:8; CHECK: jalrc $259 %call = tail call i64 @k()10; CHECK: jalrc $2511 %call1 = tail call i64 @j()12 %cmp = icmp eq i64 %call, %call113; CHECK: bnec14 br i1 %cmp, label %if.then, label %if.end15 16if.then: ; preds = %entry:17; CHECK: jalrc $2518 tail call void @f(i64 signext -2)19 br label %if.end20 21if.end: ; preds = %if.then, %entry22; CHECK: jrc $ra23 ret void24}25 26declare i64 @k()27 28declare i64 @j()29 30declare void @f(i64 signext)31 32; Function Attrs: define void @l2() {33define void @l2() {34entry:35; CHECK-LABEL: l2:36; CHECK: jalrc $2537 %call = tail call i64 @k()38; CHECK: jalrc $2539 %call1 = tail call i64 @i()40 %cmp = icmp eq i64 %call, %call141; CHECK: beqc42 br i1 %cmp, label %if.end, label %if.then43 44if.then: ; preds = %entry:45; CHECK: jalrc $2546 tail call void @f(i64 signext -1)47 br label %if.end48 49if.end: ; preds = %entry, %if.then50; CHECK: jrc $ra51 ret void52}53 54declare i64 @i()55 56; Function Attrs: nounwind57define void @l3() {58entry:59; CHECK-LABEL: l3:60; CHECK: jalrc $2561 %call = tail call i64 @k()62 %cmp = icmp slt i64 %call, 063; CHECK: bgez64 br i1 %cmp, label %if.then, label %if.end65 66if.then: ; preds = %entry:67; CHECK: jalrc $2568 tail call void @f(i64 signext 0)69 br label %if.end70 71if.end: ; preds = %if.then, %entry72; CHECK: jrc $ra73 ret void74}75 76; Function Attrs: nounwind77define void @l4() {78entry:79; CHECK-LABEL: l4:80; CHECK: jalrc $2581 %call = tail call i64 @k()82 %cmp = icmp slt i64 %call, 183; CHECK: bgtzc84 br i1 %cmp, label %if.then, label %if.end85 86if.then: ; preds = %entry:87 tail call void @f(i64 signext 1)88 br label %if.end89 90if.end: ; preds = %if.then, %entry91; CHECK: jrc $ra92 ret void93}94 95; Function Attrs: nounwind96define void @l5() {97entry:98; CHECK-LABEL: l5:99; CHECK: jalrc $25100 %call = tail call i64 @k()101 %cmp = icmp sgt i64 %call, 0102; CHECK: blezc103 br i1 %cmp, label %if.then, label %if.end104 105if.then: ; preds = %entry:106; CHECK: jalrc $25107 tail call void @f(i64 signext 2)108 br label %if.end109 110if.end: ; preds = %if.then, %entry111; CHECK: jrc $ra112 ret void113}114 115; Function Attrs: nounwind116define void @l6() {117entry:118; CHECK-LABEL: l6:119; CHECK: jalrc $25120 %call = tail call i64 @k()121 %cmp = icmp sgt i64 %call, -1122; CHECK: bltzc123 br i1 %cmp, label %if.then, label %if.end124 125if.then: ; preds = %entry:126; CHECK: jalrc $25127 tail call void @f(i64 signext 3)128 br label %if.end129 130if.end: ; preds = %if.then, %entry131; CHECK: jrc $ra132 ret void133}134 135; Function Attrs: nounwind136define void @l7() {137entry:138; CHECK-LABEL: l7:139; CHECK: jalrc $25140 %call = tail call i64 @k()141 %cmp = icmp eq i64 %call, 0142; CHECK: bnezc143 br i1 %cmp, label %if.then, label %if.end144 145if.then: ; preds = %entry:146; CHECK: jalrc $25147 tail call void @f(i64 signext 4)148 br label %if.end149 150if.end: ; preds = %if.then, %entry151; CHECK: jrc $ra152 ret void153}154 155; Function Attrs: nounwind156define void @l8() {157entry:158; CHECK-LABEL: l8:159; CHECK: jalrc $25160 %call = tail call i64 @k()161 %cmp = icmp eq i64 %call, 0162; CHECK: beqzc163 br i1 %cmp, label %if.end, label %if.then164 165if.then: ; preds = %entry:166; CHECK: jalrc $25167 tail call void @f(i64 signext 5)168 br label %if.end169 170if.end: ; preds = %entry, %if.then171; CHECK: jrc $ra172 ret void173}174 175define i64 @l9(ptr %i) {176entry:177; CHECK-LABEL: l9:178 %i.addr = alloca ptr, align 4179 store ptr %i, ptr %i.addr, align 4180; CHECK: jalrc $25181 %call = call i64 @k()182 %cmp = icmp ne i64 %call, 0183; CHECK: beqzc184 br i1 %cmp, label %if.then, label %if.end185 186if.then: ; preds = %entry187 %0 = load ptr, ptr %i.addr, align 4188; CHECK: jalrc $25189 %call1 = call ptr %0()190 br label %if.end191 192if.end: ; preds = %if.then, %entry193; CHECK: jrc $ra194 ret i64 -1195}196