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