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