221
|
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
2 # RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=greedy -o - -verify-machineinstrs %s | FileCheck -check-prefix=RA %s
|
|
3 # RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=greedy,virtregrewriter,post-RA-sched -o - -verify-machineinstrs %s | FileCheck -check-prefix=VR %s
|
|
4
|
|
5 ---
|
|
6 name: splitkit_copy_bundle
|
|
7 tracksRegLiveness: true
|
|
8 machineFunctionInfo:
|
|
9 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
|
|
10 stackPtrOffsetReg: '$sgpr32'
|
|
11 body: |
|
|
12 ; RA-LABEL: name: splitkit_copy_bundle
|
|
13 ; RA: bb.0:
|
236
|
14 ; RA-NEXT: successors: %bb.1(0x80000000)
|
|
15 ; RA-NEXT: {{ $}}
|
|
16 ; RA-NEXT: [[DEF:%[0-9]+]]:sreg_64 = IMPLICIT_DEF
|
|
17 ; RA-NEXT: [[DEF1:%[0-9]+]]:sreg_64 = IMPLICIT_DEF
|
|
18 ; RA-NEXT: undef %2.sub1:sgpr_1024 = S_MOV_B32 -1
|
|
19 ; RA-NEXT: %2.sub0:sgpr_1024 = S_MOV_B32 -1
|
|
20 ; RA-NEXT: undef %3.sub0:sgpr_1024 = S_MOV_B32 0
|
|
21 ; RA-NEXT: {{ $}}
|
|
22 ; RA-NEXT: bb.1:
|
|
23 ; RA-NEXT: successors: %bb.2(0x80000000)
|
|
24 ; RA-NEXT: {{ $}}
|
|
25 ; RA-NEXT: %2.sub2:sgpr_1024 = COPY %2.sub0
|
|
26 ; RA-NEXT: %2.sub3:sgpr_1024 = COPY %2.sub1
|
|
27 ; RA-NEXT: %2.sub4:sgpr_1024 = COPY %2.sub0
|
|
28 ; RA-NEXT: %2.sub5:sgpr_1024 = COPY %2.sub1
|
|
29 ; RA-NEXT: %2.sub6:sgpr_1024 = COPY %2.sub0
|
|
30 ; RA-NEXT: %2.sub7:sgpr_1024 = COPY %2.sub1
|
|
31 ; RA-NEXT: %2.sub8:sgpr_1024 = COPY %2.sub0
|
|
32 ; RA-NEXT: %2.sub9:sgpr_1024 = COPY %2.sub1
|
|
33 ; RA-NEXT: %2.sub10:sgpr_1024 = COPY %2.sub0
|
|
34 ; RA-NEXT: %2.sub11:sgpr_1024 = COPY %2.sub1
|
|
35 ; RA-NEXT: %2.sub12:sgpr_1024 = COPY %2.sub0
|
|
36 ; RA-NEXT: %2.sub13:sgpr_1024 = COPY %2.sub1
|
|
37 ; RA-NEXT: %2.sub14:sgpr_1024 = COPY %2.sub0
|
|
38 ; RA-NEXT: %2.sub15:sgpr_1024 = COPY %2.sub1
|
|
39 ; RA-NEXT: %2.sub16:sgpr_1024 = COPY %2.sub0
|
|
40 ; RA-NEXT: %2.sub17:sgpr_1024 = COPY %2.sub1
|
|
41 ; RA-NEXT: %2.sub18:sgpr_1024 = COPY %2.sub0
|
|
42 ; RA-NEXT: %2.sub19:sgpr_1024 = COPY %2.sub1
|
|
43 ; RA-NEXT: %2.sub20:sgpr_1024 = COPY %2.sub0
|
|
44 ; RA-NEXT: %2.sub21:sgpr_1024 = COPY %2.sub1
|
|
45 ; RA-NEXT: %2.sub22:sgpr_1024 = COPY %2.sub0
|
|
46 ; RA-NEXT: %2.sub23:sgpr_1024 = COPY %2.sub1
|
|
47 ; RA-NEXT: %2.sub24:sgpr_1024 = COPY %2.sub0
|
|
48 ; RA-NEXT: %2.sub25:sgpr_1024 = COPY %2.sub1
|
|
49 ; RA-NEXT: %2.sub26:sgpr_1024 = COPY %2.sub0
|
|
50 ; RA-NEXT: %2.sub27:sgpr_1024 = COPY %2.sub1
|
|
51 ; RA-NEXT: %2.sub28:sgpr_1024 = COPY %2.sub0
|
|
52 ; RA-NEXT: %2.sub29:sgpr_1024 = COPY %2.sub1
|
|
53 ; RA-NEXT: %3.sub1:sgpr_1024 = COPY %3.sub0
|
|
54 ; RA-NEXT: %3.sub2:sgpr_1024 = COPY %3.sub0
|
|
55 ; RA-NEXT: %3.sub3:sgpr_1024 = COPY %3.sub0
|
|
56 ; RA-NEXT: %3.sub4:sgpr_1024 = COPY %3.sub0
|
|
57 ; RA-NEXT: %3.sub5:sgpr_1024 = COPY %3.sub0
|
|
58 ; RA-NEXT: %3.sub6:sgpr_1024 = COPY %3.sub0
|
|
59 ; RA-NEXT: %3.sub7:sgpr_1024 = COPY %3.sub0
|
|
60 ; RA-NEXT: %3.sub8:sgpr_1024 = COPY %3.sub0
|
|
61 ; RA-NEXT: %3.sub9:sgpr_1024 = COPY %3.sub0
|
|
62 ; RA-NEXT: %3.sub10:sgpr_1024 = COPY %3.sub0
|
|
63 ; RA-NEXT: %3.sub11:sgpr_1024 = COPY %3.sub0
|
|
64 ; RA-NEXT: %3.sub12:sgpr_1024 = COPY %3.sub0
|
|
65 ; RA-NEXT: %3.sub13:sgpr_1024 = COPY %3.sub0
|
|
66 ; RA-NEXT: %3.sub14:sgpr_1024 = COPY %3.sub0
|
|
67 ; RA-NEXT: %3.sub15:sgpr_1024 = COPY %3.sub0
|
|
68 ; RA-NEXT: %3.sub16:sgpr_1024 = COPY %3.sub0
|
|
69 ; RA-NEXT: %3.sub17:sgpr_1024 = COPY %3.sub0
|
|
70 ; RA-NEXT: %3.sub18:sgpr_1024 = COPY %3.sub0
|
|
71 ; RA-NEXT: %3.sub19:sgpr_1024 = COPY %3.sub0
|
|
72 ; RA-NEXT: %3.sub20:sgpr_1024 = COPY %3.sub0
|
|
73 ; RA-NEXT: %3.sub21:sgpr_1024 = COPY %3.sub0
|
|
74 ; RA-NEXT: %3.sub22:sgpr_1024 = COPY %3.sub0
|
|
75 ; RA-NEXT: %3.sub23:sgpr_1024 = COPY %3.sub0
|
|
76 ; RA-NEXT: %3.sub24:sgpr_1024 = COPY %3.sub0
|
|
77 ; RA-NEXT: %3.sub25:sgpr_1024 = COPY %3.sub0
|
|
78 ; RA-NEXT: %3.sub26:sgpr_1024 = COPY %3.sub0
|
|
79 ; RA-NEXT: %3.sub27:sgpr_1024 = COPY %3.sub0
|
|
80 ; RA-NEXT: %3.sub28:sgpr_1024 = COPY %3.sub0
|
|
81 ; RA-NEXT: %3.sub29:sgpr_1024 = COPY %3.sub0
|
|
82 ; RA-NEXT: %3.sub30:sgpr_1024 = COPY %3.sub0
|
|
83 ; RA-NEXT: %3.sub31:sgpr_1024 = COPY %3.sub0
|
|
84 ; RA-NEXT: {{ $}}
|
|
85 ; RA-NEXT: bb.2:
|
|
86 ; RA-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
|
|
87 ; RA-NEXT: {{ $}}
|
|
88 ; RA-NEXT: S_NOP 0, csr_amdgpu, implicit [[DEF]], implicit [[DEF1]]
|
|
89 ; RA-NEXT: S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc
|
|
90 ; RA-NEXT: S_BRANCH %bb.2
|
221
|
91 ; VR-LABEL: name: splitkit_copy_bundle
|
|
92 ; VR: bb.0:
|
236
|
93 ; VR-NEXT: successors: %bb.1(0x80000000)
|
|
94 ; VR-NEXT: {{ $}}
|
|
95 ; VR-NEXT: renamable $sgpr37 = S_MOV_B32 -1
|
|
96 ; VR-NEXT: renamable $sgpr36 = S_MOV_B32 -1
|
|
97 ; VR-NEXT: renamable $sgpr68 = S_MOV_B32 0
|
|
98 ; VR-NEXT: renamable $sgpr30_sgpr31 = IMPLICIT_DEF
|
|
99 ; VR-NEXT: renamable $sgpr34_sgpr35 = IMPLICIT_DEF
|
|
100 ; VR-NEXT: {{ $}}
|
|
101 ; VR-NEXT: bb.1:
|
|
102 ; VR-NEXT: successors: %bb.2(0x80000000)
|
252
|
103 ; VR-NEXT: liveins: $sgpr30_sgpr31, $sgpr34_sgpr35, $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67:0x000000000000000F, $sgpr68_sgpr69_sgpr70_sgpr71_sgpr72_sgpr73_sgpr74_sgpr75_sgpr76_sgpr77_sgpr78_sgpr79_sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95_sgpr96_sgpr97_sgpr98_sgpr99:0x0000000000000003
|
236
|
104 ; VR-NEXT: {{ $}}
|
|
105 ; VR-NEXT: renamable $sgpr38 = COPY renamable $sgpr36
|
|
106 ; VR-NEXT: renamable $sgpr39 = COPY renamable $sgpr37
|
|
107 ; VR-NEXT: renamable $sgpr40 = COPY renamable $sgpr36
|
|
108 ; VR-NEXT: renamable $sgpr41 = COPY renamable $sgpr37
|
|
109 ; VR-NEXT: renamable $sgpr42 = COPY renamable $sgpr36
|
|
110 ; VR-NEXT: renamable $sgpr43 = COPY renamable $sgpr37
|
|
111 ; VR-NEXT: renamable $sgpr44 = COPY renamable $sgpr36
|
|
112 ; VR-NEXT: renamable $sgpr45 = COPY renamable $sgpr37
|
|
113 ; VR-NEXT: renamable $sgpr46 = COPY renamable $sgpr36
|
|
114 ; VR-NEXT: renamable $sgpr47 = COPY renamable $sgpr37
|
|
115 ; VR-NEXT: renamable $sgpr48 = COPY renamable $sgpr36
|
|
116 ; VR-NEXT: renamable $sgpr49 = COPY renamable $sgpr37
|
|
117 ; VR-NEXT: renamable $sgpr50 = COPY renamable $sgpr36
|
|
118 ; VR-NEXT: renamable $sgpr51 = COPY renamable $sgpr37
|
|
119 ; VR-NEXT: renamable $sgpr52 = COPY renamable $sgpr36
|
|
120 ; VR-NEXT: renamable $sgpr53 = COPY renamable $sgpr37
|
|
121 ; VR-NEXT: renamable $sgpr54 = COPY renamable $sgpr36
|
|
122 ; VR-NEXT: renamable $sgpr55 = COPY renamable $sgpr37
|
|
123 ; VR-NEXT: renamable $sgpr56 = COPY renamable $sgpr36
|
|
124 ; VR-NEXT: renamable $sgpr57 = COPY renamable $sgpr37
|
|
125 ; VR-NEXT: renamable $sgpr58 = COPY renamable $sgpr36
|
|
126 ; VR-NEXT: renamable $sgpr59 = COPY renamable $sgpr37
|
|
127 ; VR-NEXT: renamable $sgpr60 = COPY renamable $sgpr36
|
|
128 ; VR-NEXT: renamable $sgpr61 = COPY renamable $sgpr37
|
|
129 ; VR-NEXT: renamable $sgpr62 = COPY renamable $sgpr36
|
|
130 ; VR-NEXT: renamable $sgpr63 = COPY renamable $sgpr37
|
|
131 ; VR-NEXT: renamable $sgpr64 = COPY renamable $sgpr36
|
|
132 ; VR-NEXT: renamable $sgpr65 = COPY renamable $sgpr37
|
|
133 ; VR-NEXT: renamable $sgpr69 = COPY renamable $sgpr68
|
|
134 ; VR-NEXT: renamable $sgpr70 = COPY renamable $sgpr68
|
|
135 ; VR-NEXT: renamable $sgpr71 = COPY renamable $sgpr68
|
|
136 ; VR-NEXT: renamable $sgpr72 = COPY renamable $sgpr68
|
|
137 ; VR-NEXT: renamable $sgpr73 = COPY renamable $sgpr68
|
|
138 ; VR-NEXT: renamable $sgpr74 = COPY renamable $sgpr68
|
|
139 ; VR-NEXT: renamable $sgpr75 = COPY renamable $sgpr68
|
|
140 ; VR-NEXT: renamable $sgpr76 = COPY renamable $sgpr68
|
|
141 ; VR-NEXT: renamable $sgpr77 = COPY renamable $sgpr68
|
|
142 ; VR-NEXT: renamable $sgpr78 = COPY renamable $sgpr68
|
|
143 ; VR-NEXT: renamable $sgpr79 = COPY renamable $sgpr68
|
|
144 ; VR-NEXT: renamable $sgpr80 = COPY renamable $sgpr68
|
|
145 ; VR-NEXT: renamable $sgpr81 = COPY renamable $sgpr68
|
|
146 ; VR-NEXT: renamable $sgpr82 = COPY renamable $sgpr68
|
|
147 ; VR-NEXT: renamable $sgpr83 = COPY renamable $sgpr68
|
|
148 ; VR-NEXT: renamable $sgpr84 = COPY renamable $sgpr68
|
|
149 ; VR-NEXT: renamable $sgpr85 = COPY renamable $sgpr68
|
|
150 ; VR-NEXT: renamable $sgpr86 = COPY renamable $sgpr68
|
|
151 ; VR-NEXT: renamable $sgpr87 = COPY renamable $sgpr68
|
|
152 ; VR-NEXT: renamable $sgpr88 = COPY renamable $sgpr68
|
|
153 ; VR-NEXT: renamable $sgpr89 = COPY renamable $sgpr68
|
|
154 ; VR-NEXT: renamable $sgpr90 = COPY renamable $sgpr68
|
|
155 ; VR-NEXT: renamable $sgpr91 = COPY renamable $sgpr68
|
|
156 ; VR-NEXT: renamable $sgpr92 = COPY renamable $sgpr68
|
|
157 ; VR-NEXT: renamable $sgpr93 = COPY renamable $sgpr68
|
|
158 ; VR-NEXT: renamable $sgpr94 = COPY renamable $sgpr68
|
|
159 ; VR-NEXT: renamable $sgpr95 = COPY renamable $sgpr68
|
|
160 ; VR-NEXT: renamable $sgpr96 = COPY renamable $sgpr68
|
|
161 ; VR-NEXT: renamable $sgpr97 = COPY renamable $sgpr68
|
|
162 ; VR-NEXT: renamable $sgpr98 = COPY renamable $sgpr68
|
|
163 ; VR-NEXT: renamable $sgpr99 = COPY renamable $sgpr68
|
|
164 ; VR-NEXT: {{ $}}
|
|
165 ; VR-NEXT: bb.2:
|
|
166 ; VR-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
|
252
|
167 ; VR-NEXT: liveins: $sgpr30_sgpr31, $sgpr34_sgpr35, $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67:0x000000000000000F, $sgpr68_sgpr69_sgpr70_sgpr71_sgpr72_sgpr73_sgpr74_sgpr75_sgpr76_sgpr77_sgpr78_sgpr79_sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95_sgpr96_sgpr97_sgpr98_sgpr99:0x0000000000000003
|
236
|
168 ; VR-NEXT: {{ $}}
|
|
169 ; VR-NEXT: S_NOP 0, csr_amdgpu, implicit renamable $sgpr30_sgpr31, implicit renamable $sgpr34_sgpr35
|
|
170 ; VR-NEXT: S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc
|
|
171 ; VR-NEXT: S_BRANCH %bb.2
|
221
|
172 bb.0:
|
|
173 %0:sreg_64 = IMPLICIT_DEF
|
|
174 %1:sreg_64 = IMPLICIT_DEF
|
|
175 undef %2.sub1:sgpr_1024 = S_MOV_B32 -1
|
|
176 %2.sub0:sgpr_1024 = S_MOV_B32 -1
|
|
177 undef %3.sub0:sgpr_1024 = S_MOV_B32 0
|
|
178
|
|
179 bb.1:
|
|
180 %2.sub2:sgpr_1024 = COPY %2.sub0
|
|
181 %2.sub3:sgpr_1024 = COPY %2.sub1
|
|
182 %2.sub4:sgpr_1024 = COPY %2.sub0
|
|
183 %2.sub5:sgpr_1024 = COPY %2.sub1
|
|
184 %2.sub6:sgpr_1024 = COPY %2.sub0
|
|
185 %2.sub7:sgpr_1024 = COPY %2.sub1
|
|
186 %2.sub8:sgpr_1024 = COPY %2.sub0
|
|
187 %2.sub9:sgpr_1024 = COPY %2.sub1
|
|
188 %2.sub10:sgpr_1024 = COPY %2.sub0
|
|
189 %2.sub11:sgpr_1024 = COPY %2.sub1
|
|
190 %2.sub12:sgpr_1024 = COPY %2.sub0
|
|
191 %2.sub13:sgpr_1024 = COPY %2.sub1
|
|
192 %2.sub14:sgpr_1024 = COPY %2.sub0
|
|
193 %2.sub15:sgpr_1024 = COPY %2.sub1
|
|
194 %2.sub16:sgpr_1024 = COPY %2.sub0
|
|
195 %2.sub17:sgpr_1024 = COPY %2.sub1
|
|
196 %2.sub18:sgpr_1024 = COPY %2.sub0
|
|
197 %2.sub19:sgpr_1024 = COPY %2.sub1
|
|
198 %2.sub20:sgpr_1024 = COPY %2.sub0
|
|
199 %2.sub21:sgpr_1024 = COPY %2.sub1
|
|
200 %2.sub22:sgpr_1024 = COPY %2.sub0
|
|
201 %2.sub23:sgpr_1024 = COPY %2.sub1
|
|
202 %2.sub24:sgpr_1024 = COPY %2.sub0
|
|
203 %2.sub25:sgpr_1024 = COPY %2.sub1
|
|
204 %2.sub26:sgpr_1024 = COPY %2.sub0
|
|
205 %2.sub27:sgpr_1024 = COPY %2.sub1
|
|
206 %2.sub28:sgpr_1024 = COPY %2.sub0
|
|
207 %2.sub29:sgpr_1024 = COPY %2.sub1
|
|
208 %3.sub1:sgpr_1024 = COPY %3.sub0
|
|
209 %3.sub2:sgpr_1024 = COPY %3.sub0
|
|
210 %3.sub3:sgpr_1024 = COPY %3.sub0
|
|
211 %3.sub4:sgpr_1024 = COPY %3.sub0
|
|
212 %3.sub5:sgpr_1024 = COPY %3.sub0
|
|
213 %3.sub6:sgpr_1024 = COPY %3.sub0
|
|
214 %3.sub7:sgpr_1024 = COPY %3.sub0
|
|
215 %3.sub8:sgpr_1024 = COPY %3.sub0
|
|
216 %3.sub9:sgpr_1024 = COPY %3.sub0
|
|
217 %3.sub10:sgpr_1024 = COPY %3.sub0
|
|
218 %3.sub11:sgpr_1024 = COPY %3.sub0
|
|
219 %3.sub12:sgpr_1024 = COPY %3.sub0
|
|
220 %3.sub13:sgpr_1024 = COPY %3.sub0
|
|
221 %3.sub14:sgpr_1024 = COPY %3.sub0
|
|
222 %3.sub15:sgpr_1024 = COPY %3.sub0
|
|
223 %3.sub16:sgpr_1024 = COPY %3.sub0
|
|
224 %3.sub17:sgpr_1024 = COPY %3.sub0
|
|
225 %3.sub18:sgpr_1024 = COPY %3.sub0
|
|
226 %3.sub19:sgpr_1024 = COPY %3.sub0
|
|
227 %3.sub20:sgpr_1024 = COPY %3.sub0
|
|
228 %3.sub21:sgpr_1024 = COPY %3.sub0
|
|
229 %3.sub22:sgpr_1024 = COPY %3.sub0
|
|
230 %3.sub23:sgpr_1024 = COPY %3.sub0
|
|
231 %3.sub24:sgpr_1024 = COPY %3.sub0
|
|
232 %3.sub25:sgpr_1024 = COPY %3.sub0
|
|
233 %3.sub26:sgpr_1024 = COPY %3.sub0
|
|
234 %3.sub27:sgpr_1024 = COPY %3.sub0
|
|
235 %3.sub28:sgpr_1024 = COPY %3.sub0
|
|
236 %3.sub29:sgpr_1024 = COPY %3.sub0
|
|
237 %3.sub30:sgpr_1024 = COPY %3.sub0
|
|
238 %3.sub31:sgpr_1024 = COPY %3.sub0
|
|
239
|
|
240 bb.2:
|
236
|
241 S_NOP 0, implicit %0, implicit %1, csr_amdgpu
|
221
|
242 S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc
|
|
243 S_BRANCH %bb.2
|
|
244
|
|
245 ...
|
|
246
|
|
247 ---
|
|
248 name: splitkit_copy_unbundle_reorder
|
|
249 tracksRegLiveness: true
|
|
250 machineFunctionInfo:
|
|
251 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
|
|
252 stackPtrOffsetReg: '$sgpr32'
|
|
253 body: |
|
|
254 bb.0:
|
|
255 ; RA-LABEL: name: splitkit_copy_unbundle_reorder
|
|
256 ; RA: [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF
|
236
|
257 ; RA-NEXT: [[DEF1:%[0-9]+]]:sreg_64 = IMPLICIT_DEF
|
|
258 ; RA-NEXT: [[DEF2:%[0-9]+]]:sgpr_512 = IMPLICIT_DEF
|
|
259 ; RA-NEXT: [[DEF2]].sub4:sgpr_512 = S_MOV_B32 -1
|
|
260 ; RA-NEXT: [[DEF2]].sub5:sgpr_512 = S_MOV_B32 -1
|
|
261 ; RA-NEXT: [[DEF2]].sub10:sgpr_512 = S_MOV_B32 -1
|
|
262 ; RA-NEXT: [[DEF2]].sub11:sgpr_512 = S_MOV_B32 -1
|
|
263 ; RA-NEXT: [[DEF2]].sub7:sgpr_512 = S_MOV_B32 -1
|
|
264 ; RA-NEXT: [[DEF2]].sub8:sgpr_512 = S_MOV_B32 -1
|
|
265 ; RA-NEXT: [[DEF2]].sub13:sgpr_512 = S_MOV_B32 -1
|
|
266 ; RA-NEXT: [[DEF2]].sub14:sgpr_512 = S_MOV_B32 -1
|
|
267 ; RA-NEXT: undef %15.sub4_sub5:sgpr_512 = COPY [[DEF2]].sub4_sub5 {
|
|
268 ; RA-NEXT: internal %15.sub10_sub11:sgpr_512 = COPY [[DEF2]].sub10_sub11
|
|
269 ; RA-NEXT: internal %15.sub7:sgpr_512 = COPY [[DEF2]].sub7
|
|
270 ; RA-NEXT: internal %15.sub8:sgpr_512 = COPY [[DEF2]].sub8
|
|
271 ; RA-NEXT: internal %15.sub13:sgpr_512 = COPY [[DEF2]].sub13
|
|
272 ; RA-NEXT: internal %15.sub14:sgpr_512 = COPY [[DEF2]].sub14
|
|
273 ; RA-NEXT: }
|
|
274 ; RA-NEXT: SI_SPILL_S512_SAVE %15, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s512) into %stack.0, align 4, addrspace 5)
|
|
275 ; RA-NEXT: S_NOP 0, implicit-def $sgpr8, implicit-def $sgpr12, implicit-def $sgpr16, implicit-def $sgpr20, implicit-def $sgpr24, implicit-def $sgpr28, implicit-def $sgpr32, implicit-def $sgpr36, implicit-def $sgpr40, implicit-def $sgpr44, implicit-def $sgpr48, implicit-def $sgpr52, implicit-def $sgpr56, implicit-def $sgpr60, implicit-def $sgpr64, implicit-def $sgpr68, implicit-def $sgpr72, implicit-def $sgpr74, implicit-def $sgpr78, implicit-def $sgpr82, implicit-def $sgpr86, implicit-def $sgpr90, implicit-def $sgpr94, implicit-def $sgpr98
|
|
276 ; RA-NEXT: [[SI_SPILL_S512_RESTORE:%[0-9]+]]:sgpr_512 = SI_SPILL_S512_RESTORE %stack.0, implicit $exec, implicit $sgpr32 :: (load (s512) from %stack.0, align 4, addrspace 5)
|
|
277 ; RA-NEXT: undef %14.sub4_sub5:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub4_sub5 {
|
|
278 ; RA-NEXT: internal %14.sub10_sub11:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub10_sub11
|
|
279 ; RA-NEXT: internal %14.sub7:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub7
|
|
280 ; RA-NEXT: internal %14.sub8:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub8
|
|
281 ; RA-NEXT: internal %14.sub13:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub13
|
|
282 ; RA-NEXT: internal %14.sub14:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub14
|
|
283 ; RA-NEXT: }
|
|
284 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub4, 0 :: (dereferenceable invariant load (s32))
|
|
285 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR1:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub5, 0 :: (dereferenceable invariant load (s32))
|
|
286 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR2:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub10, 0 :: (dereferenceable invariant load (s32))
|
|
287 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR3:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub11, 0 :: (dereferenceable invariant load (s32))
|
|
288 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR4:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub7, 0 :: (dereferenceable invariant load (s32))
|
|
289 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR5:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub8, 0 :: (dereferenceable invariant load (s32))
|
|
290 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR6:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub13, 0 :: (dereferenceable invariant load (s32))
|
|
291 ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR7:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub14, 0 :: (dereferenceable invariant load (s32))
|
|
292 ; RA-NEXT: S_NOP 0, implicit [[DEF]], implicit [[DEF1]], implicit [[S_BUFFER_LOAD_DWORD_SGPR]], implicit [[S_BUFFER_LOAD_DWORD_SGPR1]], implicit [[S_BUFFER_LOAD_DWORD_SGPR2]], implicit [[S_BUFFER_LOAD_DWORD_SGPR3]], implicit [[S_BUFFER_LOAD_DWORD_SGPR4]], implicit [[S_BUFFER_LOAD_DWORD_SGPR5]], implicit [[S_BUFFER_LOAD_DWORD_SGPR6]], implicit [[S_BUFFER_LOAD_DWORD_SGPR7]]
|
221
|
293 ; VR-LABEL: name: splitkit_copy_unbundle_reorder
|
|
294 ; VR: renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27 = IMPLICIT_DEF
|
236
|
295 ; VR-NEXT: renamable $sgpr16 = S_MOV_B32 -1
|
|
296 ; VR-NEXT: renamable $sgpr17 = S_MOV_B32 -1
|
|
297 ; VR-NEXT: renamable $sgpr22 = S_MOV_B32 -1
|
|
298 ; VR-NEXT: renamable $sgpr23 = S_MOV_B32 -1
|
|
299 ; VR-NEXT: renamable $sgpr19 = S_MOV_B32 -1
|
|
300 ; VR-NEXT: renamable $sgpr20 = S_MOV_B32 -1
|
|
301 ; VR-NEXT: renamable $sgpr25 = S_MOV_B32 -1
|
|
302 ; VR-NEXT: renamable $sgpr26 = S_MOV_B32 -1
|
|
303 ; VR-NEXT: SI_SPILL_S512_SAVE killed renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s512) into %stack.0, align 4, addrspace 5)
|
|
304 ; VR-NEXT: S_NOP 0, implicit-def $sgpr8, implicit-def $sgpr12, implicit-def $sgpr16, implicit-def $sgpr20, implicit-def $sgpr24, implicit-def $sgpr28, implicit-def $sgpr32, implicit-def $sgpr36, implicit-def $sgpr40, implicit-def $sgpr44, implicit-def $sgpr48, implicit-def $sgpr52, implicit-def $sgpr56, implicit-def $sgpr60, implicit-def $sgpr64, implicit-def $sgpr68, implicit-def $sgpr72, implicit-def $sgpr74, implicit-def $sgpr78, implicit-def $sgpr82, implicit-def $sgpr86, implicit-def $sgpr90, implicit-def $sgpr94, implicit-def $sgpr98
|
|
305 ; VR-NEXT: renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27 = SI_SPILL_S512_RESTORE %stack.0, implicit $exec, implicit $sgpr32 :: (load (s512) from %stack.0, align 4, addrspace 5)
|
|
306 ; VR-NEXT: renamable $sgpr12_sgpr13 = COPY killed renamable $sgpr16_sgpr17
|
|
307 ; VR-NEXT: renamable $sgpr15 = COPY killed renamable $sgpr19
|
|
308 ; VR-NEXT: renamable $sgpr18_sgpr19 = COPY killed renamable $sgpr22_sgpr23
|
|
309 ; VR-NEXT: renamable $sgpr16 = COPY killed renamable $sgpr20
|
|
310 ; VR-NEXT: renamable $sgpr21 = COPY killed renamable $sgpr25
|
|
311 ; VR-NEXT: renamable $sgpr22 = COPY killed renamable $sgpr26
|
|
312 ; VR-NEXT: renamable $sgpr4_sgpr5_sgpr6_sgpr7 = IMPLICIT_DEF
|
|
313 ; VR-NEXT: renamable $sgpr8 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr12, 0 :: (dereferenceable invariant load (s32))
|
|
314 ; VR-NEXT: renamable $sgpr9 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr13, 0 :: (dereferenceable invariant load (s32))
|
|
315 ; VR-NEXT: renamable $sgpr14 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr15, 0 :: (dereferenceable invariant load (s32))
|
|
316 ; VR-NEXT: renamable $sgpr10_sgpr11 = IMPLICIT_DEF
|
|
317 ; VR-NEXT: renamable $sgpr17 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr22, 0 :: (dereferenceable invariant load (s32))
|
|
318 ; VR-NEXT: renamable $sgpr15 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr16, 0 :: (dereferenceable invariant load (s32))
|
|
319 ; VR-NEXT: renamable $sgpr12 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr18, 0 :: (dereferenceable invariant load (s32))
|
|
320 ; VR-NEXT: renamable $sgpr13 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr19, 0 :: (dereferenceable invariant load (s32))
|
|
321 ; VR-NEXT: renamable $sgpr16 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr21, 0 :: (dereferenceable invariant load (s32))
|
|
322 ; VR-NEXT: S_NOP 0, implicit killed renamable $sgpr4_sgpr5_sgpr6_sgpr7, implicit killed renamable $sgpr10_sgpr11, implicit killed renamable $sgpr8, implicit killed renamable $sgpr9, implicit killed renamable $sgpr12, implicit killed renamable $sgpr13, implicit killed renamable $sgpr14, implicit killed renamable $sgpr15, implicit killed renamable $sgpr16, implicit killed renamable $sgpr17
|
221
|
323 %0:sgpr_128 = IMPLICIT_DEF
|
|
324 %1:sreg_64 = IMPLICIT_DEF
|
|
325 %2:sgpr_512 = IMPLICIT_DEF
|
|
326
|
|
327 %2.sub4:sgpr_512 = S_MOV_B32 -1
|
|
328 %2.sub5:sgpr_512 = S_MOV_B32 -1
|
|
329 %2.sub10:sgpr_512 = S_MOV_B32 -1
|
|
330 %2.sub11:sgpr_512 = S_MOV_B32 -1
|
|
331 %2.sub7:sgpr_512 = S_MOV_B32 -1
|
|
332 %2.sub8:sgpr_512 = S_MOV_B32 -1
|
|
333 %2.sub13:sgpr_512 = S_MOV_B32 -1
|
|
334 %2.sub14:sgpr_512 = S_MOV_B32 -1
|
|
335
|
|
336 ; Clobber registers
|
|
337 S_NOP 0, implicit-def $sgpr8, implicit-def $sgpr12, implicit-def $sgpr16, implicit-def $sgpr20, implicit-def $sgpr24, implicit-def $sgpr28, implicit-def $sgpr32, implicit-def $sgpr36, implicit-def $sgpr40, implicit-def $sgpr44, implicit-def $sgpr48, implicit-def $sgpr52, implicit-def $sgpr56, implicit-def $sgpr60, implicit-def $sgpr64, implicit-def $sgpr68, implicit-def $sgpr72, implicit-def $sgpr74, implicit-def $sgpr78, implicit-def $sgpr82, implicit-def $sgpr86, implicit-def $sgpr90, implicit-def $sgpr94, implicit-def $sgpr98
|
|
338
|
223
|
339 %5:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub4:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
340 %6:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub5:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
341 %7:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub10:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
342 %8:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub11:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
343 %9:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub7:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
344 %10:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub8:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
345 %11:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub13:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
|
346 %12:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub14:sgpr_512, 0 :: (dereferenceable invariant load (s32))
|
221
|
347
|
|
348 S_NOP 0, implicit %0, implicit %1, implicit %5, implicit %6, implicit %7, implicit %8, implicit %9, implicit %10, implicit %11, implicit %12
|
|
349
|
|
350 ...
|