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