xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-zextload-local.mir (revision 8871c3c562690347d75190be758312d1f92a7db4)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -o - %s | FileCheck %s
3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -o - %s | FileCheck %s
4---
5name: test_zextload_local_i32_i8
6body: |
7  bb.0:
8    liveins: $vgpr0
9
10    ; CHECK-LABEL: name: test_zextload_local_i32_i8
11    ; CHECK: liveins: $vgpr0
12    ; CHECK-NEXT: {{  $}}
13    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
14    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p3) :: (load (s8), addrspace 3)
15    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)
16    %0:_(p3) = COPY $vgpr0
17    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s8), addrspace 3)
18    $vgpr0 = COPY %1
19...
20---
21name: test_zextload_local_i32_i16
22body: |
23  bb.0:
24    liveins: $vgpr0
25
26    ; CHECK-LABEL: name: test_zextload_local_i32_i16
27    ; CHECK: liveins: $vgpr0
28    ; CHECK-NEXT: {{  $}}
29    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
30    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p3) :: (load (s16), addrspace 3)
31    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)
32    %0:_(p3) = COPY $vgpr0
33    %1:_(s32) = G_ZEXTLOAD %0 :: (load (s16), addrspace 3)
34    $vgpr0 = COPY %1
35...
36---
37name: test_zextload_local_i31_i8
38body: |
39  bb.0:
40    liveins: $vgpr0
41
42    ; CHECK-LABEL: name: test_zextload_local_i31_i8
43    ; CHECK: liveins: $vgpr0
44    ; CHECK-NEXT: {{  $}}
45    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
46    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p3) :: (load (s8), addrspace 3)
47    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXTLOAD]](s32)
48    %0:_(p3) = COPY $vgpr0
49    %1:_(s31) = G_ZEXTLOAD %0 :: (load (s8), addrspace 3)
50    %2:_(s32) = G_ANYEXT %1
51    $vgpr0 = COPY %2
52...
53---
54name: test_zextload_local_i64_i8
55body: |
56  bb.0:
57    liveins: $vgpr0
58
59    ; CHECK-LABEL: name: test_zextload_local_i64_i8
60    ; CHECK: liveins: $vgpr0
61    ; CHECK-NEXT: {{  $}}
62    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
63    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p3) :: (load (s8), addrspace 3)
64    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[ZEXTLOAD]](s32)
65    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
66    %0:_(p3) = COPY $vgpr0
67    %1:_(s64) = G_ZEXTLOAD %0 :: (load (s8), addrspace 3)
68    $vgpr0_vgpr1 = COPY %1
69...
70---
71name: test_zextload_local_i64_i16
72body: |
73  bb.0:
74    liveins: $vgpr0
75
76    ; CHECK-LABEL: name: test_zextload_local_i64_i16
77    ; CHECK: liveins: $vgpr0
78    ; CHECK-NEXT: {{  $}}
79    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
80    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p3) :: (load (s16), addrspace 3)
81    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[ZEXTLOAD]](s32)
82    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
83    %0:_(p3) = COPY $vgpr0
84    %1:_(s64) = G_ZEXTLOAD %0 :: (load (s16), addrspace 3)
85    $vgpr0_vgpr1 = COPY %1
86...
87---
88name: test_zextload_local_i64_i32
89body: |
90  bb.0:
91    liveins: $vgpr0_vgpr1
92
93    ; CHECK-LABEL: name: test_zextload_local_i64_i32
94    ; CHECK: liveins: $vgpr0_vgpr1
95    ; CHECK-NEXT: {{  $}}
96    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
97    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p3) :: (load (s32), addrspace 3)
98    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[LOAD]](s32)
99    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)
100    %0:_(p3) = COPY $vgpr0
101    %1:_(s64) = G_ZEXTLOAD %0 :: (load (s32), addrspace 3)
102    $vgpr0_vgpr1 = COPY %1
103...
104