This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / SystemZ / 07-CmpImm32.ll
blobadd34faafd3f67deb1c047c4f3138426c88d7aca
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
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"
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
14 if.then:                ; preds = %entry
15         tail call void @bar() nounwind
16         ret void
18 if.end:         ; preds = %entry
19         ret void
22 declare void @bar()
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
29 if.then:                ; preds = %entry
30         tail call void @bar() nounwind
31         ret void
33 if.end:         ; preds = %entry
34         ret void
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
42 if.then:                ; preds = %entry
43         tail call void @bar() nounwind
44         ret void
46 if.end:         ; preds = %entry
47         ret void
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
55 if.then:                ; preds = %entry
56         tail call void @bar() nounwind
57         ret void
59 if.end:         ; preds = %entry
60         ret void
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
68 if.then:                ; preds = %entry
69         tail call void @bar() nounwind
70         ret void
72 if.end:         ; preds = %entry
73         ret void
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
81 if.then:                ; preds = %entry
82         tail call void @bar() nounwind
83         ret void
85 if.end:         ; preds = %entry
86         ret void
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
94 if.then:                ; preds = %entry
95         tail call void @bar() nounwind
96         ret void
98 if.end:         ; preds = %entry
99         ret void
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
107 if.then:                ; preds = %entry
108         tail call void @bar() nounwind
109         ret void
111 if.end:         ; preds = %entry
112         ret void
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
120 if.then:                ; preds = %entry
121         tail call void @bar() nounwind
122         ret void
124 if.end:         ; preds = %entry
125         ret void
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
133 if.then:                ; preds = %entry
134         tail call void @bar() nounwind
135         ret void
137 if.end:         ; preds = %entry
138         ret void