1 ; RUN: llc < %s | grep je | count 1 2 ; RUN: llc < %s | grep jne | count 1 3 ; RUN: llc < %s | grep jhe | count 2 4 ; RUN: llc < %s | grep jle | count 2 5 ; RUN: llc < %s | grep jh | count 4 6 ; RUN: llc < %s | grep jl | count 4 7 8 9 target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128" 10 target triple = "s390x-unknown-linux-gnu" 11 12 define void @foo(i32 %a, i32 %b) nounwind { 13 entry: 14 %cmp = icmp ult i32 %a, %b ; <i1> [#uses=1] 15 br i1 %cmp, label %if.then, label %if.end 16 17 if.then: ; preds = %entry 18 tail call void @bar() nounwind 19 ret void 20 21 if.end: ; preds = %entry 22 ret void 23 } 24 25 declare void @bar() 26 27 define void @foo1(i32 %a, i32 %b) nounwind { 28 entry: 29 %cmp = icmp ugt i32 %a, %b ; <i1> [#uses=1] 30 br i1 %cmp, label %if.then, label %if.end 31 32 if.then: ; preds = %entry 33 tail call void @bar() nounwind 34 ret void 35 36 if.end: ; preds = %entry 37 ret void 38 } 39 40 define void @foo2(i32 %a, i32 %b) nounwind { 41 entry: 42 %cmp = icmp ugt i32 %a, %b ; <i1> [#uses=1] 43 br i1 %cmp, label %if.end, label %if.then 44 45 if.then: ; preds = %entry 46 tail call void @bar() nounwind 47 ret void 48 49 if.end: ; preds = %entry 50 ret void 51 } 52 53 define void @foo3(i32 %a, i32 %b) nounwind { 54 entry: 55 %cmp = icmp ult i32 %a, %b ; <i1> [#uses=1] 56 br i1 %cmp, label %if.end, label %if.then 57 58 if.then: ; preds = %entry 59 tail call void @bar() nounwind 60 ret void 61 62 if.end: ; preds = %entry 63 ret void 64 } 65 66 define void @foo4(i32 %a, i32 %b) nounwind { 67 entry: 68 %cmp = icmp eq i32 %a, %b ; <i1> [#uses=1] 69 br i1 %cmp, label %if.then, label %if.end 70 71 if.then: ; preds = %entry 72 tail call void @bar() nounwind 73 ret void 74 75 if.end: ; preds = %entry 76 ret void 77 } 78 79 define void @foo5(i32 %a, i32 %b) nounwind { 80 entry: 81 %cmp = icmp eq i32 %a, %b ; <i1> [#uses=1] 82 br i1 %cmp, label %if.end, label %if.then 83 84 if.then: ; preds = %entry 85 tail call void @bar() nounwind 86 ret void 87 88 if.end: ; preds = %entry 89 ret void 90 } 91 92 define void @foo6(i32 %a, i32 %b) nounwind { 93 entry: 94 %cmp = icmp slt i32 %a, %b ; <i1> [#uses=1] 95 br i1 %cmp, label %if.then, label %if.end 96 97 if.then: ; preds = %entry 98 tail call void @bar() nounwind 99 ret void 100 101 if.end: ; preds = %entry 102 ret void 103 } 104 105 define void @foo7(i32 %a, i32 %b) nounwind { 106 entry: 107 %cmp = icmp sgt i32 %a, %b ; <i1> [#uses=1] 108 br i1 %cmp, label %if.then, label %if.end 109 110 if.then: ; preds = %entry 111 tail call void @bar() nounwind 112 ret void 113 114 if.end: ; preds = %entry 115 ret void 116 } 117 118 define void @foo8(i32 %a, i32 %b) nounwind { 119 entry: 120 %cmp = icmp sgt i32 %a, %b ; <i1> [#uses=1] 121 br i1 %cmp, label %if.end, label %if.then 122 123 if.then: ; preds = %entry 124 tail call void @bar() nounwind 125 ret void 126 127 if.end: ; preds = %entry 128 ret void 129 } 130 131 define void @foo9(i32 %a, i32 %b) nounwind { 132 entry: 133 %cmp = icmp slt i32 %a, %b ; <i1> [#uses=1] 134 br i1 %cmp, label %if.end, label %if.then 135 136 if.then: ; preds = %entry 137 tail call void @bar() nounwind 138 ret void 139 140 if.end: ; preds = %entry 141 ret void 142 } 143