1; RUN: llc < %s -march=mipsel | FileCheck %s 2 3define void @func0(float %f2, float %f3) nounwind { 4entry: 5; CHECK: c.eq.s 6; CHECK: bc1f 7 %cmp = fcmp oeq float %f2, %f3 8 br i1 %cmp, label %if.then, label %if.else 9 10if.then: ; preds = %entry 11 tail call void (...)* @g0() nounwind 12 br label %if.end 13 14if.else: ; preds = %entry 15 tail call void (...)* @g1() nounwind 16 br label %if.end 17 18if.end: ; preds = %if.else, %if.then 19 ret void 20} 21 22declare void @g0(...) 23 24declare void @g1(...) 25 26define void @func1(float %f2, float %f3) nounwind { 27entry: 28; CHECK: c.olt.s 29; CHECK: bc1f 30 %cmp = fcmp olt float %f2, %f3 31 br i1 %cmp, label %if.then, label %if.else 32 33if.then: ; preds = %entry 34 tail call void (...)* @g0() nounwind 35 br label %if.end 36 37if.else: ; preds = %entry 38 tail call void (...)* @g1() nounwind 39 br label %if.end 40 41if.end: ; preds = %if.else, %if.then 42 ret void 43} 44 45define void @func2(float %f2, float %f3) nounwind { 46entry: 47; CHECK: c.ole.s 48; CHECK: bc1t 49 %cmp = fcmp ugt float %f2, %f3 50 br i1 %cmp, label %if.else, label %if.then 51 52if.then: ; preds = %entry 53 tail call void (...)* @g0() nounwind 54 br label %if.end 55 56if.else: ; preds = %entry 57 tail call void (...)* @g1() nounwind 58 br label %if.end 59 60if.end: ; preds = %if.else, %if.then 61 ret void 62} 63 64define void @func3(double %f2, double %f3) nounwind { 65entry: 66; CHECK: c.eq.d 67; CHECK: bc1f 68 %cmp = fcmp oeq double %f2, %f3 69 br i1 %cmp, label %if.then, label %if.else 70 71if.then: ; preds = %entry 72 tail call void (...)* @g0() nounwind 73 br label %if.end 74 75if.else: ; preds = %entry 76 tail call void (...)* @g1() nounwind 77 br label %if.end 78 79if.end: ; preds = %if.else, %if.then 80 ret void 81} 82 83define void @func4(double %f2, double %f3) nounwind { 84entry: 85; CHECK: c.olt.d 86; CHECK: bc1f 87 %cmp = fcmp olt double %f2, %f3 88 br i1 %cmp, label %if.then, label %if.else 89 90if.then: ; preds = %entry 91 tail call void (...)* @g0() nounwind 92 br label %if.end 93 94if.else: ; preds = %entry 95 tail call void (...)* @g1() nounwind 96 br label %if.end 97 98if.end: ; preds = %if.else, %if.then 99 ret void 100} 101 102define void @func5(double %f2, double %f3) nounwind { 103entry: 104; CHECK: c.ole.d 105; CHECK: bc1t 106 %cmp = fcmp ugt double %f2, %f3 107 br i1 %cmp, label %if.else, label %if.then 108 109if.then: ; preds = %entry 110 tail call void (...)* @g0() nounwind 111 br label %if.end 112 113if.else: ; preds = %entry 114 tail call void (...)* @g1() nounwind 115 br label %if.end 116 117if.end: ; preds = %if.else, %if.then 118 ret void 119} 120