1 ; RUN: llc < %s -march=mipsel | FileCheck %s 2 3 define void @func0(float %f2, float %f3) nounwind { 4 entry: 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 10 if.then: ; preds = %entry 11 tail call void (...)* @g0() nounwind 12 br label %if.end 13 14 if.else: ; preds = %entry 15 tail call void (...)* @g1() nounwind 16 br label %if.end 17 18 if.end: ; preds = %if.else, %if.then 19 ret void 20 } 21 22 declare void @g0(...) 23 24 declare void @g1(...) 25 26 define void @func1(float %f2, float %f3) nounwind { 27 entry: 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 33 if.then: ; preds = %entry 34 tail call void (...)* @g0() nounwind 35 br label %if.end 36 37 if.else: ; preds = %entry 38 tail call void (...)* @g1() nounwind 39 br label %if.end 40 41 if.end: ; preds = %if.else, %if.then 42 ret void 43 } 44 45 define void @func2(float %f2, float %f3) nounwind { 46 entry: 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 52 if.then: ; preds = %entry 53 tail call void (...)* @g0() nounwind 54 br label %if.end 55 56 if.else: ; preds = %entry 57 tail call void (...)* @g1() nounwind 58 br label %if.end 59 60 if.end: ; preds = %if.else, %if.then 61 ret void 62 } 63 64 define void @func3(double %f2, double %f3) nounwind { 65 entry: 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 71 if.then: ; preds = %entry 72 tail call void (...)* @g0() nounwind 73 br label %if.end 74 75 if.else: ; preds = %entry 76 tail call void (...)* @g1() nounwind 77 br label %if.end 78 79 if.end: ; preds = %if.else, %if.then 80 ret void 81 } 82 83 define void @func4(double %f2, double %f3) nounwind { 84 entry: 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 90 if.then: ; preds = %entry 91 tail call void (...)* @g0() nounwind 92 br label %if.end 93 94 if.else: ; preds = %entry 95 tail call void (...)* @g1() nounwind 96 br label %if.end 97 98 if.end: ; preds = %if.else, %if.then 99 ret void 100 } 101 102 define void @func5(double %f2, double %f3) nounwind { 103 entry: 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 109 if.then: ; preds = %entry 110 tail call void (...)* @g0() nounwind 111 br label %if.end 112 113 if.else: ; preds = %entry 114 tail call void (...)* @g1() nounwind 115 br label %if.end 116 117 if.end: ; preds = %if.else, %if.then 118 ret void 119 } 120