Nuke dead code. Nothing generates the VLD1d64QPseudo_UPD instruction.
[oota-llvm.git] / test / CodeGen / SystemZ / 07-CmpImm.ll
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 }