1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -run-pass=si-fold-operands -o - %s | FileCheck -check-prefix=GFX8 %s
3 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -run-pass=si-fold-operands -o - %s | FileCheck -check-prefix=GFX9 %s
4 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -run-pass=si-fold-operands -o - %s | FileCheck -check-prefix=GFX10 %s
6 # Test we recognize all forms of and with mask as clearing the high bits.
8 name: v_cvt_f16_f32_altmask
9 tracksRegLiveness: true
13 ; GFX8-LABEL: name: v_cvt_f16_f32_altmask
14 ; GFX8: liveins: $vgpr0
15 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
16 ; GFX8: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec
17 ; GFX8: %smask:sreg_32 = S_MOV_B32 65535
18 ; GFX8: %vmask:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec
19 ; GFX8: $vgpr0 = COPY %op
20 ; GFX8: $vgpr1 = COPY %op
21 ; GFX8: $vgpr2 = COPY %op
22 ; GFX9-LABEL: name: v_cvt_f16_f32_altmask
23 ; GFX9: liveins: $vgpr0
24 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
25 ; GFX9: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec
26 ; GFX9: %smask:sreg_32 = S_MOV_B32 65535
27 ; GFX9: %vmask:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec
28 ; GFX9: $vgpr0 = COPY %op
29 ; GFX9: $vgpr1 = COPY %op
30 ; GFX9: $vgpr2 = COPY %op
31 ; GFX10-LABEL: name: v_cvt_f16_f32_altmask
32 ; GFX10: liveins: $vgpr0
33 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
34 ; GFX10: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec
35 ; GFX10: %and0:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
36 ; GFX10: %and1:vgpr_32 = V_AND_B32_e64 65535, %op, implicit $exec
37 ; GFX10: %and2:vgpr_32 = V_AND_B32_e64 65535, %op, implicit $exec
38 ; GFX10: $vgpr0 = COPY %and0
39 ; GFX10: $vgpr1 = COPY %and1
40 ; GFX10: $vgpr2 = COPY %and2
41 %0:vgpr_32 = COPY $vgpr0
42 %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed %0, 0, 0, implicit $mode, implicit $exec
43 %and0:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
44 %smask:sreg_32 = S_MOV_B32 65535
45 %and1:vgpr_32 = V_AND_B32_e64 %smask, %op, implicit $exec
46 %vmask:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec
47 %and2:vgpr_32 = V_AND_B32_e64 %vmask, %op, implicit $exec
54 # Test we do not assume the high bits are zero
56 name: wrong_mask_value
57 tracksRegLiveness: true
61 ; GFX8-LABEL: name: wrong_mask_value
62 ; GFX8: liveins: $vgpr0
63 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
64 ; GFX8: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec
65 ; GFX8: %mask:sreg_32 = S_MOV_B32 65534
66 ; GFX8: %and:vgpr_32 = V_AND_B32_e64 %mask, %op, implicit $exec
67 ; GFX8: $vgpr0 = COPY %and
68 ; GFX9-LABEL: name: wrong_mask_value
69 ; GFX9: liveins: $vgpr0
70 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
71 ; GFX9: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec
72 ; GFX9: %mask:sreg_32 = S_MOV_B32 65534
73 ; GFX9: %and:vgpr_32 = V_AND_B32_e64 %mask, %op, implicit $exec
74 ; GFX9: $vgpr0 = COPY %and
75 ; GFX10-LABEL: name: wrong_mask_value
76 ; GFX10: liveins: $vgpr0
77 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
78 ; GFX10: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec
79 ; GFX10: %and:vgpr_32 = V_AND_B32_e64 65534, %op, implicit $exec
80 ; GFX10: $vgpr0 = COPY %and
81 %0:vgpr_32 = COPY $vgpr0
82 %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed %0, 0, 0, implicit $mode, implicit $exec
83 %mask:sreg_32 = S_MOV_B32 65534
84 %and:vgpr_32 = V_AND_B32_e64 %mask, %op, implicit $exec
91 tracksRegLiveness: true
95 ; GFX8-LABEL: name: v_cvt_f16_f32
96 ; GFX8: liveins: $vgpr0
97 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
98 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
99 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[COPY]], implicit $mode, implicit $exec
100 ; GFX8: $vgpr0 = COPY %op_vop3
101 ; GFX8: $vgpr1 = COPY %op_vop1
102 ; GFX9-LABEL: name: v_cvt_f16_f32
103 ; GFX9: liveins: $vgpr0
104 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
105 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
106 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[COPY]], implicit $mode, implicit $exec
107 ; GFX9: $vgpr0 = COPY %op_vop3
108 ; GFX9: $vgpr1 = COPY %op_vop1
109 ; GFX10-LABEL: name: v_cvt_f16_f32
110 ; GFX10: liveins: $vgpr0
111 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
112 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
113 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[COPY]], implicit $mode, implicit $exec
114 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
115 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
116 ; GFX10: $vgpr0 = COPY %and_vop3
117 ; GFX10: $vgpr1 = COPY %and_vop1
118 %0:vgpr_32 = COPY $vgpr0
119 %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, %0, 0, 0, implicit $mode, implicit $exec
120 %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 %0, implicit $mode, implicit $exec
121 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
122 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
123 $vgpr0 = COPY %and_vop3
124 $vgpr1 = COPY %and_vop1
130 tracksRegLiveness: true
134 ; GFX8-LABEL: name: v_cvt_f16_u16
135 ; GFX8: liveins: $vgpr0
136 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
137 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec
138 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 [[COPY]], implicit $mode, implicit $exec
139 ; GFX8: $vgpr0 = COPY %op_vop3
140 ; GFX8: $vgpr1 = COPY %op_vop1
141 ; GFX9-LABEL: name: v_cvt_f16_u16
142 ; GFX9: liveins: $vgpr0
143 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
144 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec
145 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 [[COPY]], implicit $mode, implicit $exec
146 ; GFX9: $vgpr0 = COPY %op_vop3
147 ; GFX9: $vgpr1 = COPY %op_vop1
148 ; GFX10-LABEL: name: v_cvt_f16_u16
149 ; GFX10: liveins: $vgpr0
150 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
151 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec
152 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 [[COPY]], implicit $mode, implicit $exec
153 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
154 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
155 ; GFX10: $vgpr0 = COPY %and_vop3
156 ; GFX10: $vgpr1 = COPY %and_vop1
157 %0:vgpr_32 = COPY $vgpr0
158 %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 %0, 0, 0, implicit $mode, implicit $exec
159 %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 %0, implicit $mode, implicit $exec
160 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
161 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
162 $vgpr0 = COPY %and_vop3
163 $vgpr1 = COPY %and_vop1
169 tracksRegLiveness: true
173 ; GFX8-LABEL: name: v_cvt_f16_i16
174 ; GFX8: liveins: $vgpr0
175 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
176 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec
177 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 [[COPY]], implicit $mode, implicit $exec
178 ; GFX8: $vgpr0 = COPY %op_vop3
179 ; GFX8: $vgpr1 = COPY %op_vop1
180 ; GFX9-LABEL: name: v_cvt_f16_i16
181 ; GFX9: liveins: $vgpr0
182 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
183 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec
184 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 [[COPY]], implicit $mode, implicit $exec
185 ; GFX9: $vgpr0 = COPY %op_vop3
186 ; GFX9: $vgpr1 = COPY %op_vop1
187 ; GFX10-LABEL: name: v_cvt_f16_i16
188 ; GFX10: liveins: $vgpr0
189 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
190 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec
191 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 [[COPY]], implicit $mode, implicit $exec
192 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
193 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
194 ; GFX10: $vgpr0 = COPY %and_vop3
195 ; GFX10: $vgpr1 = COPY %and_vop1
196 %0:vgpr_32 = COPY $vgpr0
197 %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 %0, 0, 0, implicit $mode, implicit $exec
198 %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 %0, implicit $mode, implicit $exec
199 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
200 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
201 $vgpr0 = COPY %and_vop3
202 $vgpr1 = COPY %and_vop1
208 tracksRegLiveness: true
212 ; GFX8-LABEL: name: v_rcp_f16
213 ; GFX8: liveins: $vgpr0
214 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
215 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
216 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 [[COPY]], implicit $mode, implicit $exec
217 ; GFX8: $vgpr0 = COPY %op_vop3
218 ; GFX8: $vgpr1 = COPY %op_vop1
219 ; GFX9-LABEL: name: v_rcp_f16
220 ; GFX9: liveins: $vgpr0
221 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
222 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
223 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 [[COPY]], implicit $mode, implicit $exec
224 ; GFX9: $vgpr0 = COPY %op_vop3
225 ; GFX9: $vgpr1 = COPY %op_vop1
226 ; GFX10-LABEL: name: v_rcp_f16
227 ; GFX10: liveins: $vgpr0
228 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
229 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
230 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 [[COPY]], implicit $mode, implicit $exec
231 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
232 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
233 ; GFX10: $vgpr0 = COPY %and_vop3
234 ; GFX10: $vgpr1 = COPY %and_vop1
235 %0:vgpr_32 = COPY $vgpr0
236 %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
237 %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 %0, implicit $mode, implicit $exec
238 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
239 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
240 $vgpr0 = COPY %and_vop3
241 $vgpr1 = COPY %and_vop1
246 tracksRegLiveness: true
250 ; GFX8-LABEL: name: v_rsq_f16
251 ; GFX8: liveins: $vgpr0
252 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
253 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
254 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 [[COPY]], implicit $mode, implicit $exec
255 ; GFX8: $vgpr0 = COPY %op_vop3
256 ; GFX8: $vgpr1 = COPY %op_vop1
257 ; GFX9-LABEL: name: v_rsq_f16
258 ; GFX9: liveins: $vgpr0
259 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
260 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
261 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 [[COPY]], implicit $mode, implicit $exec
262 ; GFX9: $vgpr0 = COPY %op_vop3
263 ; GFX9: $vgpr1 = COPY %op_vop1
264 ; GFX10-LABEL: name: v_rsq_f16
265 ; GFX10: liveins: $vgpr0
266 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
267 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
268 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 [[COPY]], implicit $mode, implicit $exec
269 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
270 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
271 ; GFX10: $vgpr0 = COPY %and_vop3
272 ; GFX10: $vgpr1 = COPY %and_vop1
273 %0:vgpr_32 = COPY $vgpr0
274 %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
275 %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 %0, implicit $mode, implicit $exec
276 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
277 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
278 $vgpr0 = COPY %and_vop3
279 $vgpr1 = COPY %and_vop1
284 tracksRegLiveness: true
288 ; GFX8-LABEL: name: v_sqrt_f16
289 ; GFX8: liveins: $vgpr0
290 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
291 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
292 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 [[COPY]], implicit $mode, implicit $exec
293 ; GFX8: $vgpr0 = COPY %op_vop3
294 ; GFX8: $vgpr1 = COPY %op_vop1
295 ; GFX9-LABEL: name: v_sqrt_f16
296 ; GFX9: liveins: $vgpr0
297 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
298 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
299 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 [[COPY]], implicit $mode, implicit $exec
300 ; GFX9: $vgpr0 = COPY %op_vop3
301 ; GFX9: $vgpr1 = COPY %op_vop1
302 ; GFX10-LABEL: name: v_sqrt_f16
303 ; GFX10: liveins: $vgpr0
304 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
305 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
306 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 [[COPY]], implicit $mode, implicit $exec
307 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
308 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
309 ; GFX10: $vgpr0 = COPY %and_vop3
310 ; GFX10: $vgpr1 = COPY %and_vop1
311 %0:vgpr_32 = COPY $vgpr0
312 %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
313 %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 %0, implicit $mode, implicit $exec
314 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
315 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
316 $vgpr0 = COPY %and_vop3
317 $vgpr1 = COPY %and_vop1
323 tracksRegLiveness: true
327 ; GFX8-LABEL: name: v_log_f16
328 ; GFX8: liveins: $vgpr0
329 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
330 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
331 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 [[COPY]], implicit $mode, implicit $exec
332 ; GFX8: $vgpr0 = COPY %op_vop3
333 ; GFX8: $vgpr1 = COPY %op_vop1
334 ; GFX9-LABEL: name: v_log_f16
335 ; GFX9: liveins: $vgpr0
336 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
337 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
338 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 [[COPY]], implicit $mode, implicit $exec
339 ; GFX9: $vgpr0 = COPY %op_vop3
340 ; GFX9: $vgpr1 = COPY %op_vop1
341 ; GFX10-LABEL: name: v_log_f16
342 ; GFX10: liveins: $vgpr0
343 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
344 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
345 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 [[COPY]], implicit $mode, implicit $exec
346 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
347 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
348 ; GFX10: $vgpr0 = COPY %and_vop3
349 ; GFX10: $vgpr1 = COPY %and_vop1
350 %0:vgpr_32 = COPY $vgpr0
351 %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
352 %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 %0, implicit $mode, implicit $exec
353 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
354 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
355 $vgpr0 = COPY %and_vop3
356 $vgpr1 = COPY %and_vop1
362 tracksRegLiveness: true
366 ; GFX8-LABEL: name: v_exp_f16
367 ; GFX8: liveins: $vgpr0
368 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
369 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
370 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 [[COPY]], implicit $mode, implicit $exec
371 ; GFX8: $vgpr0 = COPY %op_vop3
372 ; GFX8: $vgpr1 = COPY %op_vop1
373 ; GFX9-LABEL: name: v_exp_f16
374 ; GFX9: liveins: $vgpr0
375 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
376 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
377 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 [[COPY]], implicit $mode, implicit $exec
378 ; GFX9: $vgpr0 = COPY %op_vop3
379 ; GFX9: $vgpr1 = COPY %op_vop1
380 ; GFX10-LABEL: name: v_exp_f16
381 ; GFX10: liveins: $vgpr0
382 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
383 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
384 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 [[COPY]], implicit $mode, implicit $exec
385 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
386 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
387 ; GFX10: $vgpr0 = COPY %and_vop3
388 ; GFX10: $vgpr1 = COPY %and_vop1
389 %0:vgpr_32 = COPY $vgpr0
390 %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
391 %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 %0, implicit $mode, implicit $exec
392 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
393 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
394 $vgpr0 = COPY %and_vop3
395 $vgpr1 = COPY %and_vop1
401 tracksRegLiveness: true
405 ; GFX8-LABEL: name: v_sin_f16
406 ; GFX8: liveins: $vgpr0
407 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
408 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
409 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 [[COPY]], implicit $mode, implicit $exec
410 ; GFX8: $vgpr0 = COPY %op_vop3
411 ; GFX8: $vgpr1 = COPY %op_vop1
412 ; GFX9-LABEL: name: v_sin_f16
413 ; GFX9: liveins: $vgpr0
414 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
415 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
416 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 [[COPY]], implicit $mode, implicit $exec
417 ; GFX9: $vgpr0 = COPY %op_vop3
418 ; GFX9: $vgpr1 = COPY %op_vop1
419 ; GFX10-LABEL: name: v_sin_f16
420 ; GFX10: liveins: $vgpr0
421 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
422 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
423 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 [[COPY]], implicit $mode, implicit $exec
424 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
425 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
426 ; GFX10: $vgpr0 = COPY %and_vop3
427 ; GFX10: $vgpr1 = COPY %and_vop1
428 %0:vgpr_32 = COPY $vgpr0
429 %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
430 %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 %0, implicit $mode, implicit $exec
431 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
432 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
433 $vgpr0 = COPY %and_vop3
434 $vgpr1 = COPY %and_vop1
440 tracksRegLiveness: true
444 ; GFX8-LABEL: name: v_cos_f16
445 ; GFX8: liveins: $vgpr0
446 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
447 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
448 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 [[COPY]], implicit $mode, implicit $exec
449 ; GFX8: $vgpr0 = COPY %op_vop3
450 ; GFX8: $vgpr1 = COPY %op_vop1
451 ; GFX9-LABEL: name: v_cos_f16
452 ; GFX9: liveins: $vgpr0
453 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
454 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
455 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 [[COPY]], implicit $mode, implicit $exec
456 ; GFX9: $vgpr0 = COPY %op_vop3
457 ; GFX9: $vgpr1 = COPY %op_vop1
458 ; GFX10-LABEL: name: v_cos_f16
459 ; GFX10: liveins: $vgpr0
460 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
461 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
462 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 [[COPY]], implicit $mode, implicit $exec
463 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
464 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
465 ; GFX10: $vgpr0 = COPY %and_vop3
466 ; GFX10: $vgpr1 = COPY %and_vop1
467 %0:vgpr_32 = COPY $vgpr0
468 %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
469 %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 %0, implicit $mode, implicit $exec
470 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
471 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
472 $vgpr0 = COPY %and_vop3
473 $vgpr1 = COPY %and_vop1
479 tracksRegLiveness: true
483 ; GFX8-LABEL: name: v_floor_f16
484 ; GFX8: liveins: $vgpr0
485 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
486 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
487 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 [[COPY]], implicit $mode, implicit $exec
488 ; GFX8: $vgpr0 = COPY %op_vop3
489 ; GFX8: $vgpr1 = COPY %op_vop1
490 ; GFX9-LABEL: name: v_floor_f16
491 ; GFX9: liveins: $vgpr0
492 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
493 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
494 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 [[COPY]], implicit $mode, implicit $exec
495 ; GFX9: $vgpr0 = COPY %op_vop3
496 ; GFX9: $vgpr1 = COPY %op_vop1
497 ; GFX10-LABEL: name: v_floor_f16
498 ; GFX10: liveins: $vgpr0
499 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
500 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
501 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 [[COPY]], implicit $mode, implicit $exec
502 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
503 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
504 ; GFX10: $vgpr0 = COPY %and_vop3
505 ; GFX10: $vgpr1 = COPY %and_vop1
506 %0:vgpr_32 = COPY $vgpr0
507 %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
508 %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 %0, implicit $mode, implicit $exec
509 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
510 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
511 $vgpr0 = COPY %and_vop3
512 $vgpr1 = COPY %and_vop1
518 tracksRegLiveness: true
522 ; GFX8-LABEL: name: v_ceil_f16
523 ; GFX8: liveins: $vgpr0
524 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
525 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
526 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 [[COPY]], implicit $mode, implicit $exec
527 ; GFX8: $vgpr0 = COPY %op_vop3
528 ; GFX8: $vgpr1 = COPY %op_vop1
529 ; GFX9-LABEL: name: v_ceil_f16
530 ; GFX9: liveins: $vgpr0
531 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
532 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
533 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 [[COPY]], implicit $mode, implicit $exec
534 ; GFX9: $vgpr0 = COPY %op_vop3
535 ; GFX9: $vgpr1 = COPY %op_vop1
536 ; GFX10-LABEL: name: v_ceil_f16
537 ; GFX10: liveins: $vgpr0
538 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
539 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
540 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 [[COPY]], implicit $mode, implicit $exec
541 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
542 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
543 ; GFX10: $vgpr0 = COPY %and_vop3
544 ; GFX10: $vgpr1 = COPY %and_vop1
545 %0:vgpr_32 = COPY $vgpr0
546 %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
547 %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 %0, implicit $mode, implicit $exec
548 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
549 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
550 $vgpr0 = COPY %and_vop3
551 $vgpr1 = COPY %and_vop1
557 tracksRegLiveness: true
561 ; GFX8-LABEL: name: v_trunc_f16
562 ; GFX8: liveins: $vgpr0
563 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
564 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
565 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 [[COPY]], implicit $mode, implicit $exec
566 ; GFX8: $vgpr0 = COPY %op_vop3
567 ; GFX8: $vgpr1 = COPY %op_vop1
568 ; GFX9-LABEL: name: v_trunc_f16
569 ; GFX9: liveins: $vgpr0
570 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
571 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
572 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 [[COPY]], implicit $mode, implicit $exec
573 ; GFX9: $vgpr0 = COPY %op_vop3
574 ; GFX9: $vgpr1 = COPY %op_vop1
575 ; GFX10-LABEL: name: v_trunc_f16
576 ; GFX10: liveins: $vgpr0
577 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
578 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
579 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 [[COPY]], implicit $mode, implicit $exec
580 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
581 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
582 ; GFX10: $vgpr0 = COPY %and_vop3
583 ; GFX10: $vgpr1 = COPY %and_vop1
584 %0:vgpr_32 = COPY $vgpr0
585 %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
586 %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 %0, implicit $mode, implicit $exec
587 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
588 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
589 $vgpr0 = COPY %and_vop3
590 $vgpr1 = COPY %and_vop1
596 tracksRegLiveness: true
600 ; GFX8-LABEL: name: v_rndne_f16
601 ; GFX8: liveins: $vgpr0
602 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
603 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
604 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 [[COPY]], implicit $mode, implicit $exec
605 ; GFX8: $vgpr0 = COPY %op_vop3
606 ; GFX8: $vgpr1 = COPY %op_vop1
607 ; GFX9-LABEL: name: v_rndne_f16
608 ; GFX9: liveins: $vgpr0
609 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
610 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
611 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 [[COPY]], implicit $mode, implicit $exec
612 ; GFX9: $vgpr0 = COPY %op_vop3
613 ; GFX9: $vgpr1 = COPY %op_vop1
614 ; GFX10-LABEL: name: v_rndne_f16
615 ; GFX10: liveins: $vgpr0
616 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
617 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
618 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 [[COPY]], implicit $mode, implicit $exec
619 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
620 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
621 ; GFX10: $vgpr0 = COPY %and_vop3
622 ; GFX10: $vgpr1 = COPY %and_vop1
623 %0:vgpr_32 = COPY $vgpr0
624 %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
625 %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 %0, implicit $mode, implicit $exec
626 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
627 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
628 $vgpr0 = COPY %and_vop3
629 $vgpr1 = COPY %and_vop1
635 tracksRegLiveness: true
639 ; GFX8-LABEL: name: v_fract_f16
640 ; GFX8: liveins: $vgpr0
641 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
642 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
643 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 [[COPY]], implicit $mode, implicit $exec
644 ; GFX8: $vgpr0 = COPY %op_vop3
645 ; GFX8: $vgpr1 = COPY %op_vop1
646 ; GFX9-LABEL: name: v_fract_f16
647 ; GFX9: liveins: $vgpr0
648 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
649 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
650 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 [[COPY]], implicit $mode, implicit $exec
651 ; GFX9: $vgpr0 = COPY %op_vop3
652 ; GFX9: $vgpr1 = COPY %op_vop1
653 ; GFX10-LABEL: name: v_fract_f16
654 ; GFX10: liveins: $vgpr0
655 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
656 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
657 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 [[COPY]], implicit $mode, implicit $exec
658 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
659 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
660 ; GFX10: $vgpr0 = COPY %and_vop3
661 ; GFX10: $vgpr1 = COPY %and_vop1
662 %0:vgpr_32 = COPY $vgpr0
663 %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
664 %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 %0, implicit $mode, implicit $exec
665 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
666 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
667 $vgpr0 = COPY %and_vop3
668 $vgpr1 = COPY %and_vop1
673 name: v_frexp_mant_f16
674 tracksRegLiveness: true
678 ; GFX8-LABEL: name: v_frexp_mant_f16
679 ; GFX8: liveins: $vgpr0
680 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
681 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
682 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 [[COPY]], implicit $mode, implicit $exec
683 ; GFX8: $vgpr0 = COPY %op_vop3
684 ; GFX8: $vgpr1 = COPY %op_vop1
685 ; GFX9-LABEL: name: v_frexp_mant_f16
686 ; GFX9: liveins: $vgpr0
687 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
688 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
689 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 [[COPY]], implicit $mode, implicit $exec
690 ; GFX9: $vgpr0 = COPY %op_vop3
691 ; GFX9: $vgpr1 = COPY %op_vop1
692 ; GFX10-LABEL: name: v_frexp_mant_f16
693 ; GFX10: liveins: $vgpr0
694 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
695 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
696 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 [[COPY]], implicit $mode, implicit $exec
697 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
698 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
699 ; GFX10: $vgpr0 = COPY %and_vop3
700 ; GFX10: $vgpr1 = COPY %and_vop1
701 %0:vgpr_32 = COPY $vgpr0
702 %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
703 %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 %0, implicit $mode, implicit $exec
704 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
705 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
706 $vgpr0 = COPY %and_vop3
707 $vgpr1 = COPY %and_vop1
712 name: v_frexp_exp_f16
713 tracksRegLiveness: true
717 ; GFX8-LABEL: name: v_frexp_exp_f16
718 ; GFX8: liveins: $vgpr0
719 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
720 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
721 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 [[COPY]], implicit $mode, implicit $exec
722 ; GFX8: $vgpr0 = COPY %op_vop3
723 ; GFX8: $vgpr1 = COPY %op_vop1
724 ; GFX9-LABEL: name: v_frexp_exp_f16
725 ; GFX9: liveins: $vgpr0
726 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
727 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
728 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 [[COPY]], implicit $mode, implicit $exec
729 ; GFX9: $vgpr0 = COPY %op_vop3
730 ; GFX9: $vgpr1 = COPY %op_vop1
731 ; GFX10-LABEL: name: v_frexp_exp_f16
732 ; GFX10: liveins: $vgpr0
733 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
734 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec
735 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 [[COPY]], implicit $mode, implicit $exec
736 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
737 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
738 ; GFX10: $vgpr0 = COPY %and_vop3
739 ; GFX10: $vgpr1 = COPY %and_vop1
740 %0:vgpr_32 = COPY $vgpr0
741 %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec
742 %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 %0, implicit $mode, implicit $exec
743 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
744 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
745 $vgpr0 = COPY %and_vop3
746 $vgpr1 = COPY %and_vop1
752 tracksRegLiveness: true
755 liveins: $vgpr0, $vgpr1
756 ; GFX8-LABEL: name: v_ldexp_f16
757 ; GFX8: liveins: $vgpr0, $vgpr1
758 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
759 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
760 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
761 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
762 ; GFX8: $vgpr0 = COPY %op_vop3
763 ; GFX8: $vgpr1 = COPY %op_vop1
764 ; GFX9-LABEL: name: v_ldexp_f16
765 ; GFX9: liveins: $vgpr0, $vgpr1
766 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
767 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
768 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
769 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
770 ; GFX9: $vgpr0 = COPY %op_vop3
771 ; GFX9: $vgpr1 = COPY %op_vop1
772 ; GFX10-LABEL: name: v_ldexp_f16
773 ; GFX10: liveins: $vgpr0, $vgpr1
774 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
775 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
776 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
777 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
778 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
779 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
780 ; GFX10: $vgpr0 = COPY %and_vop3
781 ; GFX10: $vgpr1 = COPY %and_vop2
782 %0:vgpr_32 = COPY $vgpr0
783 %1:vgpr_32 = COPY $vgpr1
784 %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
785 %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 %0, %1, implicit $mode, implicit $exec
786 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
787 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
788 $vgpr0 = COPY %and_vop3
789 $vgpr1 = COPY %and_vop2
795 tracksRegLiveness: true
798 liveins: $vgpr0, $vgpr1
799 ; GFX8-LABEL: name: v_lshlrev_b16
800 ; GFX8: liveins: $vgpr0, $vgpr1
801 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
802 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
803 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
804 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
805 ; GFX8: $vgpr0 = COPY %op_vop3
806 ; GFX8: $vgpr1 = COPY %op_vop2
807 ; GFX9-LABEL: name: v_lshlrev_b16
808 ; GFX9: liveins: $vgpr0, $vgpr1
809 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
810 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
811 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
812 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
813 ; GFX9: $vgpr0 = COPY %op_vop3
814 ; GFX9: $vgpr1 = COPY %op_vop2
815 ; GFX10-LABEL: name: v_lshlrev_b16
816 ; GFX10: liveins: $vgpr0, $vgpr1
817 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
818 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
819 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
820 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
821 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
822 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
823 ; GFX10: $vgpr0 = COPY %and_vop3
824 ; GFX10: $vgpr1 = COPY %and_vop2
825 %0:vgpr_32 = COPY $vgpr0
826 %1:vgpr_32 = COPY $vgpr1
827 %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 %0, %1, implicit $mode, implicit $exec
828 %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 %0, %1, implicit $mode, implicit $exec
829 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
830 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
831 $vgpr0 = COPY %and_vop3
832 $vgpr1 = COPY %and_vop2
838 tracksRegLiveness: true
841 liveins: $vgpr0, $vgpr1
842 ; GFX8-LABEL: name: v_lshrrev_b16
843 ; GFX8: liveins: $vgpr0, $vgpr1
844 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
845 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
846 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
847 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
848 ; GFX8: $vgpr0 = COPY %op_vop3
849 ; GFX8: $vgpr1 = COPY %op_vop2
850 ; GFX9-LABEL: name: v_lshrrev_b16
851 ; GFX9: liveins: $vgpr0, $vgpr1
852 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
853 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
854 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
855 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
856 ; GFX9: $vgpr0 = COPY %op_vop3
857 ; GFX9: $vgpr1 = COPY %op_vop2
858 ; GFX10-LABEL: name: v_lshrrev_b16
859 ; GFX10: liveins: $vgpr0, $vgpr1
860 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
861 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
862 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
863 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
864 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
865 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
866 ; GFX10: $vgpr0 = COPY %and_vop3
867 ; GFX10: $vgpr1 = COPY %and_vop2
868 %0:vgpr_32 = COPY $vgpr0
869 %1:vgpr_32 = COPY $vgpr1
870 %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 %0, %1, implicit $mode, implicit $exec
871 %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 %0, %1, implicit $mode, implicit $exec
872 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
873 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
874 $vgpr0 = COPY %and_vop3
875 $vgpr1 = COPY %and_vop2
881 tracksRegLiveness: true
884 liveins: $vgpr0, $vgpr1
885 ; GFX8-LABEL: name: v_ashrrev_i16
886 ; GFX8: liveins: $vgpr0, $vgpr1
887 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
888 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
889 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
890 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
891 ; GFX8: $vgpr0 = COPY %op_vop3
892 ; GFX8: $vgpr1 = COPY %op_vop2
893 ; GFX9-LABEL: name: v_ashrrev_i16
894 ; GFX9: liveins: $vgpr0, $vgpr1
895 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
896 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
897 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
898 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
899 ; GFX9: $vgpr0 = COPY %op_vop3
900 ; GFX9: $vgpr1 = COPY %op_vop2
901 ; GFX10-LABEL: name: v_ashrrev_i16
902 ; GFX10: liveins: $vgpr0, $vgpr1
903 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
904 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
905 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
906 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
907 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
908 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
909 ; GFX10: $vgpr0 = COPY %and_vop3
910 ; GFX10: $vgpr1 = COPY %and_vop2
911 %0:vgpr_32 = COPY $vgpr0
912 %1:vgpr_32 = COPY $vgpr1
913 %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 %0, %1, implicit $mode, implicit $exec
914 %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 %0, %1, implicit $mode, implicit $exec
915 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
916 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
917 $vgpr0 = COPY %and_vop3
918 $vgpr1 = COPY %and_vop2
924 tracksRegLiveness: true
927 liveins: $vgpr0, $vgpr1
928 ; GFX8-LABEL: name: v_add_u16
929 ; GFX8: liveins: $vgpr0, $vgpr1
930 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
931 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
932 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
933 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
934 ; GFX8: $vgpr0 = COPY %op_vop3
935 ; GFX8: $vgpr1 = COPY %op_vop2
936 ; GFX9-LABEL: name: v_add_u16
937 ; GFX9: liveins: $vgpr0, $vgpr1
938 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
939 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
940 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
941 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
942 ; GFX9: $vgpr0 = COPY %op_vop3
943 ; GFX9: $vgpr1 = COPY %op_vop2
944 ; GFX10-LABEL: name: v_add_u16
945 ; GFX10: liveins: $vgpr0, $vgpr1
946 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
947 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
948 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
949 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
950 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
951 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
952 ; GFX10: $vgpr0 = COPY %and_vop3
953 ; GFX10: $vgpr1 = COPY %and_vop2
954 %0:vgpr_32 = COPY $vgpr0
955 %1:vgpr_32 = COPY $vgpr1
956 %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 %0, %1, 0, implicit $mode, implicit $exec
957 %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 %0, %1, implicit $mode, implicit $exec
958 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
959 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
960 $vgpr0 = COPY %and_vop3
961 $vgpr1 = COPY %and_vop2
967 tracksRegLiveness: true
970 liveins: $vgpr0, $vgpr1
971 ; GFX8-LABEL: name: v_sub_u16
972 ; GFX8: liveins: $vgpr0, $vgpr1
973 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
974 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
975 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
976 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
977 ; GFX8: $vgpr0 = COPY %op_vop3
978 ; GFX8: $vgpr1 = COPY %op_vop2
979 ; GFX9-LABEL: name: v_sub_u16
980 ; GFX9: liveins: $vgpr0, $vgpr1
981 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
982 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
983 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
984 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
985 ; GFX9: $vgpr0 = COPY %op_vop3
986 ; GFX9: $vgpr1 = COPY %op_vop2
987 ; GFX10-LABEL: name: v_sub_u16
988 ; GFX10: liveins: $vgpr0, $vgpr1
989 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
990 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
991 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
992 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
993 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
994 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
995 ; GFX10: $vgpr0 = COPY %and_vop3
996 ; GFX10: $vgpr1 = COPY %and_vop2
997 %0:vgpr_32 = COPY $vgpr0
998 %1:vgpr_32 = COPY $vgpr1
999 %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 %0, %1, 0, implicit $mode, implicit $exec
1000 %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 %0, %1, implicit $mode, implicit $exec
1001 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1002 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1003 $vgpr0 = COPY %and_vop3
1004 $vgpr1 = COPY %and_vop2
1010 tracksRegLiveness: true
1013 liveins: $vgpr0, $vgpr1
1014 ; GFX8-LABEL: name: v_subrev_u16
1015 ; GFX8: liveins: $vgpr0, $vgpr1
1016 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1017 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1018 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
1019 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1020 ; GFX8: $vgpr0 = COPY %op_vop3
1021 ; GFX8: $vgpr1 = COPY %op_vop2
1022 ; GFX9-LABEL: name: v_subrev_u16
1023 ; GFX9: liveins: $vgpr0, $vgpr1
1024 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1025 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1026 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
1027 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1028 ; GFX9: $vgpr0 = COPY %op_vop3
1029 ; GFX9: $vgpr1 = COPY %op_vop2
1030 ; GFX10-LABEL: name: v_subrev_u16
1031 ; GFX10: liveins: $vgpr0, $vgpr1
1032 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1033 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1034 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec
1035 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1036 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1037 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1038 ; GFX10: $vgpr0 = COPY %and_vop3
1039 ; GFX10: $vgpr1 = COPY %and_vop2
1040 %0:vgpr_32 = COPY $vgpr0
1041 %1:vgpr_32 = COPY $vgpr1
1042 %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 %0, %1, 0, implicit $mode, implicit $exec
1043 %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 %0, %1, implicit $mode, implicit $exec
1044 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1045 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1046 $vgpr0 = COPY %and_vop3
1047 $vgpr1 = COPY %and_vop2
1053 tracksRegLiveness: true
1056 liveins: $vgpr0, $vgpr1
1057 ; GFX8-LABEL: name: v_mul_lo_u16
1058 ; GFX8: liveins: $vgpr0, $vgpr1
1059 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1060 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1061 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1062 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1063 ; GFX8: $vgpr0 = COPY %op_vop3
1064 ; GFX8: $vgpr1 = COPY %op_vop2
1065 ; GFX9-LABEL: name: v_mul_lo_u16
1066 ; GFX9: liveins: $vgpr0, $vgpr1
1067 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1068 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1069 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1070 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1071 ; GFX9: $vgpr0 = COPY %op_vop3
1072 ; GFX9: $vgpr1 = COPY %op_vop2
1073 ; GFX10-LABEL: name: v_mul_lo_u16
1074 ; GFX10: liveins: $vgpr0, $vgpr1
1075 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1076 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1077 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1078 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1079 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1080 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1081 ; GFX10: $vgpr0 = COPY %and_vop3
1082 ; GFX10: $vgpr1 = COPY %and_vop2
1083 %0:vgpr_32 = COPY $vgpr0
1084 %1:vgpr_32 = COPY $vgpr1
1085 %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 %0, %1, implicit $mode, implicit $exec
1086 %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 %0, %1, implicit $mode, implicit $exec
1087 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1088 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1089 $vgpr0 = COPY %and_vop3
1090 $vgpr1 = COPY %and_vop2
1096 tracksRegLiveness: true
1099 liveins: $vgpr0, $vgpr1
1100 ; GFX8-LABEL: name: v_add_f16
1101 ; GFX8: liveins: $vgpr0, $vgpr1
1102 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1103 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1104 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1105 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1106 ; GFX8: $vgpr0 = COPY %op_vop3
1107 ; GFX8: $vgpr1 = COPY %op_vop1
1108 ; GFX9-LABEL: name: v_add_f16
1109 ; GFX9: liveins: $vgpr0, $vgpr1
1110 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1111 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1112 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1113 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1114 ; GFX9: $vgpr0 = COPY %op_vop3
1115 ; GFX9: $vgpr1 = COPY %op_vop1
1116 ; GFX10-LABEL: name: v_add_f16
1117 ; GFX10: liveins: $vgpr0, $vgpr1
1118 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1119 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1120 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1121 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1122 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1123 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1124 ; GFX10: $vgpr0 = COPY %and_vop3
1125 ; GFX10: $vgpr1 = COPY %and_vop2
1126 %0:vgpr_32 = COPY $vgpr0
1127 %1:vgpr_32 = COPY $vgpr1
1128 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
1129 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec
1130 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1131 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1132 $vgpr0 = COPY %and_vop3
1133 $vgpr1 = COPY %and_vop2
1139 tracksRegLiveness: true
1142 liveins: $vgpr0, $vgpr1
1143 ; GFX8-LABEL: name: v_sub_f16
1144 ; GFX8: liveins: $vgpr0, $vgpr1
1145 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1146 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1147 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1148 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1149 ; GFX8: $vgpr0 = COPY %op_vop3
1150 ; GFX8: $vgpr1 = COPY %op_vop1
1151 ; GFX9-LABEL: name: v_sub_f16
1152 ; GFX9: liveins: $vgpr0, $vgpr1
1153 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1154 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1155 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1156 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1157 ; GFX9: $vgpr0 = COPY %op_vop3
1158 ; GFX9: $vgpr1 = COPY %op_vop1
1159 ; GFX10-LABEL: name: v_sub_f16
1160 ; GFX10: liveins: $vgpr0, $vgpr1
1161 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1162 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1163 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1164 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1165 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1166 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1167 ; GFX10: $vgpr0 = COPY %and_vop3
1168 ; GFX10: $vgpr1 = COPY %and_vop2
1169 %0:vgpr_32 = COPY $vgpr0
1170 %1:vgpr_32 = COPY $vgpr1
1171 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
1172 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec
1173 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1174 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1175 $vgpr0 = COPY %and_vop3
1176 $vgpr1 = COPY %and_vop2
1182 tracksRegLiveness: true
1185 liveins: $vgpr0, $vgpr1
1186 ; GFX8-LABEL: name: v_subrev_f16
1187 ; GFX8: liveins: $vgpr0, $vgpr1
1188 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1189 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1190 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1191 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1192 ; GFX8: $vgpr0 = COPY %op_vop3
1193 ; GFX8: $vgpr1 = COPY %op_vop1
1194 ; GFX9-LABEL: name: v_subrev_f16
1195 ; GFX9: liveins: $vgpr0, $vgpr1
1196 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1197 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1198 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1199 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1200 ; GFX9: $vgpr0 = COPY %op_vop3
1201 ; GFX9: $vgpr1 = COPY %op_vop1
1202 ; GFX10-LABEL: name: v_subrev_f16
1203 ; GFX10: liveins: $vgpr0, $vgpr1
1204 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1205 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1206 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1207 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1208 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1209 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1210 ; GFX10: $vgpr0 = COPY %and_vop3
1211 ; GFX10: $vgpr1 = COPY %and_vop2
1212 %0:vgpr_32 = COPY $vgpr0
1213 %1:vgpr_32 = COPY $vgpr1
1214 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
1215 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec
1216 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1217 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1218 $vgpr0 = COPY %and_vop3
1219 $vgpr1 = COPY %and_vop2
1225 tracksRegLiveness: true
1228 liveins: $vgpr0, $vgpr1
1229 ; GFX8-LABEL: name: v_mul_f16
1230 ; GFX8: liveins: $vgpr0, $vgpr1
1231 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1232 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1233 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1234 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1235 ; GFX8: $vgpr0 = COPY %op_vop3
1236 ; GFX8: $vgpr1 = COPY %op_vop1
1237 ; GFX9-LABEL: name: v_mul_f16
1238 ; GFX9: liveins: $vgpr0, $vgpr1
1239 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1240 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1241 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1242 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1243 ; GFX9: $vgpr0 = COPY %op_vop3
1244 ; GFX9: $vgpr1 = COPY %op_vop1
1245 ; GFX10-LABEL: name: v_mul_f16
1246 ; GFX10: liveins: $vgpr0, $vgpr1
1247 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1248 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1249 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1250 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1251 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1252 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1253 ; GFX10: $vgpr0 = COPY %and_vop3
1254 ; GFX10: $vgpr1 = COPY %and_vop2
1255 %0:vgpr_32 = COPY $vgpr0
1256 %1:vgpr_32 = COPY $vgpr1
1257 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
1258 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec
1259 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1260 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1261 $vgpr0 = COPY %and_vop3
1262 $vgpr1 = COPY %and_vop2
1268 tracksRegLiveness: true
1271 liveins: $vgpr0, $vgpr1
1272 ; GFX8-LABEL: name: v_max_f16
1273 ; GFX8: liveins: $vgpr0, $vgpr1
1274 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1275 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1276 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1277 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1278 ; GFX8: $vgpr0 = COPY %op_vop3
1279 ; GFX8: $vgpr1 = COPY %op_vop1
1280 ; GFX9-LABEL: name: v_max_f16
1281 ; GFX9: liveins: $vgpr0, $vgpr1
1282 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1283 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1284 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1285 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1286 ; GFX9: $vgpr0 = COPY %op_vop3
1287 ; GFX9: $vgpr1 = COPY %op_vop1
1288 ; GFX10-LABEL: name: v_max_f16
1289 ; GFX10: liveins: $vgpr0, $vgpr1
1290 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1291 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1292 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1293 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1294 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1295 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1296 ; GFX10: $vgpr0 = COPY %and_vop3
1297 ; GFX10: $vgpr1 = COPY %and_vop2
1298 %0:vgpr_32 = COPY $vgpr0
1299 %1:vgpr_32 = COPY $vgpr1
1300 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
1301 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec
1302 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1303 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1304 $vgpr0 = COPY %and_vop3
1305 $vgpr1 = COPY %and_vop2
1311 tracksRegLiveness: true
1314 liveins: $vgpr0, $vgpr1
1315 ; GFX8-LABEL: name: v_min_f16
1316 ; GFX8: liveins: $vgpr0, $vgpr1
1317 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1318 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1319 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1320 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1321 ; GFX8: $vgpr0 = COPY %op_vop3
1322 ; GFX8: $vgpr1 = COPY %op_vop1
1323 ; GFX9-LABEL: name: v_min_f16
1324 ; GFX9: liveins: $vgpr0, $vgpr1
1325 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1326 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1327 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1328 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1329 ; GFX9: $vgpr0 = COPY %op_vop3
1330 ; GFX9: $vgpr1 = COPY %op_vop1
1331 ; GFX10-LABEL: name: v_min_f16
1332 ; GFX10: liveins: $vgpr0, $vgpr1
1333 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1334 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1335 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec
1336 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1337 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1338 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1339 ; GFX10: $vgpr0 = COPY %and_vop3
1340 ; GFX10: $vgpr1 = COPY %and_vop2
1341 %0:vgpr_32 = COPY $vgpr0
1342 %1:vgpr_32 = COPY $vgpr1
1343 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
1344 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec
1345 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1346 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec
1347 $vgpr0 = COPY %and_vop3
1348 $vgpr1 = COPY %and_vop2
1354 tracksRegLiveness: true
1357 liveins: $vgpr0, $vgpr1
1358 ; GFX8-LABEL: name: v_max_u16
1359 ; GFX8: liveins: $vgpr0, $vgpr1
1360 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1361 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1362 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1363 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1364 ; GFX8: $vgpr0 = COPY %op_vop3
1365 ; GFX8: $vgpr1 = COPY %op_vop2
1366 ; GFX9-LABEL: name: v_max_u16
1367 ; GFX9: liveins: $vgpr0, $vgpr1
1368 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1369 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1370 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1371 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1372 ; GFX9: $vgpr0 = COPY %op_vop3
1373 ; GFX9: $vgpr1 = COPY %op_vop2
1374 ; GFX10-LABEL: name: v_max_u16
1375 ; GFX10: liveins: $vgpr0, $vgpr1
1376 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1377 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1378 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1379 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1380 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1381 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1382 ; GFX10: $vgpr0 = COPY %and_vop3
1383 ; GFX10: $vgpr1 = COPY %and_vop2
1384 %0:vgpr_32 = COPY $vgpr0
1385 %1:vgpr_32 = COPY $vgpr1
1386 %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 %0, %1, implicit $mode, implicit $exec
1387 %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 %0, %1, implicit $mode, implicit $exec
1388 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1389 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1390 $vgpr0 = COPY %and_vop3
1391 $vgpr1 = COPY %and_vop2
1396 tracksRegLiveness: true
1399 liveins: $vgpr0, $vgpr1
1400 ; GFX8-LABEL: name: v_min_u16
1401 ; GFX8: liveins: $vgpr0, $vgpr1
1402 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1403 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1404 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1405 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1406 ; GFX8: $vgpr0 = COPY %op_vop3
1407 ; GFX8: $vgpr1 = COPY %op_vop2
1408 ; GFX9-LABEL: name: v_min_u16
1409 ; GFX9: liveins: $vgpr0, $vgpr1
1410 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1411 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1412 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1413 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1414 ; GFX9: $vgpr0 = COPY %op_vop3
1415 ; GFX9: $vgpr1 = COPY %op_vop2
1416 ; GFX10-LABEL: name: v_min_u16
1417 ; GFX10: liveins: $vgpr0, $vgpr1
1418 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1419 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1420 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1421 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1422 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1423 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1424 ; GFX10: $vgpr0 = COPY %and_vop3
1425 ; GFX10: $vgpr1 = COPY %and_vop2
1426 %0:vgpr_32 = COPY $vgpr0
1427 %1:vgpr_32 = COPY $vgpr1
1428 %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 %0, %1, implicit $mode, implicit $exec
1429 %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 %0, %1, implicit $mode, implicit $exec
1430 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1431 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1432 $vgpr0 = COPY %and_vop3
1433 $vgpr1 = COPY %and_vop2
1439 tracksRegLiveness: true
1442 liveins: $vgpr0, $vgpr1
1443 ; GFX8-LABEL: name: v_max_i16
1444 ; GFX8: liveins: $vgpr0, $vgpr1
1445 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1446 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1447 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1448 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1449 ; GFX8: $vgpr0 = COPY %op_vop3
1450 ; GFX8: $vgpr1 = COPY %op_vop2
1451 ; GFX9-LABEL: name: v_max_i16
1452 ; GFX9: liveins: $vgpr0, $vgpr1
1453 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1454 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1455 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1456 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1457 ; GFX9: $vgpr0 = COPY %op_vop3
1458 ; GFX9: $vgpr1 = COPY %op_vop2
1459 ; GFX10-LABEL: name: v_max_i16
1460 ; GFX10: liveins: $vgpr0, $vgpr1
1461 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1462 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1463 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1464 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1465 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1466 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1467 ; GFX10: $vgpr0 = COPY %and_vop3
1468 ; GFX10: $vgpr1 = COPY %and_vop2
1469 %0:vgpr_32 = COPY $vgpr0
1470 %1:vgpr_32 = COPY $vgpr1
1471 %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 %0, %1, implicit $mode, implicit $exec
1472 %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 %0, %1, implicit $mode, implicit $exec
1473 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1474 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1475 $vgpr0 = COPY %and_vop3
1476 $vgpr1 = COPY %and_vop2
1481 tracksRegLiveness: true
1484 liveins: $vgpr0, $vgpr1
1485 ; GFX8-LABEL: name: v_min_i16
1486 ; GFX8: liveins: $vgpr0, $vgpr1
1487 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1488 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1489 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1490 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1491 ; GFX8: $vgpr0 = COPY %op_vop3
1492 ; GFX8: $vgpr1 = COPY %op_vop2
1493 ; GFX9-LABEL: name: v_min_i16
1494 ; GFX9: liveins: $vgpr0, $vgpr1
1495 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1496 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1497 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1498 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1499 ; GFX9: $vgpr0 = COPY %op_vop3
1500 ; GFX9: $vgpr1 = COPY %op_vop2
1501 ; GFX10-LABEL: name: v_min_i16
1502 ; GFX10: liveins: $vgpr0, $vgpr1
1503 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1504 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1505 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1506 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec
1507 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1508 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1509 ; GFX10: $vgpr0 = COPY %and_vop3
1510 ; GFX10: $vgpr1 = COPY %and_vop2
1511 %0:vgpr_32 = COPY $vgpr0
1512 %1:vgpr_32 = COPY $vgpr1
1513 %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 %0, %1, implicit $mode, implicit $exec
1514 %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 %0, %1, implicit $mode, implicit $exec
1515 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1516 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1517 $vgpr0 = COPY %and_vop3
1518 $vgpr1 = COPY %and_vop2
1524 tracksRegLiveness: true
1527 liveins: $vgpr0, $vgpr1, $vgpr2
1528 ; GFX8-LABEL: name: v_mad_f16
1529 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
1530 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1531 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1532 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1533 ; GFX8: %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1534 ; GFX8: $vgpr0 = COPY %op
1535 ; GFX9-LABEL: name: v_mad_f16
1536 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
1537 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1538 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1539 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1540 ; GFX9: %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1541 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1542 ; GFX9: $vgpr0 = COPY %and
1543 ; GFX10-LABEL: name: v_mad_f16
1544 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
1545 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1546 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1547 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1548 ; GFX10: %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1549 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1550 ; GFX10: $vgpr0 = COPY %and
1551 %0:vgpr_32 = COPY $vgpr0
1552 %1:vgpr_32 = COPY $vgpr1
1553 %2:vgpr_32 = COPY $vgpr2
1554 %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec
1555 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1562 tracksRegLiveness: true
1565 liveins: $vgpr0, $vgpr1, $vgpr2
1566 ; GFX8-LABEL: name: v_fma_f16
1567 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
1568 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1569 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1570 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1571 ; GFX8: %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1572 ; GFX8: $vgpr0 = COPY %op
1573 ; GFX9-LABEL: name: v_fma_f16
1574 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
1575 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1576 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1577 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1578 ; GFX9: %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1579 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1580 ; GFX9: $vgpr0 = COPY %and
1581 ; GFX10-LABEL: name: v_fma_f16
1582 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
1583 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1584 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1585 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1586 ; GFX10: %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1587 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1588 ; GFX10: $vgpr0 = COPY %and
1589 %0:vgpr_32 = COPY $vgpr0
1590 %1:vgpr_32 = COPY $vgpr1
1591 %2:vgpr_32 = COPY $vgpr2
1592 %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec
1593 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1599 name: v_div_fixup_f16
1600 tracksRegLiveness: true
1603 liveins: $vgpr0, $vgpr1, $vgpr2
1604 ; GFX8-LABEL: name: v_div_fixup_f16
1605 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
1606 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1607 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1608 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1609 ; GFX8: %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1610 ; GFX8: $vgpr0 = COPY %op
1611 ; GFX9-LABEL: name: v_div_fixup_f16
1612 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
1613 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1614 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1615 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1616 ; GFX9: %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1617 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1618 ; GFX9: $vgpr0 = COPY %and
1619 ; GFX10-LABEL: name: v_div_fixup_f16
1620 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
1621 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1622 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1623 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1624 ; GFX10: %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1625 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1626 ; GFX10: $vgpr0 = COPY %and
1627 %0:vgpr_32 = COPY $vgpr0
1628 %1:vgpr_32 = COPY $vgpr1
1629 %2:vgpr_32 = COPY $vgpr2
1630 %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec
1631 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1638 tracksRegLiveness: true
1641 liveins: $vgpr0, $vgpr1
1642 ; GFX8-LABEL: name: v_madak_f16
1643 ; GFX8: liveins: $vgpr0, $vgpr1
1644 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1645 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1646 ; GFX8: %op:vgpr_32 = nofpexcept V_MADAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec
1647 ; GFX8: $vgpr0 = COPY %op
1648 ; GFX9-LABEL: name: v_madak_f16
1649 ; GFX9: liveins: $vgpr0, $vgpr1
1650 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1651 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1652 ; GFX9: %op:vgpr_32 = nofpexcept V_MADAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec
1653 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1654 ; GFX9: $vgpr0 = COPY %and
1655 ; GFX10-LABEL: name: v_madak_f16
1656 ; GFX10: liveins: $vgpr0, $vgpr1
1657 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1658 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1659 ; GFX10: %op:vgpr_32 = nofpexcept V_MADAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec
1660 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1661 ; GFX10: $vgpr0 = COPY %and
1662 %0:vgpr_32 = COPY $vgpr0
1663 %1:vgpr_32 = COPY $vgpr1
1664 %op:vgpr_32 = nofpexcept V_MADAK_F16 %0, %1, 1234, implicit $mode, implicit $exec
1665 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1672 tracksRegLiveness: true
1675 liveins: $vgpr0, $vgpr1
1676 ; GFX8-LABEL: name: v_madmk_f16
1677 ; GFX8: liveins: $vgpr0, $vgpr1
1678 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1679 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1680 ; GFX8: %op:vgpr_32 = nofpexcept V_MADMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec
1681 ; GFX8: $vgpr0 = COPY %op
1682 ; GFX9-LABEL: name: v_madmk_f16
1683 ; GFX9: liveins: $vgpr0, $vgpr1
1684 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1685 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1686 ; GFX9: %op:vgpr_32 = nofpexcept V_MADMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec
1687 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1688 ; GFX9: $vgpr0 = COPY %and
1689 ; GFX10-LABEL: name: v_madmk_f16
1690 ; GFX10: liveins: $vgpr0, $vgpr1
1691 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1692 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1693 ; GFX10: %op:vgpr_32 = nofpexcept V_MADMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec
1694 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1695 ; GFX10: $vgpr0 = COPY %and
1696 %0:vgpr_32 = COPY $vgpr0
1697 %1:vgpr_32 = COPY $vgpr1
1698 %op:vgpr_32 = nofpexcept V_MADMK_F16 %0, 1234, %1, implicit $mode, implicit $exec
1699 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1706 tracksRegLiveness: true
1709 liveins: $vgpr0, $vgpr1
1710 ; GFX8-LABEL: name: v_fmaak_f16
1711 ; GFX8: liveins: $vgpr0, $vgpr1
1712 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1713 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1714 ; GFX8: %op:vgpr_32 = nofpexcept V_FMAAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec
1715 ; GFX8: $vgpr0 = COPY %op
1716 ; GFX9-LABEL: name: v_fmaak_f16
1717 ; GFX9: liveins: $vgpr0, $vgpr1
1718 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1719 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1720 ; GFX9: %op:vgpr_32 = nofpexcept V_FMAAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec
1721 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1722 ; GFX9: $vgpr0 = COPY %and
1723 ; GFX10-LABEL: name: v_fmaak_f16
1724 ; GFX10: liveins: $vgpr0, $vgpr1
1725 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1726 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1727 ; GFX10: %op:vgpr_32 = nofpexcept V_FMAAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec
1728 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1729 ; GFX10: $vgpr0 = COPY %and
1730 %0:vgpr_32 = COPY $vgpr0
1731 %1:vgpr_32 = COPY $vgpr1
1732 %op:vgpr_32 = nofpexcept V_FMAAK_F16 %0, %1, 1234, implicit $mode, implicit $exec
1733 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1740 tracksRegLiveness: true
1743 liveins: $vgpr0, $vgpr1
1744 ; GFX8-LABEL: name: v_fmamk_f16
1745 ; GFX8: liveins: $vgpr0, $vgpr1
1746 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1747 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1748 ; GFX8: %op:vgpr_32 = nofpexcept V_FMAMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec
1749 ; GFX8: $vgpr0 = COPY %op
1750 ; GFX9-LABEL: name: v_fmamk_f16
1751 ; GFX9: liveins: $vgpr0, $vgpr1
1752 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1753 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1754 ; GFX9: %op:vgpr_32 = nofpexcept V_FMAMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec
1755 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1756 ; GFX9: $vgpr0 = COPY %and
1757 ; GFX10-LABEL: name: v_fmamk_f16
1758 ; GFX10: liveins: $vgpr0, $vgpr1
1759 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1760 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1761 ; GFX10: %op:vgpr_32 = nofpexcept V_FMAMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec
1762 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1763 ; GFX10: $vgpr0 = COPY %and
1764 %0:vgpr_32 = COPY $vgpr0
1765 %1:vgpr_32 = COPY $vgpr1
1766 %op:vgpr_32 = nofpexcept V_FMAMK_F16 %0, 1234, %1, implicit $mode, implicit $exec
1767 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1774 tracksRegLiveness: true
1777 liveins: $vgpr0, $vgpr1, $vgpr2
1778 ; GFX8-LABEL: name: v_mac_f16
1779 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
1780 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1781 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1782 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1783 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec
1784 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1785 ; GFX8: $vgpr0 = COPY %op_vop2
1786 ; GFX8: $vgpr0 = COPY %op_vop3
1787 ; GFX9-LABEL: name: v_mac_f16
1788 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
1789 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1790 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1791 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1792 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec
1793 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1794 ; GFX9: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1795 ; GFX9: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1796 ; GFX9: $vgpr0 = COPY %and_vop2
1797 ; GFX9: $vgpr0 = COPY %and_vop3
1798 ; GFX10-LABEL: name: v_mac_f16
1799 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
1800 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1801 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1802 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1803 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec
1804 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1805 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1806 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1807 ; GFX10: $vgpr0 = COPY %and_vop2
1808 ; GFX10: $vgpr0 = COPY %and_vop3
1809 %0:vgpr_32 = COPY $vgpr0
1810 %1:vgpr_32 = COPY $vgpr1
1811 %2:vgpr_32 = COPY $vgpr2
1812 %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 %0, %1, %2, implicit $mode, implicit $exec
1813 %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec
1814 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1815 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1816 $vgpr0 = COPY %and_vop2
1817 $vgpr0 = COPY %and_vop3
1823 tracksRegLiveness: true
1826 liveins: $vgpr0, $vgpr1, $vgpr2
1827 ; GFX8-LABEL: name: v_fmac_f16
1828 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2
1829 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1830 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1831 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1832 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec
1833 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1834 ; GFX8: $vgpr0 = COPY %op_vop2
1835 ; GFX8: $vgpr0 = COPY %op_vop3
1836 ; GFX9-LABEL: name: v_fmac_f16
1837 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
1838 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1839 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1840 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1841 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec
1842 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1843 ; GFX9: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1844 ; GFX9: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1845 ; GFX9: $vgpr0 = COPY %and_vop2
1846 ; GFX9: $vgpr0 = COPY %and_vop3
1847 ; GFX10-LABEL: name: v_fmac_f16
1848 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2
1849 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1850 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1851 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1852 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec
1853 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec
1854 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1855 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1856 ; GFX10: $vgpr0 = COPY %and_vop2
1857 ; GFX10: $vgpr0 = COPY %and_vop3
1858 %0:vgpr_32 = COPY $vgpr0
1859 %1:vgpr_32 = COPY $vgpr1
1860 %2:vgpr_32 = COPY $vgpr2
1861 %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 %0, %1, %2, implicit $mode, implicit $exec
1862 %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec
1863 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec
1864 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec
1865 $vgpr0 = COPY %and_vop2
1866 $vgpr0 = COPY %and_vop3
1871 name: no_fold_v_mad_mixlo_f16
1872 tracksRegLiveness: true
1875 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1876 ; GFX8-LABEL: name: no_fold_v_mad_mixlo_f16
1877 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1878 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1879 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1880 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1881 ; GFX8: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3
1882 ; GFX8: %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec
1883 ; GFX8: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1884 ; GFX8: $vgpr0 = COPY %and
1885 ; GFX9-LABEL: name: no_fold_v_mad_mixlo_f16
1886 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1887 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1888 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1889 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1890 ; GFX9: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3
1891 ; GFX9: %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec
1892 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1893 ; GFX9: $vgpr0 = COPY %and
1894 ; GFX10-LABEL: name: no_fold_v_mad_mixlo_f16
1895 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1896 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1897 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1898 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1899 ; GFX10: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3
1900 ; GFX10: %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec
1901 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1902 ; GFX10: $vgpr0 = COPY %and
1903 %0:vgpr_32 = COPY $vgpr0
1904 %1:vgpr_32 = COPY $vgpr1
1905 %2:vgpr_32 = COPY $vgpr2
1906 %3:vgpr_32 = COPY $vgpr3
1907 %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, %0, 0, %1, 0, %2, 0, %3, 0, 0, implicit $mode, implicit $exec
1908 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1914 name: no_fold_v_mad_mixhi_f16
1915 tracksRegLiveness: true
1918 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1919 ; GFX8-LABEL: name: no_fold_v_mad_mixhi_f16
1920 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1921 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1922 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1923 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1924 ; GFX8: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3
1925 ; GFX8: %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec
1926 ; GFX8: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1927 ; GFX8: $vgpr0 = COPY %and
1928 ; GFX9-LABEL: name: no_fold_v_mad_mixhi_f16
1929 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1930 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1931 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1932 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1933 ; GFX9: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3
1934 ; GFX9: %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec
1935 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1936 ; GFX9: $vgpr0 = COPY %and
1937 ; GFX10-LABEL: name: no_fold_v_mad_mixhi_f16
1938 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
1939 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
1940 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
1941 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
1942 ; GFX10: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3
1943 ; GFX10: %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec
1944 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec
1945 ; GFX10: $vgpr0 = COPY %and
1946 %0:vgpr_32 = COPY $vgpr0
1947 %1:vgpr_32 = COPY $vgpr1
1948 %2:vgpr_32 = COPY $vgpr2
1949 %3:vgpr_32 = COPY $vgpr3
1950 %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, %0, 0, %1, 0, %2, 0, %3, 0, 0, implicit $mode, implicit $exec
1951 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec