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