1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -march=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=WAVE64 %s
3# RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=WAVE32 %s
4
5---
6name: fcmp_false_s32_vv
7legalized: true
8regBankSelected: true
9
10body: |
11  bb.0:
12    liveins: $vgpr0, $vgpr1
13    ; WAVE64-LABEL: name: fcmp_false_s32_vv
14    ; WAVE64: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
15    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
16    ; WAVE64: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s32), [[COPY1]]
17    ; WAVE64: S_ENDPGM 0, implicit [[FCMP]](s1)
18    ; WAVE32-LABEL: name: fcmp_false_s32_vv
19    ; WAVE32: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
20    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
21    ; WAVE32: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s32), [[COPY1]]
22    ; WAVE32: S_ENDPGM 0, implicit [[FCMP]](s1)
23    %0:vgpr(s32) = COPY $vgpr0
24    %1:vgpr(s32) = COPY $vgpr1
25    %2:vcc(s1) = G_FCMP floatpred(false), %0, %1
26    S_ENDPGM 0, implicit %2
27...
28
29---
30name: fcmp_oeq_s32_vv
31legalized: true
32regBankSelected: true
33
34body: |
35  bb.0:
36    liveins: $vgpr0, $vgpr1
37    ; WAVE64-LABEL: name: fcmp_oeq_s32_vv
38    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
39    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
40    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
41    ; WAVE64: S_ENDPGM 0, implicit %2
42    ; WAVE32-LABEL: name: fcmp_oeq_s32_vv
43    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
44    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
45    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
46    ; WAVE32: S_ENDPGM 0, implicit %2
47    %0:vgpr(s32) = COPY $vgpr0
48    %1:vgpr(s32) = COPY $vgpr1
49    %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1
50    S_ENDPGM 0, implicit %2
51...
52
53---
54name: fcmp_ogt_s32_vv
55legalized: true
56regBankSelected: true
57
58body: |
59  bb.0:
60    liveins: $vgpr0, $vgpr1
61    ; WAVE64-LABEL: name: fcmp_ogt_s32_vv
62    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
63    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
64    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_GT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
65    ; WAVE64: S_ENDPGM 0, implicit %2
66    ; WAVE32-LABEL: name: fcmp_ogt_s32_vv
67    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
68    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
69    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_GT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
70    ; WAVE32: S_ENDPGM 0, implicit %2
71    %0:vgpr(s32) = COPY $vgpr0
72    %1:vgpr(s32) = COPY $vgpr1
73    %2:vcc(s1) = G_FCMP floatpred(ogt), %0, %1
74    S_ENDPGM 0, implicit %2
75...
76
77---
78name: fcmp_oge_s32_vv
79legalized: true
80regBankSelected: true
81
82body: |
83  bb.0:
84    liveins: $vgpr0, $vgpr1
85    ; WAVE64-LABEL: name: fcmp_oge_s32_vv
86    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
87    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
88    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_GE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
89    ; WAVE64: S_ENDPGM 0, implicit %2
90    ; WAVE32-LABEL: name: fcmp_oge_s32_vv
91    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
92    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
93    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_GE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
94    ; WAVE32: S_ENDPGM 0, implicit %2
95    %0:vgpr(s32) = COPY $vgpr0
96    %1:vgpr(s32) = COPY $vgpr1
97    %2:vcc(s1) = G_FCMP floatpred(oge), %0, %1
98    S_ENDPGM 0, implicit %2
99...
100
101---
102name: fcmp_olt_s32_vv
103legalized: true
104regBankSelected: true
105
106body: |
107  bb.0:
108    liveins: $vgpr0, $vgpr1
109    ; WAVE64-LABEL: name: fcmp_olt_s32_vv
110    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
111    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
112    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_LT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
113    ; WAVE64: S_ENDPGM 0, implicit %2
114    ; WAVE32-LABEL: name: fcmp_olt_s32_vv
115    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
116    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
117    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_LT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
118    ; WAVE32: S_ENDPGM 0, implicit %2
119    %0:vgpr(s32) = COPY $vgpr0
120    %1:vgpr(s32) = COPY $vgpr1
121    %2:vcc(s1) = G_FCMP floatpred(olt), %0, %1
122    S_ENDPGM 0, implicit %2
123...
124
125---
126name: fcmp_ole_s32_vv
127legalized: true
128regBankSelected: true
129
130body: |
131  bb.0:
132    liveins: $vgpr0, $vgpr1
133    ; WAVE64-LABEL: name: fcmp_ole_s32_vv
134    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
135    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
136    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_LE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
137    ; WAVE64: S_ENDPGM 0, implicit %2
138    ; WAVE32-LABEL: name: fcmp_ole_s32_vv
139    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
140    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
141    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_LE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
142    ; WAVE32: S_ENDPGM 0, implicit %2
143    %0:vgpr(s32) = COPY $vgpr0
144    %1:vgpr(s32) = COPY $vgpr1
145    %2:vcc(s1) = G_FCMP floatpred(ole), %0, %1
146    S_ENDPGM 0, implicit %2
147...
148
149---
150name: fcmp_one_s32_vv
151legalized: true
152regBankSelected: true
153
154body: |
155  bb.0:
156    liveins: $vgpr0, $vgpr1
157    ; WAVE64-LABEL: name: fcmp_one_s32_vv
158    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
159    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
160    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_LG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
161    ; WAVE64: S_ENDPGM 0, implicit %2
162    ; WAVE32-LABEL: name: fcmp_one_s32_vv
163    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
164    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
165    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_LG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
166    ; WAVE32: S_ENDPGM 0, implicit %2
167    %0:vgpr(s32) = COPY $vgpr0
168    %1:vgpr(s32) = COPY $vgpr1
169    %2:vcc(s1) = G_FCMP floatpred(one), %0, %1
170    S_ENDPGM 0, implicit %2
171...
172
173---
174name: fcmp_ord_s32_vv
175legalized: true
176regBankSelected: true
177
178body: |
179  bb.0:
180    liveins: $vgpr0, $vgpr1
181    ; WAVE64-LABEL: name: fcmp_ord_s32_vv
182    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
183    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
184    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_O_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
185    ; WAVE64: S_ENDPGM 0, implicit %2
186    ; WAVE32-LABEL: name: fcmp_ord_s32_vv
187    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
188    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
189    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_O_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
190    ; WAVE32: S_ENDPGM 0, implicit %2
191    %0:vgpr(s32) = COPY $vgpr0
192    %1:vgpr(s32) = COPY $vgpr1
193    %2:vcc(s1) = G_FCMP floatpred(ord), %0, %1
194    S_ENDPGM 0, implicit %2
195...
196
197---
198name: fcmp_uno_s32_vv
199legalized: true
200regBankSelected: true
201
202body: |
203  bb.0:
204    liveins: $vgpr0, $vgpr1
205    ; WAVE64-LABEL: name: fcmp_uno_s32_vv
206    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
207    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
208    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_U_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
209    ; WAVE64: S_ENDPGM 0, implicit %2
210    ; WAVE32-LABEL: name: fcmp_uno_s32_vv
211    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
212    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
213    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_U_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
214    ; WAVE32: S_ENDPGM 0, implicit %2
215    %0:vgpr(s32) = COPY $vgpr0
216    %1:vgpr(s32) = COPY $vgpr1
217    %2:vcc(s1) = G_FCMP floatpred(uno), %0, %1
218    S_ENDPGM 0, implicit %2
219...
220
221---
222name: fcmp_ueq_s32_vv
223legalized: true
224regBankSelected: true
225
226body: |
227  bb.0:
228    liveins: $vgpr0, $vgpr1
229    ; WAVE64-LABEL: name: fcmp_ueq_s32_vv
230    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
231    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
232    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NLG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
233    ; WAVE64: S_ENDPGM 0, implicit %2
234    ; WAVE32-LABEL: name: fcmp_ueq_s32_vv
235    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
236    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
237    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NLG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
238    ; WAVE32: S_ENDPGM 0, implicit %2
239    %0:vgpr(s32) = COPY $vgpr0
240    %1:vgpr(s32) = COPY $vgpr1
241    %2:vcc(s1) = G_FCMP floatpred(ueq), %0, %1
242    S_ENDPGM 0, implicit %2
243...
244
245---
246name: fcmp_ugt_s32_vv
247legalized: true
248regBankSelected: true
249
250body: |
251  bb.0:
252    liveins: $vgpr0, $vgpr1
253    ; WAVE64-LABEL: name: fcmp_ugt_s32_vv
254    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
255    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
256    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NLE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
257    ; WAVE64: S_ENDPGM 0, implicit %2
258    ; WAVE32-LABEL: name: fcmp_ugt_s32_vv
259    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
260    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
261    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NLE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
262    ; WAVE32: S_ENDPGM 0, implicit %2
263    %0:vgpr(s32) = COPY $vgpr0
264    %1:vgpr(s32) = COPY $vgpr1
265    %2:vcc(s1) = G_FCMP floatpred(ugt), %0, %1
266    S_ENDPGM 0, implicit %2
267...
268
269---
270name: fcmp_uge_s32_vv
271legalized: true
272regBankSelected: true
273
274body: |
275  bb.0:
276    liveins: $vgpr0, $vgpr1
277    ; WAVE64-LABEL: name: fcmp_uge_s32_vv
278    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
279    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
280    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NLT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
281    ; WAVE64: S_ENDPGM 0, implicit %2
282    ; WAVE32-LABEL: name: fcmp_uge_s32_vv
283    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
284    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
285    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NLT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
286    ; WAVE32: S_ENDPGM 0, implicit %2
287    %0:vgpr(s32) = COPY $vgpr0
288    %1:vgpr(s32) = COPY $vgpr1
289    %2:vcc(s1) = G_FCMP floatpred(uge), %0, %1
290    S_ENDPGM 0, implicit %2
291...
292
293---
294name: fcmp_ult_s32_vv
295legalized: true
296regBankSelected: true
297
298body: |
299  bb.0:
300    liveins: $vgpr0, $vgpr1
301    ; WAVE64-LABEL: name: fcmp_ult_s32_vv
302    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
303    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
304    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NGE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
305    ; WAVE64: S_ENDPGM 0, implicit %2
306    ; WAVE32-LABEL: name: fcmp_ult_s32_vv
307    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
308    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
309    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NGE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
310    ; WAVE32: S_ENDPGM 0, implicit %2
311    %0:vgpr(s32) = COPY $vgpr0
312    %1:vgpr(s32) = COPY $vgpr1
313    %2:vcc(s1) = G_FCMP floatpred(ult), %0, %1
314    S_ENDPGM 0, implicit %2
315...
316
317---
318name: fcmp_ule_s32_vv
319legalized: true
320regBankSelected: true
321
322body: |
323  bb.0:
324    liveins: $vgpr0, $vgpr1
325    ; WAVE64-LABEL: name: fcmp_ule_s32_vv
326    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
327    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
328    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NGT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
329    ; WAVE64: S_ENDPGM 0, implicit %2
330    ; WAVE32-LABEL: name: fcmp_ule_s32_vv
331    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
332    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
333    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NGT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
334    ; WAVE32: S_ENDPGM 0, implicit %2
335    %0:vgpr(s32) = COPY $vgpr0
336    %1:vgpr(s32) = COPY $vgpr1
337    %2:vcc(s1) = G_FCMP floatpred(ule), %0, %1
338    S_ENDPGM 0, implicit %2
339...
340
341---
342name: fcmp_une_s32_vv
343legalized: true
344regBankSelected: true
345
346body: |
347  bb.0:
348    liveins: $vgpr0, $vgpr1
349    ; WAVE64-LABEL: name: fcmp_une_s32_vv
350    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
351    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
352    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NEQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
353    ; WAVE64: S_ENDPGM 0, implicit %2
354    ; WAVE32-LABEL: name: fcmp_une_s32_vv
355    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
356    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
357    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NEQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
358    ; WAVE32: S_ENDPGM 0, implicit %2
359    %0:vgpr(s32) = COPY $vgpr0
360    %1:vgpr(s32) = COPY $vgpr1
361    %2:vcc(s1) = G_FCMP floatpred(une), %0, %1
362    S_ENDPGM 0, implicit %2
363...
364
365---
366name: fcmp_true_s32_vv
367legalized: true
368regBankSelected: true
369
370body: |
371  bb.0:
372    liveins: $vgpr0, $vgpr1
373    ; WAVE64-LABEL: name: fcmp_true_s32_vv
374    ; WAVE64: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
375    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
376    ; WAVE64: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s32), [[COPY1]]
377    ; WAVE64: S_ENDPGM 0, implicit [[FCMP]](s1)
378    ; WAVE32-LABEL: name: fcmp_true_s32_vv
379    ; WAVE32: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
380    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
381    ; WAVE32: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s32), [[COPY1]]
382    ; WAVE32: S_ENDPGM 0, implicit [[FCMP]](s1)
383    %0:vgpr(s32) = COPY $vgpr0
384    %1:vgpr(s32) = COPY $vgpr1
385    %2:vcc(s1) = G_FCMP floatpred(true), %0, %1
386    S_ENDPGM 0, implicit %2
387...
388
389---
390name: fcmp_false_s64_vv
391legalized: true
392regBankSelected: true
393
394body: |
395  bb.0:
396    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
397    ; WAVE64-LABEL: name: fcmp_false_s64_vv
398    ; WAVE64: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
399    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
400    ; WAVE64: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s64), [[COPY1]]
401    ; WAVE64: S_ENDPGM 0, implicit [[FCMP]](s1)
402    ; WAVE32-LABEL: name: fcmp_false_s64_vv
403    ; WAVE32: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
404    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
405    ; WAVE32: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s64), [[COPY1]]
406    ; WAVE32: S_ENDPGM 0, implicit [[FCMP]](s1)
407    %0:vgpr(s64) = COPY $vgpr0_vgpr1
408    %1:vgpr(s64) = COPY $vgpr2_vgpr3
409    %2:vcc(s1) = G_FCMP floatpred(false), %0, %1
410    S_ENDPGM 0, implicit %2
411...
412
413---
414name: fcmp_oeq_s64_vv
415legalized: true
416regBankSelected: true
417
418body: |
419  bb.0:
420    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
421    ; WAVE64-LABEL: name: fcmp_oeq_s64_vv
422    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
423    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
424    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_EQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
425    ; WAVE64: S_ENDPGM 0, implicit %2
426    ; WAVE32-LABEL: name: fcmp_oeq_s64_vv
427    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
428    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
429    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_EQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
430    ; WAVE32: S_ENDPGM 0, implicit %2
431    %0:vgpr(s64) = COPY $vgpr0_vgpr1
432    %1:vgpr(s64) = COPY $vgpr2_vgpr3
433    %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1
434    S_ENDPGM 0, implicit %2
435...
436
437---
438name: fcmp_ogt_s64_vv
439legalized: true
440regBankSelected: true
441
442body: |
443  bb.0:
444    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
445    ; WAVE64-LABEL: name: fcmp_ogt_s64_vv
446    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
447    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
448    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_GT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
449    ; WAVE64: S_ENDPGM 0, implicit %2
450    ; WAVE32-LABEL: name: fcmp_ogt_s64_vv
451    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
452    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
453    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_GT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
454    ; WAVE32: S_ENDPGM 0, implicit %2
455    %0:vgpr(s64) = COPY $vgpr0_vgpr1
456    %1:vgpr(s64) = COPY $vgpr2_vgpr3
457    %2:vcc(s1) = G_FCMP floatpred(ogt), %0, %1
458    S_ENDPGM 0, implicit %2
459...
460
461---
462name: fcmp_oge_s64_vv
463legalized: true
464regBankSelected: true
465
466body: |
467  bb.0:
468    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
469    ; WAVE64-LABEL: name: fcmp_oge_s64_vv
470    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
471    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
472    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_GE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
473    ; WAVE64: S_ENDPGM 0, implicit %2
474    ; WAVE32-LABEL: name: fcmp_oge_s64_vv
475    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
476    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
477    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_GE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
478    ; WAVE32: S_ENDPGM 0, implicit %2
479    %0:vgpr(s64) = COPY $vgpr0_vgpr1
480    %1:vgpr(s64) = COPY $vgpr2_vgpr3
481    %2:vcc(s1) = G_FCMP floatpred(oge), %0, %1
482    S_ENDPGM 0, implicit %2
483...
484
485---
486name: fcmp_olt_s64_vv
487legalized: true
488regBankSelected: true
489
490body: |
491  bb.0:
492    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
493    ; WAVE64-LABEL: name: fcmp_olt_s64_vv
494    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
495    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
496    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_LT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
497    ; WAVE64: S_ENDPGM 0, implicit %2
498    ; WAVE32-LABEL: name: fcmp_olt_s64_vv
499    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
500    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
501    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_LT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
502    ; WAVE32: S_ENDPGM 0, implicit %2
503    %0:vgpr(s64) = COPY $vgpr0_vgpr1
504    %1:vgpr(s64) = COPY $vgpr2_vgpr3
505    %2:vcc(s1) = G_FCMP floatpred(olt), %0, %1
506    S_ENDPGM 0, implicit %2
507...
508
509---
510name: fcmp_ole_s64_vv
511legalized: true
512regBankSelected: true
513
514body: |
515  bb.0:
516    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
517    ; WAVE64-LABEL: name: fcmp_ole_s64_vv
518    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
519    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
520    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_LE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
521    ; WAVE64: S_ENDPGM 0, implicit %2
522    ; WAVE32-LABEL: name: fcmp_ole_s64_vv
523    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
524    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
525    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_LE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
526    ; WAVE32: S_ENDPGM 0, implicit %2
527    %0:vgpr(s64) = COPY $vgpr0_vgpr1
528    %1:vgpr(s64) = COPY $vgpr2_vgpr3
529    %2:vcc(s1) = G_FCMP floatpred(ole), %0, %1
530    S_ENDPGM 0, implicit %2
531...
532
533---
534name: fcmp_one_s64_vv
535legalized: true
536regBankSelected: true
537
538body: |
539  bb.0:
540    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
541    ; WAVE64-LABEL: name: fcmp_one_s64_vv
542    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
543    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
544    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_LG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
545    ; WAVE64: S_ENDPGM 0, implicit %2
546    ; WAVE32-LABEL: name: fcmp_one_s64_vv
547    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
548    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
549    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_LG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
550    ; WAVE32: S_ENDPGM 0, implicit %2
551    %0:vgpr(s64) = COPY $vgpr0_vgpr1
552    %1:vgpr(s64) = COPY $vgpr2_vgpr3
553    %2:vcc(s1) = G_FCMP floatpred(one), %0, %1
554    S_ENDPGM 0, implicit %2
555...
556
557---
558name: fcmp_ord_s64_vv
559legalized: true
560regBankSelected: true
561
562body: |
563  bb.0:
564    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
565    ; WAVE64-LABEL: name: fcmp_ord_s64_vv
566    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
567    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
568    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_O_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
569    ; WAVE64: S_ENDPGM 0, implicit %2
570    ; WAVE32-LABEL: name: fcmp_ord_s64_vv
571    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
572    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
573    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_O_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
574    ; WAVE32: S_ENDPGM 0, implicit %2
575    %0:vgpr(s64) = COPY $vgpr0_vgpr1
576    %1:vgpr(s64) = COPY $vgpr2_vgpr3
577    %2:vcc(s1) = G_FCMP floatpred(ord), %0, %1
578    S_ENDPGM 0, implicit %2
579...
580
581---
582name: fcmp_uno_s64_vv
583legalized: true
584regBankSelected: true
585
586body: |
587  bb.0:
588    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
589    ; WAVE64-LABEL: name: fcmp_uno_s64_vv
590    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
591    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
592    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_U_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
593    ; WAVE64: S_ENDPGM 0, implicit %2
594    ; WAVE32-LABEL: name: fcmp_uno_s64_vv
595    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
596    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
597    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_U_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
598    ; WAVE32: S_ENDPGM 0, implicit %2
599    %0:vgpr(s64) = COPY $vgpr0_vgpr1
600    %1:vgpr(s64) = COPY $vgpr2_vgpr3
601    %2:vcc(s1) = G_FCMP floatpred(uno), %0, %1
602    S_ENDPGM 0, implicit %2
603...
604
605---
606name: fcmp_ueq_s64_vv
607legalized: true
608regBankSelected: true
609
610body: |
611  bb.0:
612    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
613    ; WAVE64-LABEL: name: fcmp_ueq_s64_vv
614    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
615    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
616    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NLG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
617    ; WAVE64: S_ENDPGM 0, implicit %2
618    ; WAVE32-LABEL: name: fcmp_ueq_s64_vv
619    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
620    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
621    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NLG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
622    ; WAVE32: S_ENDPGM 0, implicit %2
623    %0:vgpr(s64) = COPY $vgpr0_vgpr1
624    %1:vgpr(s64) = COPY $vgpr2_vgpr3
625    %2:vcc(s1) = G_FCMP floatpred(ueq), %0, %1
626    S_ENDPGM 0, implicit %2
627...
628
629---
630name: fcmp_ugt_s64_vv
631legalized: true
632regBankSelected: true
633
634body: |
635  bb.0:
636    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
637    ; WAVE64-LABEL: name: fcmp_ugt_s64_vv
638    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
639    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
640    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NLE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
641    ; WAVE64: S_ENDPGM 0, implicit %2
642    ; WAVE32-LABEL: name: fcmp_ugt_s64_vv
643    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
644    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
645    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NLE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
646    ; WAVE32: S_ENDPGM 0, implicit %2
647    %0:vgpr(s64) = COPY $vgpr0_vgpr1
648    %1:vgpr(s64) = COPY $vgpr2_vgpr3
649    %2:vcc(s1) = G_FCMP floatpred(ugt), %0, %1
650    S_ENDPGM 0, implicit %2
651...
652
653---
654name: fcmp_uge_s64_vv
655legalized: true
656regBankSelected: true
657
658body: |
659  bb.0:
660    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
661    ; WAVE64-LABEL: name: fcmp_uge_s64_vv
662    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
663    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
664    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NLT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
665    ; WAVE64: S_ENDPGM 0, implicit %2
666    ; WAVE32-LABEL: name: fcmp_uge_s64_vv
667    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
668    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
669    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NLT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
670    ; WAVE32: S_ENDPGM 0, implicit %2
671    %0:vgpr(s64) = COPY $vgpr0_vgpr1
672    %1:vgpr(s64) = COPY $vgpr2_vgpr3
673    %2:vcc(s1) = G_FCMP floatpred(uge), %0, %1
674    S_ENDPGM 0, implicit %2
675...
676
677---
678name: fcmp_ult_s64_vv
679legalized: true
680regBankSelected: true
681
682body: |
683  bb.0:
684    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
685    ; WAVE64-LABEL: name: fcmp_ult_s64_vv
686    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
687    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
688    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NGE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
689    ; WAVE64: S_ENDPGM 0, implicit %2
690    ; WAVE32-LABEL: name: fcmp_ult_s64_vv
691    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
692    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
693    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NGE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
694    ; WAVE32: S_ENDPGM 0, implicit %2
695    %0:vgpr(s64) = COPY $vgpr0_vgpr1
696    %1:vgpr(s64) = COPY $vgpr2_vgpr3
697    %2:vcc(s1) = G_FCMP floatpred(ult), %0, %1
698    S_ENDPGM 0, implicit %2
699...
700
701---
702name: fcmp_ule_s64_vv
703legalized: true
704regBankSelected: true
705
706body: |
707  bb.0:
708    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
709    ; WAVE64-LABEL: name: fcmp_ule_s64_vv
710    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
711    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
712    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NGT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
713    ; WAVE64: S_ENDPGM 0, implicit %2
714    ; WAVE32-LABEL: name: fcmp_ule_s64_vv
715    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
716    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
717    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NGT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
718    ; WAVE32: S_ENDPGM 0, implicit %2
719    %0:vgpr(s64) = COPY $vgpr0_vgpr1
720    %1:vgpr(s64) = COPY $vgpr2_vgpr3
721    %2:vcc(s1) = G_FCMP floatpred(ule), %0, %1
722    S_ENDPGM 0, implicit %2
723...
724
725---
726name: fcmp_une_s64_vv
727legalized: true
728regBankSelected: true
729
730body: |
731  bb.0:
732    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
733    ; WAVE64-LABEL: name: fcmp_une_s64_vv
734    ; WAVE64: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
735    ; WAVE64: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
736    ; WAVE64: %2:sreg_64 = nofpexcept V_CMP_NEQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
737    ; WAVE64: S_ENDPGM 0, implicit %2
738    ; WAVE32-LABEL: name: fcmp_une_s64_vv
739    ; WAVE32: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
740    ; WAVE32: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
741    ; WAVE32: %2:sreg_32 = nofpexcept V_CMP_NEQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
742    ; WAVE32: S_ENDPGM 0, implicit %2
743    %0:vgpr(s64) = COPY $vgpr0_vgpr1
744    %1:vgpr(s64) = COPY $vgpr2_vgpr3
745    %2:vcc(s1) = G_FCMP floatpred(une), %0, %1
746    S_ENDPGM 0, implicit %2
747...
748
749---
750name: fcmp_true_s64_vv
751legalized: true
752regBankSelected: true
753
754body: |
755  bb.0:
756    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
757    ; WAVE64-LABEL: name: fcmp_true_s64_vv
758    ; WAVE64: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
759    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
760    ; WAVE64: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s64), [[COPY1]]
761    ; WAVE64: S_ENDPGM 0, implicit [[FCMP]](s1)
762    ; WAVE32-LABEL: name: fcmp_true_s64_vv
763    ; WAVE32: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
764    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3
765    ; WAVE32: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s64), [[COPY1]]
766    ; WAVE32: S_ENDPGM 0, implicit [[FCMP]](s1)
767    %0:vgpr(s64) = COPY $vgpr0_vgpr1
768    %1:vgpr(s64) = COPY $vgpr2_vgpr3
769    %2:vcc(s1) = G_FCMP floatpred(true), %0, %1
770    S_ENDPGM 0, implicit %2
771...
772
773---
774name: fcmp_oeq_s32_vv_select_user
775legalized: true
776regBankSelected: true
777
778body: |
779  bb.0:
780    liveins: $vgpr0, $vgpr1
781    ; WAVE64-LABEL: name: fcmp_oeq_s32_vv_select_user
782    ; WAVE64: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
783    ; WAVE64: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
784    ; WAVE64: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
785    ; WAVE64: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], %2, implicit $exec
786    ; WAVE64: S_ENDPGM 0, implicit [[V_CNDMASK_B32_e64_]]
787    ; WAVE32-LABEL: name: fcmp_oeq_s32_vv_select_user
788    ; WAVE32: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
789    ; WAVE32: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
790    ; WAVE32: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec
791    ; WAVE32: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], %2, implicit $exec
792    ; WAVE32: S_ENDPGM 0, implicit [[V_CNDMASK_B32_e64_]]
793    %0:vgpr(s32) = COPY $vgpr0
794    %1:vgpr(s32) = COPY $vgpr1
795    %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1
796    %3:vgpr(s32) = G_SELECT %2, %0, %1
797    S_ENDPGM 0, implicit %3
798...
799