1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1150 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX1150 %s
10 liveins: $sgpr0, $sgpr1
12 ; GFX1150-LABEL: name: f32_olt
13 ; GFX1150: liveins: $sgpr0, $sgpr1
14 ; GFX1150-NEXT: {{ $}}
15 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
16 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
17 ; GFX1150-NEXT: S_CMP_LT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
18 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
19 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
20 %0:sgpr(s32) = COPY $sgpr0
21 %1:sgpr(s32) = COPY $sgpr1
22 %2:sgpr(s32) = G_FCMP floatpred(olt), %0(s32), %1
32 liveins: $sgpr0, $sgpr1
34 ; GFX1150-LABEL: name: f32_oeq
35 ; GFX1150: liveins: $sgpr0, $sgpr1
36 ; GFX1150-NEXT: {{ $}}
37 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
38 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
39 ; GFX1150-NEXT: S_CMP_EQ_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
40 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
41 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
42 %0:sgpr(s32) = COPY $sgpr0
43 %1:sgpr(s32) = COPY $sgpr1
44 %2:sgpr(s32) = G_FCMP floatpred(oeq), %0(s32), %1
54 liveins: $sgpr0, $sgpr1
56 ; GFX1150-LABEL: name: f32_ole
57 ; GFX1150: liveins: $sgpr0, $sgpr1
58 ; GFX1150-NEXT: {{ $}}
59 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
60 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
61 ; GFX1150-NEXT: S_CMP_LE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
62 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
63 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
64 %0:sgpr(s32) = COPY $sgpr0
65 %1:sgpr(s32) = COPY $sgpr1
66 %2:sgpr(s32) = G_FCMP floatpred(ole), %0(s32), %1
76 liveins: $sgpr0, $sgpr1
78 ; GFX1150-LABEL: name: f32_ogt
79 ; GFX1150: liveins: $sgpr0, $sgpr1
80 ; GFX1150-NEXT: {{ $}}
81 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
82 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
83 ; GFX1150-NEXT: S_CMP_GT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
84 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
85 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
86 %0:sgpr(s32) = COPY $sgpr0
87 %1:sgpr(s32) = COPY $sgpr1
88 %2:sgpr(s32) = G_FCMP floatpred(ogt), %0(s32), %1
98 liveins: $sgpr0, $sgpr1
100 ; GFX1150-LABEL: name: f32_one
101 ; GFX1150: liveins: $sgpr0, $sgpr1
102 ; GFX1150-NEXT: {{ $}}
103 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
104 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
105 ; GFX1150-NEXT: S_CMP_LG_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
106 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
107 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
108 %0:sgpr(s32) = COPY $sgpr0
109 %1:sgpr(s32) = COPY $sgpr1
110 %2:sgpr(s32) = G_FCMP floatpred(one), %0(s32), %1
111 $sgpr0 = COPY %2(s32)
117 regBankSelected: true
120 liveins: $sgpr0, $sgpr1
122 ; GFX1150-LABEL: name: f32_oge
123 ; GFX1150: liveins: $sgpr0, $sgpr1
124 ; GFX1150-NEXT: {{ $}}
125 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
126 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
127 ; GFX1150-NEXT: S_CMP_GE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
128 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
129 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
130 %0:sgpr(s32) = COPY $sgpr0
131 %1:sgpr(s32) = COPY $sgpr1
132 %2:sgpr(s32) = G_FCMP floatpred(oge), %0(s32), %1
133 $sgpr0 = COPY %2(s32)
139 regBankSelected: true
142 liveins: $sgpr0, $sgpr1
144 ; GFX1150-LABEL: name: f32_ord
145 ; GFX1150: liveins: $sgpr0, $sgpr1
146 ; GFX1150-NEXT: {{ $}}
147 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
148 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
149 ; GFX1150-NEXT: S_CMP_O_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
150 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
151 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
152 %0:sgpr(s32) = COPY $sgpr0
153 %1:sgpr(s32) = COPY $sgpr1
154 %2:sgpr(s32) = G_FCMP floatpred(ord), %0(s32), %1
155 $sgpr0 = COPY %2(s32)
161 regBankSelected: true
164 liveins: $sgpr0, $sgpr1
166 ; GFX1150-LABEL: name: f32_uno
167 ; GFX1150: liveins: $sgpr0, $sgpr1
168 ; GFX1150-NEXT: {{ $}}
169 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
170 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
171 ; GFX1150-NEXT: S_CMP_U_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
172 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
173 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
174 %0:sgpr(s32) = COPY $sgpr0
175 %1:sgpr(s32) = COPY $sgpr1
176 %2:sgpr(s32) = G_FCMP floatpred(uno), %0(s32), %1
177 $sgpr0 = COPY %2(s32)
183 regBankSelected: true
186 liveins: $sgpr0, $sgpr1
188 ; GFX1150-LABEL: name: f32_ult
189 ; GFX1150: liveins: $sgpr0, $sgpr1
190 ; GFX1150-NEXT: {{ $}}
191 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
192 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
193 ; GFX1150-NEXT: S_CMP_NGE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
194 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
195 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
196 %0:sgpr(s32) = COPY $sgpr0
197 %1:sgpr(s32) = COPY $sgpr1
198 %2:sgpr(s32) = G_FCMP floatpred(ult), %0(s32), %1
199 $sgpr0 = COPY %2(s32)
205 regBankSelected: true
208 liveins: $sgpr0, $sgpr1
210 ; GFX1150-LABEL: name: f32_ueq
211 ; GFX1150: liveins: $sgpr0, $sgpr1
212 ; GFX1150-NEXT: {{ $}}
213 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
214 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
215 ; GFX1150-NEXT: S_CMP_NLG_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
216 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
217 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
218 %0:sgpr(s32) = COPY $sgpr0
219 %1:sgpr(s32) = COPY $sgpr1
220 %2:sgpr(s32) = G_FCMP floatpred(ueq), %0(s32), %1
221 $sgpr0 = COPY %2(s32)
227 regBankSelected: true
230 liveins: $sgpr0, $sgpr1
232 ; GFX1150-LABEL: name: f32_ule
233 ; GFX1150: liveins: $sgpr0, $sgpr1
234 ; GFX1150-NEXT: {{ $}}
235 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
236 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
237 ; GFX1150-NEXT: S_CMP_NGT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
238 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
239 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
240 %0:sgpr(s32) = COPY $sgpr0
241 %1:sgpr(s32) = COPY $sgpr1
242 %2:sgpr(s32) = G_FCMP floatpred(ule), %0(s32), %1
243 $sgpr0 = COPY %2(s32)
249 regBankSelected: true
252 liveins: $sgpr0, $sgpr1
254 ; GFX1150-LABEL: name: f32_ugt
255 ; GFX1150: liveins: $sgpr0, $sgpr1
256 ; GFX1150-NEXT: {{ $}}
257 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
258 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
259 ; GFX1150-NEXT: S_CMP_NLE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
260 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
261 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
262 %0:sgpr(s32) = COPY $sgpr0
263 %1:sgpr(s32) = COPY $sgpr1
264 %2:sgpr(s32) = G_FCMP floatpred(ugt), %0(s32), %1
265 $sgpr0 = COPY %2(s32)
271 regBankSelected: true
274 liveins: $sgpr0, $sgpr1
276 ; GFX1150-LABEL: name: f32_une
277 ; GFX1150: liveins: $sgpr0, $sgpr1
278 ; GFX1150-NEXT: {{ $}}
279 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
280 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
281 ; GFX1150-NEXT: S_CMP_NEQ_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
282 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
283 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
284 %0:sgpr(s32) = COPY $sgpr0
285 %1:sgpr(s32) = COPY $sgpr1
286 %2:sgpr(s32) = G_FCMP floatpred(une), %0(s32), %1
287 $sgpr0 = COPY %2(s32)
293 regBankSelected: true
296 liveins: $sgpr0, $sgpr1
298 ; GFX1150-LABEL: name: f32_uge
299 ; GFX1150: liveins: $sgpr0, $sgpr1
300 ; GFX1150-NEXT: {{ $}}
301 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
302 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
303 ; GFX1150-NEXT: S_CMP_NLT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
304 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
305 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
306 %0:sgpr(s32) = COPY $sgpr0
307 %1:sgpr(s32) = COPY $sgpr1
308 %2:sgpr(s32) = G_FCMP floatpred(uge), %0(s32), %1
309 $sgpr0 = COPY %2(s32)
315 regBankSelected: true
318 liveins: $sgpr0, $sgpr1
320 ; GFX1150-LABEL: name: f16_olt
321 ; GFX1150: liveins: $sgpr0, $sgpr1
322 ; GFX1150-NEXT: {{ $}}
323 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
324 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
325 ; GFX1150-NEXT: S_CMP_LT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
326 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
327 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
328 %0:sgpr(s32) = COPY $sgpr0
329 %1:sgpr(s16) = G_TRUNC %0(s32)
330 %2:sgpr(s32) = COPY $sgpr1
331 %3:sgpr(s16) = G_TRUNC %2(s32)
332 %4:sgpr(s32) = G_FCMP floatpred(olt), %1(s16), %3
333 $sgpr0 = COPY %4(s32)
339 regBankSelected: true
342 liveins: $sgpr0, $sgpr1
344 ; GFX1150-LABEL: name: f16_oeq
345 ; GFX1150: liveins: $sgpr0, $sgpr1
346 ; GFX1150-NEXT: {{ $}}
347 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
348 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
349 ; GFX1150-NEXT: S_CMP_EQ_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
350 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
351 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
352 %0:sgpr(s32) = COPY $sgpr0
353 %1:sgpr(s16) = G_TRUNC %0(s32)
354 %2:sgpr(s32) = COPY $sgpr1
355 %3:sgpr(s16) = G_TRUNC %2(s32)
356 %4:sgpr(s32) = G_FCMP floatpred(oeq), %1(s16), %3
357 $sgpr0 = COPY %4(s32)
363 regBankSelected: true
366 liveins: $sgpr0, $sgpr1
368 ; GFX1150-LABEL: name: f16_ole
369 ; GFX1150: liveins: $sgpr0, $sgpr1
370 ; GFX1150-NEXT: {{ $}}
371 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
372 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
373 ; GFX1150-NEXT: S_CMP_LE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
374 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
375 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
376 %0:sgpr(s32) = COPY $sgpr0
377 %1:sgpr(s16) = G_TRUNC %0(s32)
378 %2:sgpr(s32) = COPY $sgpr1
379 %3:sgpr(s16) = G_TRUNC %2(s32)
380 %4:sgpr(s32) = G_FCMP floatpred(ole), %1(s16), %3
381 $sgpr0 = COPY %4(s32)
387 regBankSelected: true
390 liveins: $sgpr0, $sgpr1
392 ; GFX1150-LABEL: name: f16_ogt
393 ; GFX1150: liveins: $sgpr0, $sgpr1
394 ; GFX1150-NEXT: {{ $}}
395 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
396 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
397 ; GFX1150-NEXT: S_CMP_GT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
398 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
399 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
400 %0:sgpr(s32) = COPY $sgpr0
401 %1:sgpr(s16) = G_TRUNC %0(s32)
402 %2:sgpr(s32) = COPY $sgpr1
403 %3:sgpr(s16) = G_TRUNC %2(s32)
404 %4:sgpr(s32) = G_FCMP floatpred(ogt), %1(s16), %3
405 $sgpr0 = COPY %4(s32)
411 regBankSelected: true
414 liveins: $sgpr0, $sgpr1
416 ; GFX1150-LABEL: name: f16_one
417 ; GFX1150: liveins: $sgpr0, $sgpr1
418 ; GFX1150-NEXT: {{ $}}
419 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
420 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
421 ; GFX1150-NEXT: S_CMP_LG_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
422 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
423 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
424 %0:sgpr(s32) = COPY $sgpr0
425 %1:sgpr(s16) = G_TRUNC %0(s32)
426 %2:sgpr(s32) = COPY $sgpr1
427 %3:sgpr(s16) = G_TRUNC %2(s32)
428 %4:sgpr(s32) = G_FCMP floatpred(one), %1(s16), %3
429 $sgpr0 = COPY %4(s32)
435 regBankSelected: true
438 liveins: $sgpr0, $sgpr1
440 ; GFX1150-LABEL: name: f16_oge
441 ; GFX1150: liveins: $sgpr0, $sgpr1
442 ; GFX1150-NEXT: {{ $}}
443 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
444 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
445 ; GFX1150-NEXT: S_CMP_GE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
446 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
447 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
448 %0:sgpr(s32) = COPY $sgpr0
449 %1:sgpr(s16) = G_TRUNC %0(s32)
450 %2:sgpr(s32) = COPY $sgpr1
451 %3:sgpr(s16) = G_TRUNC %2(s32)
452 %4:sgpr(s32) = G_FCMP floatpred(oge), %1(s16), %3
453 $sgpr0 = COPY %4(s32)
459 regBankSelected: true
462 liveins: $sgpr0, $sgpr1
464 ; GFX1150-LABEL: name: f16_ord
465 ; GFX1150: liveins: $sgpr0, $sgpr1
466 ; GFX1150-NEXT: {{ $}}
467 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
468 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
469 ; GFX1150-NEXT: S_CMP_O_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
470 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
471 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
472 %0:sgpr(s32) = COPY $sgpr0
473 %1:sgpr(s16) = G_TRUNC %0(s32)
474 %2:sgpr(s32) = COPY $sgpr1
475 %3:sgpr(s16) = G_TRUNC %2(s32)
476 %4:sgpr(s32) = G_FCMP floatpred(ord), %1(s16), %3
477 $sgpr0 = COPY %4(s32)
483 regBankSelected: true
486 liveins: $sgpr0, $sgpr1
488 ; GFX1150-LABEL: name: f16_uno
489 ; GFX1150: liveins: $sgpr0, $sgpr1
490 ; GFX1150-NEXT: {{ $}}
491 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
492 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
493 ; GFX1150-NEXT: S_CMP_U_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
494 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
495 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
496 %0:sgpr(s32) = COPY $sgpr0
497 %1:sgpr(s16) = G_TRUNC %0(s32)
498 %2:sgpr(s32) = COPY $sgpr1
499 %3:sgpr(s16) = G_TRUNC %2(s32)
500 %4:sgpr(s32) = G_FCMP floatpred(uno), %1(s16), %3
501 $sgpr0 = COPY %4(s32)
507 regBankSelected: true
510 liveins: $sgpr0, $sgpr1
512 ; GFX1150-LABEL: name: f16_ult
513 ; GFX1150: liveins: $sgpr0, $sgpr1
514 ; GFX1150-NEXT: {{ $}}
515 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
516 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
517 ; GFX1150-NEXT: S_CMP_NGE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
518 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
519 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
520 %0:sgpr(s32) = COPY $sgpr0
521 %1:sgpr(s16) = G_TRUNC %0(s32)
522 %2:sgpr(s32) = COPY $sgpr1
523 %3:sgpr(s16) = G_TRUNC %2(s32)
524 %4:sgpr(s32) = G_FCMP floatpred(ult), %1(s16), %3
525 $sgpr0 = COPY %4(s32)
531 regBankSelected: true
534 liveins: $sgpr0, $sgpr1
536 ; GFX1150-LABEL: name: f16_ueq
537 ; GFX1150: liveins: $sgpr0, $sgpr1
538 ; GFX1150-NEXT: {{ $}}
539 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
540 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
541 ; GFX1150-NEXT: S_CMP_NLG_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
542 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
543 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
544 %0:sgpr(s32) = COPY $sgpr0
545 %1:sgpr(s16) = G_TRUNC %0(s32)
546 %2:sgpr(s32) = COPY $sgpr1
547 %3:sgpr(s16) = G_TRUNC %2(s32)
548 %4:sgpr(s32) = G_FCMP floatpred(ueq), %1(s16), %3
549 $sgpr0 = COPY %4(s32)
555 regBankSelected: true
558 liveins: $sgpr0, $sgpr1
560 ; GFX1150-LABEL: name: f16_ule
561 ; GFX1150: liveins: $sgpr0, $sgpr1
562 ; GFX1150-NEXT: {{ $}}
563 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
564 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
565 ; GFX1150-NEXT: S_CMP_NGT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
566 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
567 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
568 %0:sgpr(s32) = COPY $sgpr0
569 %1:sgpr(s16) = G_TRUNC %0(s32)
570 %2:sgpr(s32) = COPY $sgpr1
571 %3:sgpr(s16) = G_TRUNC %2(s32)
572 %4:sgpr(s32) = G_FCMP floatpred(ule), %1(s16), %3
573 $sgpr0 = COPY %4(s32)
579 regBankSelected: true
582 liveins: $sgpr0, $sgpr1
584 ; GFX1150-LABEL: name: f16_ugt
585 ; GFX1150: liveins: $sgpr0, $sgpr1
586 ; GFX1150-NEXT: {{ $}}
587 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
588 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
589 ; GFX1150-NEXT: S_CMP_NLE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
590 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
591 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
592 %0:sgpr(s32) = COPY $sgpr0
593 %1:sgpr(s16) = G_TRUNC %0(s32)
594 %2:sgpr(s32) = COPY $sgpr1
595 %3:sgpr(s16) = G_TRUNC %2(s32)
596 %4:sgpr(s32) = G_FCMP floatpred(ugt), %1(s16), %3
597 $sgpr0 = COPY %4(s32)
603 regBankSelected: true
606 liveins: $sgpr0, $sgpr1
608 ; GFX1150-LABEL: name: f16_une
609 ; GFX1150: liveins: $sgpr0, $sgpr1
610 ; GFX1150-NEXT: {{ $}}
611 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
612 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
613 ; GFX1150-NEXT: S_CMP_NEQ_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
614 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
615 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
616 %0:sgpr(s32) = COPY $sgpr0
617 %1:sgpr(s16) = G_TRUNC %0(s32)
618 %2:sgpr(s32) = COPY $sgpr1
619 %3:sgpr(s16) = G_TRUNC %2(s32)
620 %4:sgpr(s32) = G_FCMP floatpred(une), %1(s16), %3
621 $sgpr0 = COPY %4(s32)
627 regBankSelected: true
630 liveins: $sgpr0, $sgpr1
632 ; GFX1150-LABEL: name: f16_uge
633 ; GFX1150: liveins: $sgpr0, $sgpr1
634 ; GFX1150-NEXT: {{ $}}
635 ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
636 ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
637 ; GFX1150-NEXT: S_CMP_NLT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
638 ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
639 ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
640 %0:sgpr(s32) = COPY $sgpr0
641 %1:sgpr(s16) = G_TRUNC %0(s32)
642 %2:sgpr(s32) = COPY $sgpr1
643 %3:sgpr(s16) = G_TRUNC %2(s32)
644 %4:sgpr(s32) = G_FCMP floatpred(uge), %1(s16), %3
645 $sgpr0 = COPY %4(s32)