Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / combine-amdgpu-cvt-f32-ubyte.mir
blob7893bfa1d38f08ff583362448795b141cabec8e6
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-NEXT: {{  $}}
14     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
15     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %arg
16     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
17     %arg:_(s32) = COPY $vgpr0
18     %shiftamt:_(s32) = G_CONSTANT i32 0
19     %shift:_(s32) = G_LSHR %arg, %shiftamt
20     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
21     $vgpr0 = COPY %result
22 ...
24 ---
25 name: cvt_f32_ubyte0_lshr_8
26 tracksRegLiveness: true
27 body:             |
28   bb.0:
29     liveins: $vgpr0
31     ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_8
32     ; CHECK: liveins: $vgpr0
33     ; CHECK-NEXT: {{  $}}
34     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
35     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
36     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
37     %arg:_(s32) = COPY $vgpr0
38     %shiftamt:_(s32) = G_CONSTANT i32 8
39     %shift:_(s32) = G_LSHR %arg, %shiftamt
40     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
41     $vgpr0 = COPY %result
42 ...
44 ---
45 name: cvt_f32_ubyte0_lshr_16
46 tracksRegLiveness: true
47 body:             |
48   bb.0:
49     liveins: $vgpr0
51     ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_16
52     ; CHECK: liveins: $vgpr0
53     ; CHECK-NEXT: {{  $}}
54     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
55     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
56     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
57     %arg:_(s32) = COPY $vgpr0
58     %shiftamt:_(s32) = G_CONSTANT i32 16
59     %shift:_(s32) = G_LSHR %arg, %shiftamt
60     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
61     $vgpr0 = COPY %result
62 ...
64 ---
65 name: cvt_f32_ubyte0_lshr_24
66 tracksRegLiveness: true
67 body:             |
68   bb.0:
69     liveins: $vgpr0
71     ; CHECK-LABEL: name: cvt_f32_ubyte0_lshr_24
72     ; CHECK: liveins: $vgpr0
73     ; CHECK-NEXT: {{  $}}
74     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
75     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
76     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
77     %arg:_(s32) = COPY $vgpr0
78     %shiftamt:_(s32) = G_CONSTANT i32 24
79     %shift:_(s32) = G_LSHR %arg, %shiftamt
80     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
81     $vgpr0 = COPY %result
82 ...
84 ---
85 name: cvt_f32_ubyte1_lshr_8
86 tracksRegLiveness: true
87 body:             |
88   bb.0:
89     liveins: $vgpr0
91     ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_8
92     ; CHECK: liveins: $vgpr0
93     ; CHECK-NEXT: {{  $}}
94     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
95     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
96     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
97     %arg:_(s32) = COPY $vgpr0
98     %shiftamt:_(s32) = G_CONSTANT i32 8
99     %shift:_(s32) = G_LSHR %arg, %shiftamt
100     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
101     $vgpr0 = COPY %result
105 name: cvt_f32_ubyte1_lshr_16
106 tracksRegLiveness: true
107 body:             |
108   bb.0:
109     liveins: $vgpr0
111     ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_16
112     ; CHECK: liveins: $vgpr0
113     ; CHECK-NEXT: {{  $}}
114     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
115     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
116     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
117     %arg:_(s32) = COPY $vgpr0
118     %shiftamt:_(s32) = G_CONSTANT i32 16
119     %shift:_(s32) = G_LSHR %arg, %shiftamt
120     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
121     $vgpr0 = COPY %result
125 name: cvt_f32_ubyte1_lshr_24
126 tracksRegLiveness: true
127 body:             |
128   bb.0:
129     liveins: $vgpr0
131     ; CHECK-LABEL: name: cvt_f32_ubyte1_lshr_24
132     ; CHECK: liveins: $vgpr0
133     ; CHECK-NEXT: {{  $}}
134     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
135     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24
136     ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
137     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
138     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
139     %arg:_(s32) = COPY $vgpr0
140     %shiftamt:_(s32) = G_CONSTANT i32 24
141     %shift:_(s32) = G_LSHR %arg, %shiftamt
142     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
143     $vgpr0 = COPY %result
147 name: cvt_f32_ubyte2_lshr_8
148 tracksRegLiveness: true
149 body:             |
150   bb.0:
151     liveins: $vgpr0
153     ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_8
154     ; CHECK: liveins: $vgpr0
155     ; CHECK-NEXT: {{  $}}
156     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
157     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %arg
158     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
159     %arg:_(s32) = COPY $vgpr0
160     %shiftamt:_(s32) = G_CONSTANT i32 8
161     %shift:_(s32) = G_LSHR %arg, %shiftamt
162     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
163     $vgpr0 = COPY %result
167 name: cvt_f32_ubyte2_lshr_16
168 tracksRegLiveness: true
169 body:             |
170   bb.0:
171     liveins: $vgpr0
173     ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_16
174     ; CHECK: liveins: $vgpr0
175     ; CHECK-NEXT: {{  $}}
176     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
177     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16
178     ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
179     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
180     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
181     %arg:_(s32) = COPY $vgpr0
182     %shiftamt:_(s32) = G_CONSTANT i32 16
183     %shift:_(s32) = G_LSHR %arg, %shiftamt
184     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
185     $vgpr0 = COPY %result
189 name: cvt_f32_ubyte2_lshr_24
190 tracksRegLiveness: true
191 body:             |
192   bb.0:
193     liveins: $vgpr0
195     ; CHECK-LABEL: name: cvt_f32_ubyte2_lshr_24
196     ; CHECK: liveins: $vgpr0
197     ; CHECK-NEXT: {{  $}}
198     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
199     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24
200     ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
201     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
202     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
203     %arg:_(s32) = COPY $vgpr0
204     %shiftamt:_(s32) = G_CONSTANT i32 24
205     %shift:_(s32) = G_LSHR %arg, %shiftamt
206     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
207     $vgpr0 = COPY %result
211 name: cvt_f32_ubyte3_lshr_8
212 tracksRegLiveness: true
213 body:             |
214   bb.0:
215     liveins: $vgpr0
217     ; CHECK-LABEL: name: cvt_f32_ubyte3_lshr_8
218     ; CHECK: liveins: $vgpr0
219     ; CHECK-NEXT: {{  $}}
220     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
221     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 8
222     ; CHECK-NEXT: %shift:_(s32) = G_LSHR %arg, %shiftamt(s32)
223     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
224     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
225     %arg:_(s32) = COPY $vgpr0
226     %shiftamt:_(s32) = G_CONSTANT i32 8
227     %shift:_(s32) = G_LSHR %arg, %shiftamt
228     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
229     $vgpr0 = COPY %result
233 name: cvt_f32_ubyte0_zext_lshr_8
234 tracksRegLiveness: true
235 body:             |
236   bb.0:
237     liveins: $vgpr0
239     ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_8
240     ; CHECK: liveins: $vgpr0
241     ; CHECK-NEXT: {{  $}}
242     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
243     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
244     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
245     %arg:_(s32) = COPY $vgpr0
246     %trunc:_(s16) = G_TRUNC %arg
247     %shiftamt:_(s32) = G_CONSTANT i32 8
248     %shift:_(s16) = G_LSHR %trunc, %shiftamt
249     %zext:_(s32) = G_ZEXT %shift
250     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
251     $vgpr0 = COPY %result
255 name: cvt_f32_ubyte0_zext_lshr_16
256 tracksRegLiveness: true
257 body:             |
258   bb.0:
259     liveins: $vgpr0
261     ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_16
262     ; CHECK: liveins: $vgpr0
263     ; CHECK-NEXT: {{  $}}
264     ; CHECK-NEXT: %shift:_(s16) = G_IMPLICIT_DEF
265     ; CHECK-NEXT: %zext:_(s32) = G_ZEXT %shift(s16)
266     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
267     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
268     %arg:_(s32) = COPY $vgpr0
269     %trunc:_(s16) = G_TRUNC %arg
270     %shiftamt:_(s32) = G_CONSTANT i32 16
271     %shift:_(s16) = G_LSHR %trunc, %shiftamt
272     %zext:_(s32) = G_ZEXT %shift
273     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
274     $vgpr0 = COPY %result
278 name: cvt_f32_ubyte0_zext_lshr_24
279 tracksRegLiveness: true
280 body:             |
281   bb.0:
282     liveins: $vgpr0
284     ; CHECK-LABEL: name: cvt_f32_ubyte0_zext_lshr_24
285     ; CHECK: liveins: $vgpr0
286     ; CHECK-NEXT: {{  $}}
287     ; CHECK-NEXT: %shift:_(s16) = G_IMPLICIT_DEF
288     ; CHECK-NEXT: %zext:_(s32) = G_ZEXT %shift(s16)
289     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
290     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
291     %arg:_(s32) = COPY $vgpr0
292     %trunc:_(s16) = G_TRUNC %arg
293     %shiftamt:_(s32) = G_CONSTANT i32 24
294     %shift:_(s16) = G_LSHR %trunc, %shiftamt
295     %zext:_(s32) = G_ZEXT %shift
296     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %zext
297     $vgpr0 = COPY %result
301 name: cvt_f32_ubyte1_zext_lshr_8
302 tracksRegLiveness: true
303 body:             |
304   bb.0:
305     liveins: $vgpr0
307     ; CHECK-LABEL: name: cvt_f32_ubyte1_zext_lshr_8
308     ; CHECK: liveins: $vgpr0
309     ; CHECK-NEXT: {{  $}}
310     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
311     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
312     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
313     %arg:_(s32) = COPY $vgpr0
314     %trunc:_(s16) = G_TRUNC %arg
315     %shiftamt:_(s32) = G_CONSTANT i32 8
316     %shift:_(s16) = G_LSHR %trunc, %shiftamt
317     %zext:_(s32) = G_ZEXT %shift
318     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %zext
319     $vgpr0 = COPY %result
323 name: cvt_f32_ubyte0_shl_8
324 tracksRegLiveness: true
325 body:             |
326   bb.0:
327     liveins: $vgpr0
329     ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_8
330     ; CHECK: liveins: $vgpr0
331     ; CHECK-NEXT: {{  $}}
332     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
333     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 8
334     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
335     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
336     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
337     %arg:_(s32) = COPY $vgpr0
338     %shiftamt:_(s32) = G_CONSTANT i32 8
339     %shift:_(s32) = G_SHL %arg, %shiftamt
340     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
341     $vgpr0 = COPY %result
345 name: cvt_f32_ubyte1_shl_8
346 tracksRegLiveness: true
347 body:             |
348   bb.0:
349     liveins: $vgpr0
351     ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_8
352     ; CHECK: liveins: $vgpr0
353     ; CHECK-NEXT: {{  $}}
354     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
355     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 8
356     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
357     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
358     ; CHECK-NEXT: $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_UBYTE1 %shift
363     $vgpr0 = COPY %result
367 name: cvt_f32_ubyte2_shl_8
368 tracksRegLiveness: true
369 body:             |
370   bb.0:
371     liveins: $vgpr0
373     ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_8
374     ; CHECK: liveins: $vgpr0
375     ; CHECK-NEXT: {{  $}}
376     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
377     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
378     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
379     %arg:_(s32) = COPY $vgpr0
380     %shiftamt:_(s32) = G_CONSTANT i32 8
381     %shift:_(s32) = G_SHL %arg, %shiftamt
382     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
383     $vgpr0 = COPY %result
387 name: cvt_f32_ubyte3_shl_8
388 tracksRegLiveness: true
389 body:             |
390   bb.0:
391     liveins: $vgpr0
393     ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_8
394     ; CHECK: liveins: $vgpr0
395     ; CHECK-NEXT: {{  $}}
396     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
397     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %arg
398     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
399     %arg:_(s32) = COPY $vgpr0
400     %shiftamt:_(s32) = G_CONSTANT i32 8
401     %shift:_(s32) = G_SHL %arg, %shiftamt
402     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
403     $vgpr0 = COPY %result
407 name: cvt_f32_ubyte0_shl_16
408 tracksRegLiveness: true
409 body:             |
410   bb.0:
411     liveins: $vgpr0
413     ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_16
414     ; CHECK: liveins: $vgpr0
415     ; CHECK-NEXT: {{  $}}
416     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
417     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16
418     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
419     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
420     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
421     %arg:_(s32) = COPY $vgpr0
422     %shiftamt:_(s32) = G_CONSTANT i32 16
423     %shift:_(s32) = G_SHL %arg, %shiftamt
424     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
425     $vgpr0 = COPY %result
429 name: cvt_f32_ubyte1_shl_16
430 tracksRegLiveness: true
431 body:             |
432   bb.0:
433     liveins: $vgpr0
435     ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_16
436     ; CHECK: liveins: $vgpr0
437     ; CHECK-NEXT: {{  $}}
438     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
439     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16
440     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
441     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
442     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
443     %arg:_(s32) = COPY $vgpr0
444     %shiftamt:_(s32) = G_CONSTANT i32 16
445     %shift:_(s32) = G_SHL %arg, %shiftamt
446     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
447     $vgpr0 = COPY %result
451 name: cvt_f32_ubyte2_shl_16
452 tracksRegLiveness: true
453 body:             |
454   bb.0:
455     liveins: $vgpr0
457     ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_16
458     ; CHECK: liveins: $vgpr0
459     ; CHECK-NEXT: {{  $}}
460     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
461     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 16
462     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
463     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
464     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
465     %arg:_(s32) = COPY $vgpr0
466     %shiftamt:_(s32) = G_CONSTANT i32 16
467     %shift:_(s32) = G_SHL %arg, %shiftamt
468     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
469     $vgpr0 = COPY %result
473 name: cvt_f32_ubyte3_shl_16
474 tracksRegLiveness: true
475 body:             |
476   bb.0:
477     liveins: $vgpr0
479     ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_16
480     ; CHECK: liveins: $vgpr0
481     ; CHECK-NEXT: {{  $}}
482     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
483     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %arg
484     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
485     %arg:_(s32) = COPY $vgpr0
486     %shiftamt:_(s32) = G_CONSTANT i32 16
487     %shift:_(s32) = G_SHL %arg, %shiftamt
488     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
489     $vgpr0 = COPY %result
493 name: cvt_f32_ubyte0_shl_24
494 tracksRegLiveness: true
495 body:             |
496   bb.0:
497     liveins: $vgpr0
499     ; CHECK-LABEL: name: cvt_f32_ubyte0_shl_24
500     ; CHECK: liveins: $vgpr0
501     ; CHECK-NEXT: {{  $}}
502     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
503     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24
504     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
505     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
506     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
507     %arg:_(s32) = COPY $vgpr0
508     %shiftamt:_(s32) = G_CONSTANT i32 24
509     %shift:_(s32) = G_SHL %arg, %shiftamt
510     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE0 %shift
511     $vgpr0 = COPY %result
515 name: cvt_f32_ubyte1_shl_24
516 tracksRegLiveness: true
517 body:             |
518   bb.0:
519     liveins: $vgpr0
521     ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_24
522     ; CHECK: liveins: $vgpr0
523     ; CHECK-NEXT: {{  $}}
524     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
525     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24
526     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
527     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
528     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
529     %arg:_(s32) = COPY $vgpr0
530     %shiftamt:_(s32) = G_CONSTANT i32 24
531     %shift:_(s32) = G_SHL %arg, %shiftamt
532     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
533     $vgpr0 = COPY %result
537 name: cvt_f32_ubyte2_shl_24
538 tracksRegLiveness: true
539 body:             |
540   bb.0:
541     liveins: $vgpr0
543     ; CHECK-LABEL: name: cvt_f32_ubyte2_shl_24
544     ; CHECK: liveins: $vgpr0
545     ; CHECK-NEXT: {{  $}}
546     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
547     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24
548     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
549     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
550     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
551     %arg:_(s32) = COPY $vgpr0
552     %shiftamt:_(s32) = G_CONSTANT i32 24
553     %shift:_(s32) = G_SHL %arg, %shiftamt
554     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE2 %shift
555     $vgpr0 = COPY %result
559 name: cvt_f32_ubyte3_shl_24
560 tracksRegLiveness: true
561 body:             |
562   bb.0:
563     liveins: $vgpr0
565     ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_24
566     ; CHECK: liveins: $vgpr0
567     ; CHECK-NEXT: {{  $}}
568     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
569     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 24
570     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
571     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
572     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
573     %arg:_(s32) = COPY $vgpr0
574     %shiftamt:_(s32) = G_CONSTANT i32 24
575     %shift:_(s32) = G_SHL %arg, %shiftamt
576     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
577     $vgpr0 = COPY %result
580 # Shift amount is wrong
582 name: cvt_f32_ubyte1_shl_7
583 tracksRegLiveness: true
584 body:             |
585   bb.0:
586     liveins: $vgpr0
588     ; CHECK-LABEL: name: cvt_f32_ubyte1_shl_7
589     ; CHECK: liveins: $vgpr0
590     ; CHECK-NEXT: {{  $}}
591     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
592     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 7
593     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
594     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
595     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
596     %arg:_(s32) = COPY $vgpr0
597     %shiftamt:_(s32) = G_CONSTANT i32 7
598     %shift:_(s32) = G_SHL %arg, %shiftamt
599     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE1 %shift
600     $vgpr0 = COPY %result
604 name: cvt_f32_ubyte3_shl_17
605 tracksRegLiveness: true
606 body:             |
607   bb.0:
608     liveins: $vgpr0
610     ; CHECK-LABEL: name: cvt_f32_ubyte3_shl_17
611     ; CHECK: liveins: $vgpr0
612     ; CHECK-NEXT: {{  $}}
613     ; CHECK-NEXT: %arg:_(s32) = COPY $vgpr0
614     ; CHECK-NEXT: %shiftamt:_(s32) = G_CONSTANT i32 17
615     ; CHECK-NEXT: %shift:_(s32) = G_SHL %arg, %shiftamt(s32)
616     ; CHECK-NEXT: %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
617     ; CHECK-NEXT: $vgpr0 = COPY %result(s32)
618     %arg:_(s32) = COPY $vgpr0
619     %shiftamt:_(s32) = G_CONSTANT i32 17
620     %shift:_(s32) = G_SHL %arg, %shiftamt
621     %result:_(s32) = G_AMDGPU_CVT_F32_UBYTE3 %shift
622     $vgpr0 = COPY %result