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