[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AVR / cmp.ll
blobe9769068f911df7e604ce4eaf695f5922fecdc70
1 ; RUN: llc < %s -march=avr | FileCheck %s
3 declare void @f1(i8)
4 declare void @f2(i8)
5 define void @cmp8(i8 %a, i8 %b) {
6 ; CHECK-LABEL: cmp8:
7 ; CHECK: cp
8 ; CHECK-NOT: cpc
9   %cmp = icmp eq i8 %a, %b
10   br i1 %cmp, label %if.then, label %if.else
11 if.then:
12   tail call void @f1(i8 %a)
13   br label %if.end
14 if.else:
15   tail call void @f2(i8 %b)
16   br label %if.end
17 if.end:
18   ret void
21 declare void @f3(i16)
22 declare void @f4(i16)
23 define void @cmp16(i16 %a, i16 %b) {
24 ; CHECK-LABEL: cmp16:
25 ; CHECK: cp
26 ; CHECK-NEXT: cpc
27   %cmp = icmp eq i16 %a, %b
28   br i1 %cmp, label %if.then, label %if.else
29 if.then:
30   tail call void @f3(i16 %a)
31   br label %if.end
32 if.else:
33   tail call void @f4(i16 %b)
34   br label %if.end
35 if.end:
36   ret void
39 define void @cmpimm16(i16 %a) {
40 ; CHECK-LABEL: cmpimm16:
41 ; CHECK: cpi
42 ; CHECK-NEXT: cpc
43   %cmp = icmp eq i16 %a, 4567
44   br i1 %cmp, label %if.then, label %if.else
45 if.then:
46   tail call void @f3(i16 %a)
47   br label %if.end
48 if.else:
49   tail call void @f4(i16 %a)
50   br label %if.end
51 if.end:
52   ret void
55 declare void @f5(i32)
56 declare void @f6(i32)
57 define void @cmp32(i32 %a, i32 %b) {
58 ; CHECK-LABEL: cmp32:
59 ; CHECK: cp
60 ; CHECK-NEXT: cpc
61 ; CHECK-NEXT: cpc
62 ; CHECK-NEXT: cpc
63   %cmp = icmp eq i32 %a, %b
64   br i1 %cmp, label %if.then, label %if.else
65 if.then:
66   tail call void @f5(i32 %a)
67   br label %if.end
68 if.else:
69   tail call void @f6(i32 %b)
70   br label %if.end
71 if.end:
72   ret void
75 define void @cmpimm32(i32 %a) {
76 ; CHECK-LABEL: cmpimm32:
77 ; CHECK: cpi
78 ; CHECK-NEXT: cpc
79 ; CHECK-NEXT: cpc
80 ; CHECK-NEXT: cpc
81   %cmp = icmp eq i32 %a, 6789343
82   br i1 %cmp, label %if.then, label %if.else
83 if.then:
84   tail call void @f5(i32 %a)
85   br label %if.end
86 if.else:
87   tail call void @f6(i32 %a)
88   br label %if.end
89 if.end:
90   ret void
93 declare void @f7(i64)
94 declare void @f8(i64)
95 define void @cmp64(i64 %a, i64 %b) {
96 ; CHECK-LABEL: cmp64:
97 ; CHECK: cp
98 ; CHECK-NEXT: cpc
99 ; CHECK-NEXT: cpc
100 ; CHECK-NEXT: cpc
101 ; CHECK-NEXT: cpc
102 ; CHECK-NEXT: cpc
103 ; CHECK-NEXT: cpc
104 ; CHECK-NEXT: cpc
105   %cmp = icmp eq i64 %a, %b
106   br i1 %cmp, label %if.then, label %if.else
107 if.then:
108   tail call void @f7(i64 %a)
109   br label %if.end
110 if.else:
111   tail call void @f8(i64 %b)
112   br label %if.end
113 if.end:
114   ret void
117 define void @cmpimm64(i64 %a) {
118 ; CHECK-LABEL: cmpimm64:
119 ; CHECK: cpi
120 ; CHECK-NEXT: cpc
121 ; CHECK-NEXT: cpc
122 ; CHECK-NEXT: cpc
123 ; CHECK-NEXT: cpc
124 ; CHECK-NEXT: cpc
125 ; CHECK-NEXT: cpc
126 ; CHECK-NEXT: cpc
127   %cmp = icmp eq i64 %a, 234566452
128   br i1 %cmp, label %if.then, label %if.else
129 if.then:
130   tail call void @f7(i64 %a)
131   br label %if.end
132 if.else:
133   tail call void @f8(i64 %a)
134   br label %if.end
135 if.end:
136   ret void
139 declare void @f9()
140 declare void @f10()
142 define void @tst8(i8 %a) {
143 ; CHECK-LABEL: tst8:
144 ; CHECK: tst r24
145 ; CHECK-NEXT: brmi
146   %cmp = icmp sgt i8 %a, -1
147   br i1 %cmp, label %if.then, label %if.else
148 if.then:
149   tail call void @f9()
150   br label %if.end
151 if.else:
152   tail call void @f10()
153   br label %if.end
154 if.end:
155   ret void
158 define void @tst16(i16 %a) {
159 ; CHECK-LABEL: tst16:
160 ; CHECK: tst r25
161 ; CHECK-NEXT: brmi
162   %cmp = icmp sgt i16 %a, -1
163   br i1 %cmp, label %if.then, label %if.else
164 if.then:
165   tail call void @f9()
166   br label %if.end
167 if.else:
168   tail call void @f10()
169   br label %if.end
170 if.end:
171   ret void
174 define void @tst32(i32 %a) {
175 ; CHECK-LABEL: tst32:
176 ; CHECK: tst r25
177 ; CHECK-NEXT: brmi
178   %cmp = icmp sgt i32 %a, -1
179   br i1 %cmp, label %if.then, label %if.else
180 if.then:
181   tail call void @f9()
182   br label %if.end
183 if.else:
184   tail call void @f10()
185   br label %if.end
186 if.end:
187   ret void
190 define void @tst64(i64 %a) {
191 ; CHECK-LABEL: tst64:
192 ; CHECK: tst r25
193 ; CHECK-NEXT: brmi
194   %cmp = icmp sgt i64 %a, -1
195   br i1 %cmp, label %if.then, label %if.else
196 if.then:
197   tail call void @f9()
198   br label %if.end
199 if.else:
200   tail call void @f10()
201   br label %if.end
202 if.end:
203   ret void