[AMDGPU] Make v8i16/v8f16 legal
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / combine-amdgpu-cvt-f32-ubyte.mir
blob596884623cbcaeccf8a92b60629f038d3c12e0c2
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
4 ---
5 name: cvt_f32_ubyte0_lshr_0
6 tracksRegLiveness: true
7 body:             |
8   bb.0:
9     liveins: $vgpr0
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 ...
23 ---
24 name: cvt_f32_ubyte0_lshr_8
25 tracksRegLiveness: true
26 body:             |
27   bb.0:
28     liveins: $vgpr0
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 ...
42 ---
43 name: cvt_f32_ubyte0_lshr_16
44 tracksRegLiveness: true
45 body:             |
46   bb.0:
47     liveins: $vgpr0
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 ...
61 ---
62 name: cvt_f32_ubyte0_lshr_24
63 tracksRegLiveness: true
64 body:             |
65   bb.0:
66     liveins: $vgpr0
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 ...
80 ---
81 name: cvt_f32_ubyte1_lshr_8
82 tracksRegLiveness: true
83 body:             |
84   bb.0:
85     liveins: $vgpr0
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 ...
99 ---
100 name: cvt_f32_ubyte1_lshr_16
101 tracksRegLiveness: true
102 body:             |
103   bb.0:
104     liveins: $vgpr0
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
119 name: cvt_f32_ubyte1_lshr_24
120 tracksRegLiveness: true
121 body:             |
122   bb.0:
123     liveins: $vgpr0
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
140 name: cvt_f32_ubyte2_lshr_8
141 tracksRegLiveness: true
142 body:             |
143   bb.0:
144     liveins: $vgpr0
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
159 name: cvt_f32_ubyte2_lshr_16
160 tracksRegLiveness: true
161 body:             |
162   bb.0:
163     liveins: $vgpr0
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
180 name: cvt_f32_ubyte2_lshr_24
181 tracksRegLiveness: true
182 body:             |
183   bb.0:
184     liveins: $vgpr0
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
201 name: cvt_f32_ubyte3_lshr_8
202 tracksRegLiveness: true
203 body:             |
204   bb.0:
205     liveins: $vgpr0
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
222 name: cvt_f32_ubyte0_zext_lshr_8
223 tracksRegLiveness: true
224 body:             |
225   bb.0:
226     liveins: $vgpr0
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
243 name: cvt_f32_ubyte0_zext_lshr_16
244 tracksRegLiveness: true
245 body:             |
246   bb.0:
247     liveins: $vgpr0
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
264 name: cvt_f32_ubyte0_zext_lshr_24
265 tracksRegLiveness: true
266 body:             |
267   bb.0:
268     liveins: $vgpr0
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
285 name: cvt_f32_ubyte1_zext_lshr_8
286 tracksRegLiveness: true
287 body:             |
288   bb.0:
289     liveins: $vgpr0
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
306 name: cvt_f32_ubyte0_shl_8
307 tracksRegLiveness: true
308 body:             |
309   bb.0:
310     liveins: $vgpr0
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
327 name: cvt_f32_ubyte1_shl_8
328 tracksRegLiveness: true
329 body:             |
330   bb.0:
331     liveins: $vgpr0
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
348 name: cvt_f32_ubyte2_shl_8
349 tracksRegLiveness: true
350 body:             |
351   bb.0:
352     liveins: $vgpr0
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
367 name: cvt_f32_ubyte3_shl_8
368 tracksRegLiveness: true
369 body:             |
370   bb.0:
371     liveins: $vgpr0
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
386 name: cvt_f32_ubyte0_shl_16
387 tracksRegLiveness: true
388 body:             |
389   bb.0:
390     liveins: $vgpr0
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
407 name: cvt_f32_ubyte1_shl_16
408 tracksRegLiveness: true
409 body:             |
410   bb.0:
411     liveins: $vgpr0
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
428 name: cvt_f32_ubyte2_shl_16
429 tracksRegLiveness: true
430 body:             |
431   bb.0:
432     liveins: $vgpr0
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
449 name: cvt_f32_ubyte3_shl_16
450 tracksRegLiveness: true
451 body:             |
452   bb.0:
453     liveins: $vgpr0
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
468 name: cvt_f32_ubyte0_shl_24
469 tracksRegLiveness: true
470 body:             |
471   bb.0:
472     liveins: $vgpr0
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
489 name: cvt_f32_ubyte1_shl_24
490 tracksRegLiveness: true
491 body:             |
492   bb.0:
493     liveins: $vgpr0
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
510 name: cvt_f32_ubyte2_shl_24
511 tracksRegLiveness: true
512 body:             |
513   bb.0:
514     liveins: $vgpr0
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
531 name: cvt_f32_ubyte3_shl_24
532 tracksRegLiveness: true
533 body:             |
534   bb.0:
535     liveins: $vgpr0
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
551 # Shift amount is wrong
553 name: cvt_f32_ubyte1_shl_7
554 tracksRegLiveness: true
555 body:             |
556   bb.0:
557     liveins: $vgpr0
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
574 name: cvt_f32_ubyte3_shl_17
575 tracksRegLiveness: true
576 body:             |
577   bb.0:
578     liveins: $vgpr0
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