xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-scalar-float-sopc.mir (revision 2d6d723a85c2d007b0359c206d66cd2e5a9f00e1)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn -mcpu=gfx1150 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX1150 %s
3# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX1150 %s
4
5---
6name:            f32_olt
7legalized:       true
8regBankSelected: true
9body:             |
10  bb.1.entry:
11    liveins: $sgpr0, $sgpr1
12
13    ; GFX1150-LABEL: name: f32_olt
14    ; GFX1150: liveins: $sgpr0, $sgpr1
15    ; GFX1150-NEXT: {{  $}}
16    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
17    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
18    ; GFX1150-NEXT: S_CMP_LT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
19    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
20    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
21    %0:sgpr(s32) = COPY $sgpr0
22    %1:sgpr(s32) = COPY $sgpr1
23    %2:sgpr(s32) = G_FCMP floatpred(olt), %0(s32), %1
24    $sgpr0 = COPY %2(s32)
25
26...
27---
28name:            f32_oeq
29legalized:       true
30regBankSelected: true
31body:             |
32  bb.1.entry:
33    liveins: $sgpr0, $sgpr1
34
35    ; GFX1150-LABEL: name: f32_oeq
36    ; GFX1150: liveins: $sgpr0, $sgpr1
37    ; GFX1150-NEXT: {{  $}}
38    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
39    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
40    ; GFX1150-NEXT: S_CMP_EQ_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
41    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
42    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
43    %0:sgpr(s32) = COPY $sgpr0
44    %1:sgpr(s32) = COPY $sgpr1
45    %2:sgpr(s32) = G_FCMP floatpred(oeq), %0(s32), %1
46    $sgpr0 = COPY %2(s32)
47
48...
49---
50name:            f32_ole
51legalized:       true
52regBankSelected: true
53body:             |
54  bb.1.entry:
55    liveins: $sgpr0, $sgpr1
56
57    ; GFX1150-LABEL: name: f32_ole
58    ; GFX1150: liveins: $sgpr0, $sgpr1
59    ; GFX1150-NEXT: {{  $}}
60    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
61    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
62    ; GFX1150-NEXT: S_CMP_LE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
63    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
64    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
65    %0:sgpr(s32) = COPY $sgpr0
66    %1:sgpr(s32) = COPY $sgpr1
67    %2:sgpr(s32) = G_FCMP floatpred(ole), %0(s32), %1
68    $sgpr0 = COPY %2(s32)
69
70...
71---
72name:            f32_ogt
73legalized:       true
74regBankSelected: true
75body:             |
76  bb.1.entry:
77    liveins: $sgpr0, $sgpr1
78
79    ; GFX1150-LABEL: name: f32_ogt
80    ; GFX1150: liveins: $sgpr0, $sgpr1
81    ; GFX1150-NEXT: {{  $}}
82    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
83    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
84    ; GFX1150-NEXT: S_CMP_GT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
85    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
86    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
87    %0:sgpr(s32) = COPY $sgpr0
88    %1:sgpr(s32) = COPY $sgpr1
89    %2:sgpr(s32) = G_FCMP floatpred(ogt), %0(s32), %1
90    $sgpr0 = COPY %2(s32)
91
92...
93---
94name:            f32_one
95legalized:       true
96regBankSelected: true
97body:             |
98  bb.1.entry:
99    liveins: $sgpr0, $sgpr1
100
101    ; GFX1150-LABEL: name: f32_one
102    ; GFX1150: liveins: $sgpr0, $sgpr1
103    ; GFX1150-NEXT: {{  $}}
104    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
105    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
106    ; GFX1150-NEXT: S_CMP_LG_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
107    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
108    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
109    %0:sgpr(s32) = COPY $sgpr0
110    %1:sgpr(s32) = COPY $sgpr1
111    %2:sgpr(s32) = G_FCMP floatpred(one), %0(s32), %1
112    $sgpr0 = COPY %2(s32)
113
114...
115---
116name:            f32_oge
117legalized:       true
118regBankSelected: true
119body:             |
120  bb.1.entry:
121    liveins: $sgpr0, $sgpr1
122
123    ; GFX1150-LABEL: name: f32_oge
124    ; GFX1150: liveins: $sgpr0, $sgpr1
125    ; GFX1150-NEXT: {{  $}}
126    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
127    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
128    ; GFX1150-NEXT: S_CMP_GE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
129    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
130    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
131    %0:sgpr(s32) = COPY $sgpr0
132    %1:sgpr(s32) = COPY $sgpr1
133    %2:sgpr(s32) = G_FCMP floatpred(oge), %0(s32), %1
134    $sgpr0 = COPY %2(s32)
135
136...
137---
138name:            f32_ord
139legalized:       true
140regBankSelected: true
141body:             |
142  bb.1.entry:
143    liveins: $sgpr0, $sgpr1
144
145    ; GFX1150-LABEL: name: f32_ord
146    ; GFX1150: liveins: $sgpr0, $sgpr1
147    ; GFX1150-NEXT: {{  $}}
148    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
149    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
150    ; GFX1150-NEXT: S_CMP_O_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
151    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
152    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
153    %0:sgpr(s32) = COPY $sgpr0
154    %1:sgpr(s32) = COPY $sgpr1
155    %2:sgpr(s32) = G_FCMP floatpred(ord), %0(s32), %1
156    $sgpr0 = COPY %2(s32)
157
158...
159---
160name:            f32_uno
161legalized:       true
162regBankSelected: true
163body:             |
164  bb.1.entry:
165    liveins: $sgpr0, $sgpr1
166
167    ; GFX1150-LABEL: name: f32_uno
168    ; GFX1150: liveins: $sgpr0, $sgpr1
169    ; GFX1150-NEXT: {{  $}}
170    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
171    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
172    ; GFX1150-NEXT: S_CMP_U_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
173    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
174    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
175    %0:sgpr(s32) = COPY $sgpr0
176    %1:sgpr(s32) = COPY $sgpr1
177    %2:sgpr(s32) = G_FCMP floatpred(uno), %0(s32), %1
178    $sgpr0 = COPY %2(s32)
179
180...
181---
182name:            f32_ult
183legalized:       true
184regBankSelected: true
185body:             |
186  bb.1.entry:
187    liveins: $sgpr0, $sgpr1
188
189    ; GFX1150-LABEL: name: f32_ult
190    ; GFX1150: liveins: $sgpr0, $sgpr1
191    ; GFX1150-NEXT: {{  $}}
192    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
193    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
194    ; GFX1150-NEXT: S_CMP_NGE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
195    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
196    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
197    %0:sgpr(s32) = COPY $sgpr0
198    %1:sgpr(s32) = COPY $sgpr1
199    %2:sgpr(s32) = G_FCMP floatpred(ult), %0(s32), %1
200    $sgpr0 = COPY %2(s32)
201
202...
203---
204name:            f32_ueq
205legalized:       true
206regBankSelected: true
207body:             |
208  bb.1.entry:
209    liveins: $sgpr0, $sgpr1
210
211    ; GFX1150-LABEL: name: f32_ueq
212    ; GFX1150: liveins: $sgpr0, $sgpr1
213    ; GFX1150-NEXT: {{  $}}
214    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
215    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
216    ; GFX1150-NEXT: S_CMP_NLG_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
217    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
218    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
219    %0:sgpr(s32) = COPY $sgpr0
220    %1:sgpr(s32) = COPY $sgpr1
221    %2:sgpr(s32) = G_FCMP floatpred(ueq), %0(s32), %1
222    $sgpr0 = COPY %2(s32)
223
224...
225---
226name:            f32_ule
227legalized:       true
228regBankSelected: true
229body:             |
230  bb.1.entry:
231    liveins: $sgpr0, $sgpr1
232
233    ; GFX1150-LABEL: name: f32_ule
234    ; GFX1150: liveins: $sgpr0, $sgpr1
235    ; GFX1150-NEXT: {{  $}}
236    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
237    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
238    ; GFX1150-NEXT: S_CMP_NGT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
239    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
240    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
241    %0:sgpr(s32) = COPY $sgpr0
242    %1:sgpr(s32) = COPY $sgpr1
243    %2:sgpr(s32) = G_FCMP floatpred(ule), %0(s32), %1
244    $sgpr0 = COPY %2(s32)
245
246...
247---
248name:            f32_ugt
249legalized:       true
250regBankSelected: true
251body:             |
252  bb.1.entry:
253    liveins: $sgpr0, $sgpr1
254
255    ; GFX1150-LABEL: name: f32_ugt
256    ; GFX1150: liveins: $sgpr0, $sgpr1
257    ; GFX1150-NEXT: {{  $}}
258    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
259    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
260    ; GFX1150-NEXT: S_CMP_NLE_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
261    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
262    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
263    %0:sgpr(s32) = COPY $sgpr0
264    %1:sgpr(s32) = COPY $sgpr1
265    %2:sgpr(s32) = G_FCMP floatpred(ugt), %0(s32), %1
266    $sgpr0 = COPY %2(s32)
267
268...
269---
270name:            f32_une
271legalized:       true
272regBankSelected: true
273body:             |
274  bb.1.entry:
275    liveins: $sgpr0, $sgpr1
276
277    ; GFX1150-LABEL: name: f32_une
278    ; GFX1150: liveins: $sgpr0, $sgpr1
279    ; GFX1150-NEXT: {{  $}}
280    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
281    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
282    ; GFX1150-NEXT: S_CMP_NEQ_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
283    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
284    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
285    %0:sgpr(s32) = COPY $sgpr0
286    %1:sgpr(s32) = COPY $sgpr1
287    %2:sgpr(s32) = G_FCMP floatpred(une), %0(s32), %1
288    $sgpr0 = COPY %2(s32)
289
290...
291---
292name:            f32_uge
293legalized:       true
294regBankSelected: true
295body:             |
296  bb.1.entry:
297    liveins: $sgpr0, $sgpr1
298
299    ; GFX1150-LABEL: name: f32_uge
300    ; GFX1150: liveins: $sgpr0, $sgpr1
301    ; GFX1150-NEXT: {{  $}}
302    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
303    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
304    ; GFX1150-NEXT: S_CMP_NLT_F32 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
305    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
306    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
307    %0:sgpr(s32) = COPY $sgpr0
308    %1:sgpr(s32) = COPY $sgpr1
309    %2:sgpr(s32) = G_FCMP floatpred(uge), %0(s32), %1
310    $sgpr0 = COPY %2(s32)
311
312...
313---
314name:            f16_olt
315legalized:       true
316regBankSelected: true
317body:             |
318  bb.1.entry:
319    liveins: $sgpr0, $sgpr1
320
321    ; GFX1150-LABEL: name: f16_olt
322    ; GFX1150: liveins: $sgpr0, $sgpr1
323    ; GFX1150-NEXT: {{  $}}
324    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
325    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
326    ; GFX1150-NEXT: S_CMP_LT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
327    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
328    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
329    %0:sgpr(s32) = COPY $sgpr0
330    %1:sgpr(s16) = G_TRUNC %0(s32)
331    %2:sgpr(s32) = COPY $sgpr1
332    %3:sgpr(s16) = G_TRUNC %2(s32)
333    %4:sgpr(s32) = G_FCMP floatpred(olt), %1(s16), %3
334    $sgpr0 = COPY %4(s32)
335
336...
337---
338name:            f16_oeq
339legalized:       true
340regBankSelected: true
341body:             |
342  bb.1.entry:
343    liveins: $sgpr0, $sgpr1
344
345    ; GFX1150-LABEL: name: f16_oeq
346    ; GFX1150: liveins: $sgpr0, $sgpr1
347    ; GFX1150-NEXT: {{  $}}
348    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
349    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
350    ; GFX1150-NEXT: S_CMP_EQ_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
351    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
352    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
353    %0:sgpr(s32) = COPY $sgpr0
354    %1:sgpr(s16) = G_TRUNC %0(s32)
355    %2:sgpr(s32) = COPY $sgpr1
356    %3:sgpr(s16) = G_TRUNC %2(s32)
357    %4:sgpr(s32) = G_FCMP floatpred(oeq), %1(s16), %3
358    $sgpr0 = COPY %4(s32)
359
360...
361---
362name:            f16_ole
363legalized:       true
364regBankSelected: true
365body:             |
366  bb.1.entry:
367    liveins: $sgpr0, $sgpr1
368
369    ; GFX1150-LABEL: name: f16_ole
370    ; GFX1150: liveins: $sgpr0, $sgpr1
371    ; GFX1150-NEXT: {{  $}}
372    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
373    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
374    ; GFX1150-NEXT: S_CMP_LE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
375    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
376    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
377    %0:sgpr(s32) = COPY $sgpr0
378    %1:sgpr(s16) = G_TRUNC %0(s32)
379    %2:sgpr(s32) = COPY $sgpr1
380    %3:sgpr(s16) = G_TRUNC %2(s32)
381    %4:sgpr(s32) = G_FCMP floatpred(ole), %1(s16), %3
382    $sgpr0 = COPY %4(s32)
383
384...
385---
386name:            f16_ogt
387legalized:       true
388regBankSelected: true
389body:             |
390  bb.1.entry:
391    liveins: $sgpr0, $sgpr1
392
393    ; GFX1150-LABEL: name: f16_ogt
394    ; GFX1150: liveins: $sgpr0, $sgpr1
395    ; GFX1150-NEXT: {{  $}}
396    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
397    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
398    ; GFX1150-NEXT: S_CMP_GT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
399    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
400    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
401    %0:sgpr(s32) = COPY $sgpr0
402    %1:sgpr(s16) = G_TRUNC %0(s32)
403    %2:sgpr(s32) = COPY $sgpr1
404    %3:sgpr(s16) = G_TRUNC %2(s32)
405    %4:sgpr(s32) = G_FCMP floatpred(ogt), %1(s16), %3
406    $sgpr0 = COPY %4(s32)
407
408...
409---
410name:            f16_one
411legalized:       true
412regBankSelected: true
413body:             |
414  bb.1.entry:
415    liveins: $sgpr0, $sgpr1
416
417    ; GFX1150-LABEL: name: f16_one
418    ; GFX1150: liveins: $sgpr0, $sgpr1
419    ; GFX1150-NEXT: {{  $}}
420    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
421    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
422    ; GFX1150-NEXT: S_CMP_LG_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
423    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
424    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
425    %0:sgpr(s32) = COPY $sgpr0
426    %1:sgpr(s16) = G_TRUNC %0(s32)
427    %2:sgpr(s32) = COPY $sgpr1
428    %3:sgpr(s16) = G_TRUNC %2(s32)
429    %4:sgpr(s32) = G_FCMP floatpred(one), %1(s16), %3
430    $sgpr0 = COPY %4(s32)
431
432...
433---
434name:            f16_oge
435legalized:       true
436regBankSelected: true
437body:             |
438  bb.1.entry:
439    liveins: $sgpr0, $sgpr1
440
441    ; GFX1150-LABEL: name: f16_oge
442    ; GFX1150: liveins: $sgpr0, $sgpr1
443    ; GFX1150-NEXT: {{  $}}
444    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
445    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
446    ; GFX1150-NEXT: S_CMP_GE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
447    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
448    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
449    %0:sgpr(s32) = COPY $sgpr0
450    %1:sgpr(s16) = G_TRUNC %0(s32)
451    %2:sgpr(s32) = COPY $sgpr1
452    %3:sgpr(s16) = G_TRUNC %2(s32)
453    %4:sgpr(s32) = G_FCMP floatpred(oge), %1(s16), %3
454    $sgpr0 = COPY %4(s32)
455
456...
457---
458name:            f16_ord
459legalized:       true
460regBankSelected: true
461body:             |
462  bb.1.entry:
463    liveins: $sgpr0, $sgpr1
464
465    ; GFX1150-LABEL: name: f16_ord
466    ; GFX1150: liveins: $sgpr0, $sgpr1
467    ; GFX1150-NEXT: {{  $}}
468    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
469    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
470    ; GFX1150-NEXT: S_CMP_O_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
471    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
472    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
473    %0:sgpr(s32) = COPY $sgpr0
474    %1:sgpr(s16) = G_TRUNC %0(s32)
475    %2:sgpr(s32) = COPY $sgpr1
476    %3:sgpr(s16) = G_TRUNC %2(s32)
477    %4:sgpr(s32) = G_FCMP floatpred(ord), %1(s16), %3
478    $sgpr0 = COPY %4(s32)
479
480...
481---
482name:            f16_uno
483legalized:       true
484regBankSelected: true
485body:             |
486  bb.1.entry:
487    liveins: $sgpr0, $sgpr1
488
489    ; GFX1150-LABEL: name: f16_uno
490    ; GFX1150: liveins: $sgpr0, $sgpr1
491    ; GFX1150-NEXT: {{  $}}
492    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
493    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
494    ; GFX1150-NEXT: S_CMP_U_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
495    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
496    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
497    %0:sgpr(s32) = COPY $sgpr0
498    %1:sgpr(s16) = G_TRUNC %0(s32)
499    %2:sgpr(s32) = COPY $sgpr1
500    %3:sgpr(s16) = G_TRUNC %2(s32)
501    %4:sgpr(s32) = G_FCMP floatpred(uno), %1(s16), %3
502    $sgpr0 = COPY %4(s32)
503
504...
505---
506name:            f16_ult
507legalized:       true
508regBankSelected: true
509body:             |
510  bb.1.entry:
511    liveins: $sgpr0, $sgpr1
512
513    ; GFX1150-LABEL: name: f16_ult
514    ; GFX1150: liveins: $sgpr0, $sgpr1
515    ; GFX1150-NEXT: {{  $}}
516    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
517    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
518    ; GFX1150-NEXT: S_CMP_NGE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
519    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
520    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
521    %0:sgpr(s32) = COPY $sgpr0
522    %1:sgpr(s16) = G_TRUNC %0(s32)
523    %2:sgpr(s32) = COPY $sgpr1
524    %3:sgpr(s16) = G_TRUNC %2(s32)
525    %4:sgpr(s32) = G_FCMP floatpred(ult), %1(s16), %3
526    $sgpr0 = COPY %4(s32)
527
528...
529---
530name:            f16_ueq
531legalized:       true
532regBankSelected: true
533body:             |
534  bb.1.entry:
535    liveins: $sgpr0, $sgpr1
536
537    ; GFX1150-LABEL: name: f16_ueq
538    ; GFX1150: liveins: $sgpr0, $sgpr1
539    ; GFX1150-NEXT: {{  $}}
540    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
541    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
542    ; GFX1150-NEXT: S_CMP_NLG_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
543    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
544    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
545    %0:sgpr(s32) = COPY $sgpr0
546    %1:sgpr(s16) = G_TRUNC %0(s32)
547    %2:sgpr(s32) = COPY $sgpr1
548    %3:sgpr(s16) = G_TRUNC %2(s32)
549    %4:sgpr(s32) = G_FCMP floatpred(ueq), %1(s16), %3
550    $sgpr0 = COPY %4(s32)
551
552...
553---
554name:            f16_ule
555legalized:       true
556regBankSelected: true
557body:             |
558  bb.1.entry:
559    liveins: $sgpr0, $sgpr1
560
561    ; GFX1150-LABEL: name: f16_ule
562    ; GFX1150: liveins: $sgpr0, $sgpr1
563    ; GFX1150-NEXT: {{  $}}
564    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
565    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
566    ; GFX1150-NEXT: S_CMP_NGT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
567    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
568    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
569    %0:sgpr(s32) = COPY $sgpr0
570    %1:sgpr(s16) = G_TRUNC %0(s32)
571    %2:sgpr(s32) = COPY $sgpr1
572    %3:sgpr(s16) = G_TRUNC %2(s32)
573    %4:sgpr(s32) = G_FCMP floatpred(ule), %1(s16), %3
574    $sgpr0 = COPY %4(s32)
575
576...
577---
578name:            f16_ugt
579legalized:       true
580regBankSelected: true
581body:             |
582  bb.1.entry:
583    liveins: $sgpr0, $sgpr1
584
585    ; GFX1150-LABEL: name: f16_ugt
586    ; GFX1150: liveins: $sgpr0, $sgpr1
587    ; GFX1150-NEXT: {{  $}}
588    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
589    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
590    ; GFX1150-NEXT: S_CMP_NLE_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
591    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
592    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
593    %0:sgpr(s32) = COPY $sgpr0
594    %1:sgpr(s16) = G_TRUNC %0(s32)
595    %2:sgpr(s32) = COPY $sgpr1
596    %3:sgpr(s16) = G_TRUNC %2(s32)
597    %4:sgpr(s32) = G_FCMP floatpred(ugt), %1(s16), %3
598    $sgpr0 = COPY %4(s32)
599
600...
601---
602name:            f16_une
603legalized:       true
604regBankSelected: true
605body:             |
606  bb.1.entry:
607    liveins: $sgpr0, $sgpr1
608
609    ; GFX1150-LABEL: name: f16_une
610    ; GFX1150: liveins: $sgpr0, $sgpr1
611    ; GFX1150-NEXT: {{  $}}
612    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
613    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
614    ; GFX1150-NEXT: S_CMP_NEQ_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
615    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
616    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
617    %0:sgpr(s32) = COPY $sgpr0
618    %1:sgpr(s16) = G_TRUNC %0(s32)
619    %2:sgpr(s32) = COPY $sgpr1
620    %3:sgpr(s16) = G_TRUNC %2(s32)
621    %4:sgpr(s32) = G_FCMP floatpred(une), %1(s16), %3
622    $sgpr0 = COPY %4(s32)
623
624...
625---
626name:            f16_uge
627legalized:       true
628regBankSelected: true
629body:             |
630  bb.1.entry:
631    liveins: $sgpr0, $sgpr1
632
633    ; GFX1150-LABEL: name: f16_uge
634    ; GFX1150: liveins: $sgpr0, $sgpr1
635    ; GFX1150-NEXT: {{  $}}
636    ; GFX1150-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
637    ; GFX1150-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
638    ; GFX1150-NEXT: S_CMP_NLT_F16 [[COPY]], [[COPY1]], implicit-def $scc, implicit $mode
639    ; GFX1150-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $scc
640    ; GFX1150-NEXT: $sgpr0 = COPY [[COPY2]]
641    %0:sgpr(s32) = COPY $sgpr0
642    %1:sgpr(s16) = G_TRUNC %0(s32)
643    %2:sgpr(s32) = COPY $sgpr1
644    %3:sgpr(s16) = G_TRUNC %2(s32)
645    %4:sgpr(s32) = G_FCMP floatpred(uge), %1(s16), %3
646    $sgpr0 = COPY %4(s32)
647
648...
649