1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+zfh -run-pass=legalizer %s -o - \
9 liveins: $f10_h, $f11_h
11 ; CHECK-LABEL: name: fcmp_oeq_f16
12 ; CHECK: liveins: $f10_h, $f11_h
14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
15 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
16 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(oeq), [[COPY]](s16), [[COPY1]]
17 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
18 ; CHECK-NEXT: PseudoRET implicit $x10
19 %0:_(s16) = COPY $f10_h
20 %1:_(s16) = COPY $f11_h
21 %2:_(s1) = G_FCMP floatpred(oeq), %0(s16), %1
22 %3:_(s32) = G_ANYEXT %2(s1)
24 PseudoRET implicit $x10
31 liveins: $f10_h, $f11_h
33 ; CHECK-LABEL: name: fcmp_ogt_f16
34 ; CHECK: liveins: $f10_h, $f11_h
36 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
37 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
38 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ogt), [[COPY]](s16), [[COPY1]]
39 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
40 ; CHECK-NEXT: PseudoRET implicit $x10
41 %0:_(s16) = COPY $f10_h
42 %1:_(s16) = COPY $f11_h
43 %2:_(s1) = G_FCMP floatpred(ogt), %0(s16), %1
44 %3:_(s32) = G_ANYEXT %2(s1)
46 PseudoRET implicit $x10
53 liveins: $f10_h, $f11_h
55 ; CHECK-LABEL: name: fcmp_oge_f16
56 ; CHECK: liveins: $f10_h, $f11_h
58 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
59 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
60 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(oge), [[COPY]](s16), [[COPY1]]
61 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
62 ; CHECK-NEXT: PseudoRET implicit $x10
63 %0:_(s16) = COPY $f10_h
64 %1:_(s16) = COPY $f11_h
65 %2:_(s1) = G_FCMP floatpred(oge), %0(s16), %1
66 %3:_(s32) = G_ANYEXT %2(s1)
68 PseudoRET implicit $x10
75 liveins: $f10_h, $f11_h
77 ; CHECK-LABEL: name: fcmp_olt_f16
78 ; CHECK: liveins: $f10_h, $f11_h
80 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
81 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
82 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(olt), [[COPY]](s16), [[COPY1]]
83 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
84 ; CHECK-NEXT: PseudoRET implicit $x10
85 %0:_(s16) = COPY $f10_h
86 %1:_(s16) = COPY $f11_h
87 %2:_(s1) = G_FCMP floatpred(olt), %0(s16), %1
88 %3:_(s32) = G_ANYEXT %2(s1)
90 PseudoRET implicit $x10
97 liveins: $f10_h, $f11_h
99 ; CHECK-LABEL: name: fcmp_ole_f16
100 ; CHECK: liveins: $f10_h, $f11_h
102 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
103 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
104 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ole), [[COPY]](s16), [[COPY1]]
105 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
106 ; CHECK-NEXT: PseudoRET implicit $x10
107 %0:_(s16) = COPY $f10_h
108 %1:_(s16) = COPY $f11_h
109 %2:_(s1) = G_FCMP floatpred(ole), %0(s16), %1
110 %3:_(s32) = G_ANYEXT %2(s1)
112 PseudoRET implicit $x10
119 liveins: $f10_h, $f11_h
121 ; CHECK-LABEL: name: fcmp_one_f16
122 ; CHECK: liveins: $f10_h, $f11_h
124 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
125 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
126 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(one), [[COPY]](s16), [[COPY1]]
127 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
128 ; CHECK-NEXT: PseudoRET implicit $x10
129 %0:_(s16) = COPY $f10_h
130 %1:_(s16) = COPY $f11_h
131 %2:_(s1) = G_FCMP floatpred(one), %0(s16), %1
132 %3:_(s32) = G_ANYEXT %2(s1)
134 PseudoRET implicit $x10
141 liveins: $f10_h, $f11_h
143 ; CHECK-LABEL: name: fcmp_ord_f16
144 ; CHECK: liveins: $f10_h, $f11_h
146 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
147 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
148 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ord), [[COPY]](s16), [[COPY1]]
149 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
150 ; CHECK-NEXT: PseudoRET implicit $x10
151 %0:_(s16) = COPY $f10_h
152 %1:_(s16) = COPY $f11_h
153 %2:_(s1) = G_FCMP floatpred(ord), %0(s16), %1
154 %3:_(s32) = G_ANYEXT %2(s1)
156 PseudoRET implicit $x10
163 liveins: $f10_h, $f11_h
165 ; CHECK-LABEL: name: fcmp_ueq_f16
166 ; CHECK: liveins: $f10_h, $f11_h
168 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
169 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
170 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ueq), [[COPY]](s16), [[COPY1]]
171 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
172 ; CHECK-NEXT: PseudoRET implicit $x10
173 %0:_(s16) = COPY $f10_h
174 %1:_(s16) = COPY $f11_h
175 %2:_(s1) = G_FCMP floatpred(ueq), %0(s16), %1
176 %3:_(s32) = G_ANYEXT %2(s1)
178 PseudoRET implicit $x10
185 liveins: $f10_h, $f11_h
187 ; CHECK-LABEL: name: fcmp_ugt_f16
188 ; CHECK: liveins: $f10_h, $f11_h
190 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
191 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
192 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ugt), [[COPY]](s16), [[COPY1]]
193 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
194 ; CHECK-NEXT: PseudoRET implicit $x10
195 %0:_(s16) = COPY $f10_h
196 %1:_(s16) = COPY $f11_h
197 %2:_(s1) = G_FCMP floatpred(ugt), %0(s16), %1
198 %3:_(s32) = G_ANYEXT %2(s1)
200 PseudoRET implicit $x10
207 liveins: $f10_h, $f11_h
209 ; CHECK-LABEL: name: fcmp_uge_f16
210 ; CHECK: liveins: $f10_h, $f11_h
212 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
213 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
214 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(uge), [[COPY]](s16), [[COPY1]]
215 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
216 ; CHECK-NEXT: PseudoRET implicit $x10
217 %0:_(s16) = COPY $f10_h
218 %1:_(s16) = COPY $f11_h
219 %2:_(s1) = G_FCMP floatpred(uge), %0(s16), %1
220 %3:_(s32) = G_ANYEXT %2(s1)
222 PseudoRET implicit $x10
229 liveins: $f10_h, $f11_h
231 ; CHECK-LABEL: name: fcmp_ult_f16
232 ; CHECK: liveins: $f10_h, $f11_h
234 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
235 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
236 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ult), [[COPY]](s16), [[COPY1]]
237 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
238 ; CHECK-NEXT: PseudoRET implicit $x10
239 %0:_(s16) = COPY $f10_h
240 %1:_(s16) = COPY $f11_h
241 %2:_(s1) = G_FCMP floatpred(ult), %0(s16), %1
242 %3:_(s32) = G_ANYEXT %2(s1)
244 PseudoRET implicit $x10
251 liveins: $f10_h, $f11_h
253 ; CHECK-LABEL: name: fcmp_ule_f16
254 ; CHECK: liveins: $f10_h, $f11_h
256 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
257 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
258 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ule), [[COPY]](s16), [[COPY1]]
259 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
260 ; CHECK-NEXT: PseudoRET implicit $x10
261 %0:_(s16) = COPY $f10_h
262 %1:_(s16) = COPY $f11_h
263 %2:_(s1) = G_FCMP floatpred(ule), %0(s16), %1
264 %3:_(s32) = G_ANYEXT %2(s1)
266 PseudoRET implicit $x10
273 liveins: $f10_h, $f11_h
275 ; CHECK-LABEL: name: fcmp_une_f16
276 ; CHECK: liveins: $f10_h, $f11_h
278 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
279 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
280 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(une), [[COPY]](s16), [[COPY1]]
281 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
282 ; CHECK-NEXT: PseudoRET implicit $x10
283 %0:_(s16) = COPY $f10_h
284 %1:_(s16) = COPY $f11_h
285 %2:_(s1) = G_FCMP floatpred(une), %0(s16), %1
286 %3:_(s32) = G_ANYEXT %2(s1)
288 PseudoRET implicit $x10
295 liveins: $f10_h, $f11_h
297 ; CHECK-LABEL: name: fcmp_uno_f16
298 ; CHECK: liveins: $f10_h, $f11_h
300 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
301 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
302 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(uno), [[COPY]](s16), [[COPY1]]
303 ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
304 ; CHECK-NEXT: PseudoRET implicit $x10
305 %0:_(s16) = COPY $f10_h
306 %1:_(s16) = COPY $f11_h
307 %2:_(s1) = G_FCMP floatpred(uno), %0(s16), %1
308 %3:_(s32) = G_ANYEXT %2(s1)
310 PseudoRET implicit $x10