[AMDGPU] Make v8i16/v8f16 legal
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / regbankselect-copy.mir
blob00dd8f0d9f84fe6844ce8c9b3b2ec51bf5ca5c33
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx908 -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs %s -o - | FileCheck %s
3 # RUN: llc -march=amdgcn -mcpu=gfx908 -run-pass=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: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
14     ; CHECK: $vgpr0 = COPY [[COPY]](s32)
15     %0:_(s32) = COPY $vgpr0
16     $vgpr0 = COPY %0
18 ...
20 ---
21 name: copy_s32_sgpr_to_sgpr
22 legalized: true
24 body: |
25   bb.0:
26     liveins: $sgpr0
27     ; CHECK-LABEL: name: copy_s32_sgpr_to_sgpr
28     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
29     ; CHECK: $sgpr0 = COPY [[COPY]](s32)
30     %0:_(s32) = COPY $sgpr0
31     $sgpr0 = COPY %0
33 ...
35 ---
36 name: copy_s32_sgpr_to_vgpr
37 legalized: true
39 body: |
40   bb.0:
41     liveins: $sgpr0
42     ; CHECK-LABEL: name: copy_s32_sgpr_to_vgpr
43     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
44     ; CHECK: $vgpr0 = COPY [[COPY]](s32)
45     %0:_(s32) = COPY $sgpr0
46     $vgpr0 = COPY %0
48 ...
50 ---
51 name: copy_s32_vgpr_to_agpr
52 legalized: true
54 body: |
55   bb.0:
56     liveins: $vgpr0
57     ; CHECK-LABEL: name: copy_s32_vgpr_to_agpr
58     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
59     ; CHECK: $agpr0 = COPY [[COPY]](s32)
60     %0:_(s32) = COPY $vgpr0
61     $agpr0 = COPY %0
63 ...
65 ---
66 name: copy_s32_sgpr_to_agpr
67 legalized: true
69 body: |
70   bb.0:
71     liveins: $sgpr0
72     ; CHECK-LABEL: name: copy_s32_sgpr_to_agpr
73     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
74     ; CHECK: $agpr0 = COPY [[COPY]](s32)
75     %0:_(s32) = COPY $sgpr0
76     $agpr0 = COPY %0
78 ...
80 ---
81 name: copy_s32_agpr_to_vgpr
82 legalized: true
84 body: |
85   bb.0:
86     liveins: $agpr0
87     ; CHECK-LABEL: name: copy_s32_agpr_to_vgpr
88     ; CHECK: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0
89     ; CHECK: $vgpr0 = COPY [[COPY]](s32)
90     %0:_(s32) = COPY $agpr0
91     $vgpr0 = COPY %0
93 ...
95 ---
96 name: copy_s32_agpr_to_agpr
97 legalized: true
99 body: |
100   bb.0:
101     liveins: $agpr0
102     ; CHECK-LABEL: name: copy_s32_agpr_to_agpr
103     ; CHECK: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0
104     ; CHECK: $agpr0 = COPY [[COPY]](s32)
105     %0:_(s32) = COPY $agpr0
106     $agpr0 = COPY %0
111 name: copy_s1_sgpr_to_vcc_preassigned
112 legalized: true
114 body: |
115   bb.0:
116     liveins: $sgpr0
117     ; CHECK-LABEL: name: copy_s1_sgpr_to_vcc_preassigned
118     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
119     ; CHECK: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
120     ; CHECK: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
121     ; CHECK: S_ENDPGM 0, implicit [[COPY1]](s1)
122     %0:sgpr(s32) = COPY $sgpr0
123     %1:sgpr(s1) = G_TRUNC %0
124     %2:vcc(s1) = COPY %1
125     S_ENDPGM 0, implicit %2
129 name: copy_s1_vgpr_to_vcc_preassigned
130 legalized: true
132 body: |
133   bb.0:
134     liveins: $vgpr0
135     ; CHECK-LABEL: name: copy_s1_vgpr_to_vcc_preassigned
136     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
137     ; CHECK: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
138     ; CHECK: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
139     ; CHECK: S_ENDPGM 0, implicit [[COPY1]](s1)
140     %0:vgpr(s32) = COPY $vgpr0
141     %1:vgpr(s1) = G_TRUNC %0
142     %2:vcc(s1) = COPY %1
143     S_ENDPGM 0, implicit %2
147 name: copy_s1_sgpr_to_vcc
148 legalized: true
150 body: |
151   bb.0:
152     liveins: $sgpr0
153     ; CHECK-LABEL: name: copy_s1_sgpr_to_vcc
154     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
155     ; CHECK: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
156     ; CHECK: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
157     ; CHECK: S_ENDPGM 0, implicit [[COPY1]](s1)
158     %0:_(s32) = COPY $sgpr0
159     %1:_(s1) = G_TRUNC %0
160     %2:vcc(s1) = COPY %1
161     S_ENDPGM 0, implicit %2
166 name: copy_s1_vgpr_to_vcc
167 legalized: true
169 body: |
170   bb.0:
171     liveins: $vgpr0
172     ; CHECK-LABEL: name: copy_s1_vgpr_to_vcc
173     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
174     ; CHECK: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
175     ; CHECK: [[COPY1:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
176     ; CHECK: S_ENDPGM 0, implicit [[COPY1]](s1)
177     %0:_(s32) = COPY $vgpr0
178     %1:_(s1) = G_TRUNC %0
179     %2:vcc(s1) = COPY %1
180     S_ENDPGM 0, implicit %2