1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s
3
4---
5name: cvt_f32_ubyte0_lshr_0
6tracksRegLiveness: true
7body:             |
8  bb.0:
9    liveins: $vgpr0
10
11    ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_0
12    ; CHECK: liveins: $vgpr0
13    ; CHECK: %arg:_(s32) = COPY $vgpr0
14    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %arg
15    ; CHECK: $vgpr0 = COPY %result(s32)
16    %arg:_(s32) = COPY $vgpr0
17    %shiftamt:_(s32) = G_CONSTANT i32 0
18    %shift:_(s32) = G_LSHR %arg, %shiftamt
19    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
20    $vgpr0 = COPY %result
21...
22
23---
24name: cvt_f32_ubyte0_lshr_8
25tracksRegLiveness: true
26body:             |
27  bb.0:
28    liveins: $vgpr0
29
30    ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_8
31    ; CHECK: liveins: $vgpr0
32    ; CHECK: %arg:_(s32) = COPY $vgpr0
33    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
34    ; CHECK: $vgpr0 = COPY %result(s32)
35    %arg:_(s32) = COPY $vgpr0
36    %shiftamt:_(s32) = G_CONSTANT i32 8
37    %shift:_(s32) = G_LSHR %arg, %shiftamt
38    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
39    $vgpr0 = COPY %result
40...
41
42---
43name: cvt_f32_ubyte0_lshr_16
44tracksRegLiveness: true
45body:             |
46  bb.0:
47    liveins: $vgpr0
48
49    ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_16
50    ; CHECK: liveins: $vgpr0
51    ; CHECK: %arg:_(s32) = COPY $vgpr0
52    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
53    ; CHECK: $vgpr0 = COPY %result(s32)
54    %arg:_(s32) = COPY $vgpr0
55    %shiftamt:_(s32) = G_CONSTANT i32 16
56    %shift:_(s32) = G_LSHR %arg, %shiftamt
57    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
58    $vgpr0 = COPY %result
59...
60
61---
62name: cvt_f32_ubyte0_lshr_24
63tracksRegLiveness: true
64body:             |
65  bb.0:
66    liveins: $vgpr0
67
68    ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_24
69    ; CHECK: liveins: $vgpr0
70    ; CHECK: %arg:_(s32) = COPY $vgpr0
71    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
72    ; CHECK: $vgpr0 = COPY %result(s32)
73    %arg:_(s32) = COPY $vgpr0
74    %shiftamt:_(s32) = G_CONSTANT i32 24
75    %shift:_(s32) = G_LSHR %arg, %shiftamt
76    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
77    $vgpr0 = COPY %result
78...
79
80---
81name: cvt_f32_ubyte1_lshr_8
82tracksRegLiveness: true
83body:             |
84  bb.0:
85    liveins: $vgpr0
86
87    ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_8
88    ; CHECK: liveins: $vgpr0
89    ; CHECK: %arg:_(s32) = COPY $vgpr0
90    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
91    ; CHECK: $vgpr0 = COPY %result(s32)
92    %arg:_(s32) = COPY $vgpr0
93    %shiftamt:_(s32) = G_CONSTANT i32 8
94    %shift:_(s32) = G_LSHR %arg, %shiftamt
95    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
96    $vgpr0 = COPY %result
97...
98
99---
100name: cvt_f32_ubyte1_lshr_16
101tracksRegLiveness: true
102body:             |
103  bb.0:
104    liveins: $vgpr0
105
106    ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_16
107    ; CHECK: liveins: $vgpr0
108    ; CHECK: %arg:_(s32) = COPY $vgpr0
109    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
110    ; CHECK: $vgpr0 = COPY %result(s32)
111    %arg:_(s32) = COPY $vgpr0
112    %shiftamt:_(s32) = G_CONSTANT i32 16
113    %shift:_(s32) = G_LSHR %arg, %shiftamt
114    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
115    $vgpr0 = COPY %result
116...
117
118---
119name: cvt_f32_ubyte1_lshr_24
120tracksRegLiveness: true
121body:             |
122  bb.0:
123    liveins: $vgpr0
124
125    ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_24
126    ; CHECK: liveins: $vgpr0
127    ; CHECK: %arg:_(s32) = COPY $vgpr0
128    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 24
129    ; CHECK: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
130    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
131    ; CHECK: $vgpr0 = COPY %result(s32)
132    %arg:_(s32) = COPY $vgpr0
133    %shiftamt:_(s32) = G_CONSTANT i32 24
134    %shift:_(s32) = G_LSHR %arg, %shiftamt
135    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
136    $vgpr0 = COPY %result
137...
138
139---
140name: cvt_f32_ubyte2_lshr_8
141tracksRegLiveness: true
142body:             |
143  bb.0:
144    liveins: $vgpr0
145
146    ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_8
147    ; CHECK: liveins: $vgpr0
148    ; CHECK: %arg:_(s32) = COPY $vgpr0
149    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
150    ; CHECK: $vgpr0 = COPY %result(s32)
151    %arg:_(s32) = COPY $vgpr0
152    %shiftamt:_(s32) = G_CONSTANT i32 8
153    %shift:_(s32) = G_LSHR %arg, %shiftamt
154    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
155    $vgpr0 = COPY %result
156...
157
158---
159name: cvt_f32_ubyte2_lshr_16
160tracksRegLiveness: true
161body:             |
162  bb.0:
163    liveins: $vgpr0
164
165    ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_16
166    ; CHECK: liveins: $vgpr0
167    ; CHECK: %arg:_(s32) = COPY $vgpr0
168    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 16
169    ; CHECK: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
170    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
171    ; CHECK: $vgpr0 = COPY %result(s32)
172    %arg:_(s32) = COPY $vgpr0
173    %shiftamt:_(s32) = G_CONSTANT i32 16
174    %shift:_(s32) = G_LSHR %arg, %shiftamt
175    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
176    $vgpr0 = COPY %result
177...
178
179---
180name: cvt_f32_ubyte2_lshr_24
181tracksRegLiveness: true
182body:             |
183  bb.0:
184    liveins: $vgpr0
185
186    ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_24
187    ; CHECK: liveins: $vgpr0
188    ; CHECK: %arg:_(s32) = COPY $vgpr0
189    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 24
190    ; CHECK: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
191    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
192    ; CHECK: $vgpr0 = COPY %result(s32)
193    %arg:_(s32) = COPY $vgpr0
194    %shiftamt:_(s32) = G_CONSTANT i32 24
195    %shift:_(s32) = G_LSHR %arg, %shiftamt
196    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
197    $vgpr0 = COPY %result
198...
199
200---
201name: cvt_f32_ubyte3_lshr_8
202tracksRegLiveness: true
203body:             |
204  bb.0:
205    liveins: $vgpr0
206
207    ; CHECK-LABEL: name: cvt_f32_ubyte3_lshr_8
208    ; CHECK: liveins: $vgpr0
209    ; CHECK: %arg:_(s32) = COPY $vgpr0
210    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 8
211    ; CHECK: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
212    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
213    ; CHECK: $vgpr0 = COPY %result(s32)
214    %arg:_(s32) = COPY $vgpr0
215    %shiftamt:_(s32) = G_CONSTANT i32 8
216    %shift:_(s32) = G_LSHR %arg, %shiftamt
217    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
218    $vgpr0 = COPY %result
219...
220
221---
222name: cvt_f32_ubyte0_zext_lshr_8
223tracksRegLiveness: true
224body:             |
225  bb.0:
226    liveins: $vgpr0
227
228    ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_8
229    ; CHECK: liveins: $vgpr0
230    ; CHECK: %arg:_(s32) = COPY $vgpr0
231    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
232    ; CHECK: $vgpr0 = COPY %result(s32)
233    %arg:_(s32) = COPY $vgpr0
234    %trunc:_(s16) = G_TRUNC %arg
235    %shiftamt:_(s32) = G_CONSTANT i32 8
236    %shift:_(s16) = G_LSHR %trunc, %shiftamt
237    %zext:_(s32) = G_ZEXT %shift
238    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
239    $vgpr0 = COPY %result
240...
241
242---
243name: cvt_f32_ubyte0_zext_lshr_16
244tracksRegLiveness: true
245body:             |
246  bb.0:
247    liveins: $vgpr0
248
249    ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_16
250    ; CHECK: liveins: $vgpr0
251    ; CHECK: %arg:_(s32) = COPY $vgpr0
252    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
253    ; CHECK: $vgpr0 = COPY %result(s32)
254    %arg:_(s32) = COPY $vgpr0
255    %trunc:_(s16) = G_TRUNC %arg
256    %shiftamt:_(s32) = G_CONSTANT i32 16
257    %shift:_(s16) = G_LSHR %trunc, %shiftamt
258    %zext:_(s32) = G_ZEXT %shift
259    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
260    $vgpr0 = COPY %result
261...
262
263---
264name: cvt_f32_ubyte0_zext_lshr_24
265tracksRegLiveness: true
266body:             |
267  bb.0:
268    liveins: $vgpr0
269
270    ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_24
271    ; CHECK: liveins: $vgpr0
272    ; CHECK: %arg:_(s32) = COPY $vgpr0
273    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
274    ; CHECK: $vgpr0 = COPY %result(s32)
275    %arg:_(s32) = COPY $vgpr0
276    %trunc:_(s16) = G_TRUNC %arg
277    %shiftamt:_(s32) = G_CONSTANT i32 24
278    %shift:_(s16) = G_LSHR %trunc, %shiftamt
279    %zext:_(s32) = G_ZEXT %shift
280    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
281    $vgpr0 = COPY %result
282...
283
284---
285name: cvt_f32_ubyte1_zext_lshr_8
286tracksRegLiveness: true
287body:             |
288  bb.0:
289    liveins: $vgpr0
290
291    ; CHECK-LABEL: name: cvt_f32_ubyte1_zext_lshr_8
292    ; CHECK: liveins: $vgpr0
293    ; CHECK: %arg:_(s32) = COPY $vgpr0
294    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
295    ; CHECK: $vgpr0 = COPY %result(s32)
296    %arg:_(s32) = COPY $vgpr0
297    %trunc:_(s16) = G_TRUNC %arg
298    %shiftamt:_(s32) = G_CONSTANT i32 8
299    %shift:_(s16) = G_LSHR %trunc, %shiftamt
300    %zext:_(s32) = G_ZEXT %shift
301    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %zext
302    $vgpr0 = COPY %result
303...
304
305---
306name: cvt_f32_ubyte0_shl_8
307tracksRegLiveness: true
308body:             |
309  bb.0:
310    liveins: $vgpr0
311
312    ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_8
313    ; CHECK: liveins: $vgpr0
314    ; CHECK: %arg:_(s32) = COPY $vgpr0
315    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 8
316    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
317    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
318    ; CHECK: $vgpr0 = COPY %result(s32)
319    %arg:_(s32) = COPY $vgpr0
320    %shiftamt:_(s32) = G_CONSTANT i32 8
321    %shift:_(s32) = G_SHL %arg, %shiftamt
322    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
323    $vgpr0 = COPY %result
324...
325
326---
327name: cvt_f32_ubyte1_shl_8
328tracksRegLiveness: true
329body:             |
330  bb.0:
331    liveins: $vgpr0
332
333    ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_8
334    ; CHECK: liveins: $vgpr0
335    ; CHECK: %arg:_(s32) = COPY $vgpr0
336    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 8
337    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
338    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
339    ; CHECK: $vgpr0 = COPY %result(s32)
340    %arg:_(s32) = COPY $vgpr0
341    %shiftamt:_(s32) = G_CONSTANT i32 8
342    %shift:_(s32) = G_SHL %arg, %shiftamt
343    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
344    $vgpr0 = COPY %result
345...
346
347---
348name: cvt_f32_ubyte2_shl_8
349tracksRegLiveness: true
350body:             |
351  bb.0:
352    liveins: $vgpr0
353
354    ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_8
355    ; CHECK: liveins: $vgpr0
356    ; CHECK: %arg:_(s32) = COPY $vgpr0
357    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
358    ; CHECK: $vgpr0 = COPY %result(s32)
359    %arg:_(s32) = COPY $vgpr0
360    %shiftamt:_(s32) = G_CONSTANT i32 8
361    %shift:_(s32) = G_SHL %arg, %shiftamt
362    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
363    $vgpr0 = COPY %result
364...
365
366---
367name: cvt_f32_ubyte3_shl_8
368tracksRegLiveness: true
369body:             |
370  bb.0:
371    liveins: $vgpr0
372
373    ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_8
374    ; CHECK: liveins: $vgpr0
375    ; CHECK: %arg:_(s32) = COPY $vgpr0
376    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
377    ; CHECK: $vgpr0 = COPY %result(s32)
378    %arg:_(s32) = COPY $vgpr0
379    %shiftamt:_(s32) = G_CONSTANT i32 8
380    %shift:_(s32) = G_SHL %arg, %shiftamt
381    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
382    $vgpr0 = COPY %result
383...
384
385---
386name: cvt_f32_ubyte0_shl_16
387tracksRegLiveness: true
388body:             |
389  bb.0:
390    liveins: $vgpr0
391
392    ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_16
393    ; CHECK: liveins: $vgpr0
394    ; CHECK: %arg:_(s32) = COPY $vgpr0
395    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 16
396    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
397    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
398    ; CHECK: $vgpr0 = COPY %result(s32)
399    %arg:_(s32) = COPY $vgpr0
400    %shiftamt:_(s32) = G_CONSTANT i32 16
401    %shift:_(s32) = G_SHL %arg, %shiftamt
402    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
403    $vgpr0 = COPY %result
404...
405
406---
407name: cvt_f32_ubyte1_shl_16
408tracksRegLiveness: true
409body:             |
410  bb.0:
411    liveins: $vgpr0
412
413    ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_16
414    ; CHECK: liveins: $vgpr0
415    ; CHECK: %arg:_(s32) = COPY $vgpr0
416    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 16
417    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
418    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
419    ; CHECK: $vgpr0 = COPY %result(s32)
420    %arg:_(s32) = COPY $vgpr0
421    %shiftamt:_(s32) = G_CONSTANT i32 16
422    %shift:_(s32) = G_SHL %arg, %shiftamt
423    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
424    $vgpr0 = COPY %result
425...
426
427---
428name: cvt_f32_ubyte2_shl_16
429tracksRegLiveness: true
430body:             |
431  bb.0:
432    liveins: $vgpr0
433
434    ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_16
435    ; CHECK: liveins: $vgpr0
436    ; CHECK: %arg:_(s32) = COPY $vgpr0
437    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 16
438    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
439    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
440    ; CHECK: $vgpr0 = COPY %result(s32)
441    %arg:_(s32) = COPY $vgpr0
442    %shiftamt:_(s32) = G_CONSTANT i32 16
443    %shift:_(s32) = G_SHL %arg, %shiftamt
444    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
445    $vgpr0 = COPY %result
446...
447
448---
449name: cvt_f32_ubyte3_shl_16
450tracksRegLiveness: true
451body:             |
452  bb.0:
453    liveins: $vgpr0
454
455    ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_16
456    ; CHECK: liveins: $vgpr0
457    ; CHECK: %arg:_(s32) = COPY $vgpr0
458    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
459    ; CHECK: $vgpr0 = COPY %result(s32)
460    %arg:_(s32) = COPY $vgpr0
461    %shiftamt:_(s32) = G_CONSTANT i32 16
462    %shift:_(s32) = G_SHL %arg, %shiftamt
463    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
464    $vgpr0 = COPY %result
465...
466
467---
468name: cvt_f32_ubyte0_shl_24
469tracksRegLiveness: true
470body:             |
471  bb.0:
472    liveins: $vgpr0
473
474    ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_24
475    ; CHECK: liveins: $vgpr0
476    ; CHECK: %arg:_(s32) = COPY $vgpr0
477    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 24
478    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
479    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
480    ; CHECK: $vgpr0 = COPY %result(s32)
481    %arg:_(s32) = COPY $vgpr0
482    %shiftamt:_(s32) = G_CONSTANT i32 24
483    %shift:_(s32) = G_SHL %arg, %shiftamt
484    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
485    $vgpr0 = COPY %result
486...
487
488---
489name: cvt_f32_ubyte1_shl_24
490tracksRegLiveness: true
491body:             |
492  bb.0:
493    liveins: $vgpr0
494
495    ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_24
496    ; CHECK: liveins: $vgpr0
497    ; CHECK: %arg:_(s32) = COPY $vgpr0
498    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 24
499    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
500    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
501    ; CHECK: $vgpr0 = COPY %result(s32)
502    %arg:_(s32) = COPY $vgpr0
503    %shiftamt:_(s32) = G_CONSTANT i32 24
504    %shift:_(s32) = G_SHL %arg, %shiftamt
505    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
506    $vgpr0 = COPY %result
507...
508
509---
510name: cvt_f32_ubyte2_shl_24
511tracksRegLiveness: true
512body:             |
513  bb.0:
514    liveins: $vgpr0
515
516    ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_24
517    ; CHECK: liveins: $vgpr0
518    ; CHECK: %arg:_(s32) = COPY $vgpr0
519    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 24
520    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
521    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
522    ; CHECK: $vgpr0 = COPY %result(s32)
523    %arg:_(s32) = COPY $vgpr0
524    %shiftamt:_(s32) = G_CONSTANT i32 24
525    %shift:_(s32) = G_SHL %arg, %shiftamt
526    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
527    $vgpr0 = COPY %result
528...
529
530---
531name: cvt_f32_ubyte3_shl_24
532tracksRegLiveness: true
533body:             |
534  bb.0:
535    liveins: $vgpr0
536
537    ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_24
538    ; CHECK: liveins: $vgpr0
539    ; CHECK: %arg:_(s32) = COPY $vgpr0
540    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 24
541    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
542    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
543    ; CHECK: $vgpr0 = COPY %result(s32)
544    %arg:_(s32) = COPY $vgpr0
545    %shiftamt:_(s32) = G_CONSTANT i32 24
546    %shift:_(s32) = G_SHL %arg, %shiftamt
547    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
548    $vgpr0 = COPY %result
549...
550
551# Shift amount is wrong
552---
553name: cvt_f32_ubyte1_shl_7
554tracksRegLiveness: true
555body:             |
556  bb.0:
557    liveins: $vgpr0
558
559    ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_7
560    ; CHECK: liveins: $vgpr0
561    ; CHECK: %arg:_(s32) = COPY $vgpr0
562    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 7
563    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
564    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
565    ; CHECK: $vgpr0 = COPY %result(s32)
566    %arg:_(s32) = COPY $vgpr0
567    %shiftamt:_(s32) = G_CONSTANT i32 7
568    %shift:_(s32) = G_SHL %arg, %shiftamt
569    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
570    $vgpr0 = COPY %result
571...
572
573---
574name: cvt_f32_ubyte3_shl_17
575tracksRegLiveness: true
576body:             |
577  bb.0:
578    liveins: $vgpr0
579
580    ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_17
581    ; CHECK: liveins: $vgpr0
582    ; CHECK: %arg:_(s32) = COPY $vgpr0
583    ; CHECK: %shiftamt:_(s32) = G_CONSTANT i32 17
584    ; CHECK: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
585    ; CHECK: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
586    ; CHECK: $vgpr0 = COPY %result(s32)
587    %arg:_(s32) = COPY $vgpr0
588    %shiftamt:_(s32) = G_CONSTANT i32 17
589    %shift:_(s32) = G_SHL %arg, %shiftamt
590    %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
591    $vgpr0 = COPY %result
592...
593