Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / regbankselect-copy.mir
blob48de4838b78f91bce4519045962eb0cc5fed5d8a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=amdgpu-regbankselect -regbankselect-fast -verify-machineinstrs %s -o - | FileCheck %s
3 # RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=amdgpu-regbankselect -regbankselect-greedy -verify-machineinstrs %s -o - | FileCheck %s
5 ---
6 name: copy_s32_vgpr_to_vgpr
7 legalized: true
9 body: |
10   bb.0:
11     liveins: $vgpr0
12     ; CHECK-LABEL: name: copy_s32_vgpr_to_vgpr
13     ; CHECK: liveins: $vgpr0
14     ; CHECK-NEXT: {{  $}}
15     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
16     ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)
17     %0:_(s32) = COPY $vgpr0
18     $vgpr0 = COPY %0
20 ...
22 ---
23 name: copy_s32_sgpr_to_sgpr
24 legalized: true
26 body: |
27   bb.0:
28     liveins: $sgpr0
29     ; CHECK-LABEL: name: copy_s32_sgpr_to_sgpr
30     ; CHECK: liveins: $sgpr0
31     ; CHECK-NEXT: {{  $}}
32     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
33     ; CHECK-NEXT: $sgpr0 = COPY [[COPY]](s32)
34     %0:_(s32) = COPY $sgpr0
35     $sgpr0 = COPY %0
37 ...
39 ---
40 name: copy_s32_sgpr_to_vgpr
41 legalized: true
43 body: |
44   bb.0:
45     liveins: $sgpr0
46     ; CHECK-LABEL: name: copy_s32_sgpr_to_vgpr
47     ; CHECK: liveins: $sgpr0
48     ; CHECK-NEXT: {{  $}}
49     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
50     ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)
51     %0:_(s32) = COPY $sgpr0
52     $vgpr0 = COPY %0
54 ...
56 ---
57 name: copy_s32_vgpr_to_agpr
58 legalized: true
60 body: |
61   bb.0:
62     liveins: $vgpr0
63     ; CHECK-LABEL: name: copy_s32_vgpr_to_agpr
64     ; CHECK: liveins: $vgpr0
65     ; CHECK-NEXT: {{  $}}
66     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
67     ; CHECK-NEXT: $agpr0 = COPY [[COPY]](s32)
68     %0:_(s32) = COPY $vgpr0
69     $agpr0 = COPY %0
71 ...
73 ---
74 name: copy_s32_sgpr_to_agpr
75 legalized: true
77 body: |
78   bb.0:
79     liveins: $sgpr0
80     ; CHECK-LABEL: name: copy_s32_sgpr_to_agpr
81     ; CHECK: liveins: $sgpr0
82     ; CHECK-NEXT: {{  $}}
83     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
84     ; CHECK-NEXT: $agpr0 = COPY [[COPY]](s32)
85     %0:_(s32) = COPY $sgpr0
86     $agpr0 = COPY %0
88 ...
90 ---
91 name: copy_s32_agpr_to_vgpr
92 legalized: true
94 body: |
95   bb.0:
96     liveins: $agpr0
97     ; CHECK-LABEL: name: copy_s32_agpr_to_vgpr
98     ; CHECK: liveins: $agpr0
99     ; CHECK-NEXT: {{  $}}
100     ; CHECK-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0
101     ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)
102     %0:_(s32) = COPY $agpr0
103     $vgpr0 = COPY %0
108 name: copy_s32_agpr_to_agpr
109 legalized: true
111 body: |
112   bb.0:
113     liveins: $agpr0
114     ; CHECK-LABEL: name: copy_s32_agpr_to_agpr
115     ; CHECK: liveins: $agpr0
116     ; CHECK-NEXT: {{  $}}
117     ; CHECK-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0
118     ; CHECK-NEXT: $agpr0 = COPY [[COPY]](s32)
119     %0:_(s32) = COPY $agpr0
120     $agpr0 = COPY %0
125 name: copy_s1_sgpr_to_vcc_preassigned
126 legalized: true
128 body: |
129   bb.0:
130     liveins: $sgpr0
131     ; CHECK-LABEL: name: copy_s1_sgpr_to_vcc_preassigned
132     ; CHECK: liveins: $sgpr0
133     ; CHECK-NEXT: {{  $}}
134     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
135     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
136     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
137     ; CHECK-NEXT: S_ENDPGM 0, implicit [[COPY1]](s1)
138     %0:sgpr(s32) = COPY $sgpr0
139     %1:sgpr(s1) = G_TRUNC %0
140     %2:vcc(s1) = COPY %1
141     S_ENDPGM 0, implicit %2
145 name: copy_s1_vgpr_to_vcc_preassigned
146 legalized: true
148 body: |
149   bb.0:
150     liveins: $vgpr0
151     ; CHECK-LABEL: name: copy_s1_vgpr_to_vcc_preassigned
152     ; CHECK: liveins: $vgpr0
153     ; CHECK-NEXT: {{  $}}
154     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
155     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
156     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
157     ; CHECK-NEXT: S_ENDPGM 0, implicit [[COPY1]](s1)
158     %0:vgpr(s32) = COPY $vgpr0
159     %1:vgpr(s1) = G_TRUNC %0
160     %2:vcc(s1) = COPY %1
161     S_ENDPGM 0, implicit %2
165 name: copy_s1_sgpr_to_vcc
166 legalized: true
168 body: |
169   bb.0:
170     liveins: $sgpr0
171     ; CHECK-LABEL: name: copy_s1_sgpr_to_vcc
172     ; CHECK: liveins: $sgpr0
173     ; CHECK-NEXT: {{  $}}
174     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
175     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
176     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
177     ; CHECK-NEXT: S_ENDPGM 0, implicit [[COPY1]](s1)
178     %0:_(s32) = COPY $sgpr0
179     %1:_(s1) = G_TRUNC %0
180     %2:vcc(s1) = COPY %1
181     S_ENDPGM 0, implicit %2
186 name: copy_s1_vgpr_to_vcc
187 legalized: true
189 body: |
190   bb.0:
191     liveins: $vgpr0
192     ; CHECK-LABEL: name: copy_s1_vgpr_to_vcc
193     ; CHECK: liveins: $vgpr0
194     ; CHECK-NEXT: {{  $}}
195     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
196     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
197     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
198     ; CHECK-NEXT: S_ENDPGM 0, implicit [[COPY1]](s1)
199     %0:_(s32) = COPY $vgpr0
200     %1:_(s1) = G_TRUNC %0
201     %2:vcc(s1) = COPY %1
202     S_ENDPGM 0, implicit %2