1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=MUBUFW64 %s
3 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=MUBUFW64 %s
4 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=MUBUFW64 %s
5 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=MUBUFW64 %s
6 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=MUBUFW32 %s
8 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=FLATSCRW64 %s
9 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=FLATSCRW32 %s
10 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -verify-machineinstrs -run-pass=prologepilog %s -o - | FileCheck -check-prefix=FLATSCRW32 %s
13 name: s_add_i32__inline_imm__fi_offset0
14 tracksRegLiveness: true
16 - { id: 0, size: 32, alignment: 16 }
18 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
19 frameOffsetReg: '$sgpr33'
20 stackPtrOffsetReg: '$sgpr32'
23 ; MUBUFW64-LABEL: name: s_add_i32__inline_imm__fi_offset0
24 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
25 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 12, $sgpr4, implicit-def dead $scc
26 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
28 ; MUBUFW32-LABEL: name: s_add_i32__inline_imm__fi_offset0
29 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
30 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 12, $sgpr4, implicit-def dead $scc
31 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
33 ; FLATSCRW64-LABEL: name: s_add_i32__inline_imm__fi_offset0
34 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 12, $sgpr32, implicit-def dead $scc
35 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
37 ; FLATSCRW32-LABEL: name: s_add_i32__inline_imm__fi_offset0
38 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 12, $sgpr32, implicit-def dead $scc
39 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
40 renamable $sgpr7 = S_ADD_I32 12, %stack.0, implicit-def dead $scc
41 SI_RETURN implicit $sgpr7
46 name: s_add_i32__fi_offset0__inline_imm
47 tracksRegLiveness: true
49 - { id: 0, size: 32, alignment: 16 }
51 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
52 frameOffsetReg: '$sgpr33'
53 stackPtrOffsetReg: '$sgpr32'
56 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset0__inline_imm
57 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
58 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 12, implicit-def dead $scc
59 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
61 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset0__inline_imm
62 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
63 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 12, implicit-def dead $scc
64 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
66 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset0__inline_imm
67 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 $sgpr32, 12, implicit-def dead $scc
68 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
70 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset0__inline_imm
71 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 $sgpr32, 12, implicit-def dead $scc
72 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
73 renamable $sgpr7 = S_ADD_I32 %stack.0, 12, implicit-def dead $scc
74 SI_RETURN implicit $sgpr7
79 name: s_add_i32__inline_imm___fi_offset_inline_imm
80 tracksRegLiveness: true
82 - { id: 0, size: 16, alignment: 16 }
83 - { id: 1, size: 24, alignment: 4 }
85 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
86 frameOffsetReg: '$sgpr33'
87 stackPtrOffsetReg: '$sgpr32'
90 ; MUBUFW64-LABEL: name: s_add_i32__inline_imm___fi_offset_inline_imm
91 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
92 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 28, $sgpr4, implicit-def $scc
93 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
95 ; MUBUFW32-LABEL: name: s_add_i32__inline_imm___fi_offset_inline_imm
96 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
97 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 28, $sgpr4, implicit-def $scc
98 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
100 ; FLATSCRW64-LABEL: name: s_add_i32__inline_imm___fi_offset_inline_imm
101 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 28, $sgpr32, implicit-def $scc
102 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
104 ; FLATSCRW32-LABEL: name: s_add_i32__inline_imm___fi_offset_inline_imm
105 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 28, $sgpr32, implicit-def $scc
106 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
107 renamable $sgpr7 = S_ADD_I32 12, %stack.1, implicit-def $scc
108 SI_RETURN implicit $sgpr7
113 name: s_add_i32__literal__fi_offset0
114 tracksRegLiveness: true
116 - { id: 0, size: 96, alignment: 16 }
118 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
119 frameOffsetReg: '$sgpr33'
120 stackPtrOffsetReg: '$sgpr32'
123 ; MUBUFW64-LABEL: name: s_add_i32__literal__fi_offset0
124 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
125 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 68, $sgpr4, implicit-def dead $scc
126 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
128 ; MUBUFW32-LABEL: name: s_add_i32__literal__fi_offset0
129 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
130 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 68, $sgpr4, implicit-def dead $scc
131 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
133 ; FLATSCRW64-LABEL: name: s_add_i32__literal__fi_offset0
134 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 68, $sgpr32, implicit-def dead $scc
135 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
137 ; FLATSCRW32-LABEL: name: s_add_i32__literal__fi_offset0
138 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 68, $sgpr32, implicit-def dead $scc
139 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
140 renamable $sgpr7 = S_ADD_I32 68, %stack.0, implicit-def dead $scc
141 SI_RETURN implicit $sgpr7
146 name: s_add_i32__fi_offset0__literal
147 tracksRegLiveness: true
149 - { id: 0, size: 96, alignment: 16 }
151 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
152 frameOffsetReg: '$sgpr33'
153 stackPtrOffsetReg: '$sgpr32'
156 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset0__literal
157 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
158 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 68, implicit-def $scc
159 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
161 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset0__literal
162 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
163 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 68, implicit-def $scc
164 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
166 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset0__literal
167 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 $sgpr32, 68, implicit-def $scc
168 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
170 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset0__literal
171 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 $sgpr32, 68, implicit-def $scc
172 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
173 renamable $sgpr7 = S_ADD_I32 %stack.0, 68, implicit-def $scc
174 SI_RETURN implicit $sgpr7
179 name: s_add_i32__literal__fi_offset96
180 tracksRegLiveness: true
182 - { id: 0, size: 96, alignment: 16 }
183 - { id: 1, size: 24, alignment: 4 }
185 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
186 frameOffsetReg: '$sgpr33'
187 stackPtrOffsetReg: '$sgpr32'
190 ; MUBUFW64-LABEL: name: s_add_i32__literal__fi_offset96
191 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
192 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 164, $sgpr4, implicit-def $scc
193 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
195 ; MUBUFW32-LABEL: name: s_add_i32__literal__fi_offset96
196 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
197 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 164, $sgpr4, implicit-def $scc
198 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
200 ; FLATSCRW64-LABEL: name: s_add_i32__literal__fi_offset96
201 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 164, $sgpr32, implicit-def $scc
202 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
204 ; FLATSCRW32-LABEL: name: s_add_i32__literal__fi_offset96
205 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 164, $sgpr32, implicit-def $scc
206 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
207 renamable $sgpr7 = S_ADD_I32 68, %stack.1, implicit-def $scc
208 SI_RETURN implicit $sgpr7, implicit $scc
213 name: s_add_i32____fi_offset96__literal
214 tracksRegLiveness: true
216 - { id: 0, size: 96, alignment: 16 }
217 - { id: 1, size: 128, alignment: 4 }
219 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
220 frameOffsetReg: '$sgpr33'
221 stackPtrOffsetReg: '$sgpr32'
224 ; MUBUFW64-LABEL: name: s_add_i32____fi_offset96__literal
225 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
226 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 164, implicit-def $scc
227 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
229 ; MUBUFW32-LABEL: name: s_add_i32____fi_offset96__literal
230 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
231 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 164, implicit-def $scc
232 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
234 ; FLATSCRW64-LABEL: name: s_add_i32____fi_offset96__literal
235 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 $sgpr32, 164, implicit-def $scc
236 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
238 ; FLATSCRW32-LABEL: name: s_add_i32____fi_offset96__literal
239 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 $sgpr32, 164, implicit-def $scc
240 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
241 renamable $sgpr7 = S_ADD_I32 %stack.1, 68, implicit-def $scc
242 SI_RETURN implicit $sgpr7, implicit $scc
247 name: s_add_i32__sgpr__fi_offset0
248 tracksRegLiveness: true
250 - { id: 0, size: 128, alignment: 16 }
252 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
253 frameOffsetReg: '$sgpr33'
254 stackPtrOffsetReg: '$sgpr32'
258 ; MUBUFW64-LABEL: name: s_add_i32__sgpr__fi_offset0
259 ; MUBUFW64: liveins: $sgpr8
260 ; MUBUFW64-NEXT: {{ $}}
261 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
262 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
263 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
264 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
266 ; MUBUFW32-LABEL: name: s_add_i32__sgpr__fi_offset0
267 ; MUBUFW32: liveins: $sgpr8
268 ; MUBUFW32-NEXT: {{ $}}
269 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
270 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
271 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
272 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
274 ; FLATSCRW64-LABEL: name: s_add_i32__sgpr__fi_offset0
275 ; FLATSCRW64: liveins: $sgpr8
276 ; FLATSCRW64-NEXT: {{ $}}
277 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
278 ; FLATSCRW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
279 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
281 ; FLATSCRW32-LABEL: name: s_add_i32__sgpr__fi_offset0
282 ; FLATSCRW32: liveins: $sgpr8
283 ; FLATSCRW32-NEXT: {{ $}}
284 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
285 ; FLATSCRW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
286 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
287 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
288 SI_RETURN implicit $sgpr7
293 name: s_add_i32__fi_offset0__sgpr
294 tracksRegLiveness: true
296 - { id: 0, size: 128, alignment: 16 }
298 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
299 frameOffsetReg: '$sgpr33'
300 stackPtrOffsetReg: '$sgpr32'
304 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset0__sgpr
305 ; MUBUFW64: liveins: $sgpr8
306 ; MUBUFW64-NEXT: {{ $}}
307 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
308 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
309 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
310 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
312 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset0__sgpr
313 ; MUBUFW32: liveins: $sgpr8
314 ; MUBUFW32-NEXT: {{ $}}
315 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
316 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
317 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
318 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
320 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset0__sgpr
321 ; FLATSCRW64: liveins: $sgpr8
322 ; FLATSCRW64-NEXT: {{ $}}
323 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
324 ; FLATSCRW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
325 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
327 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset0__sgpr
328 ; FLATSCRW32: liveins: $sgpr8
329 ; FLATSCRW32-NEXT: {{ $}}
330 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
331 ; FLATSCRW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
332 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
333 renamable $sgpr7 = S_ADD_I32 %stack.0, $sgpr8, implicit-def dead $scc
334 SI_RETURN implicit $sgpr7
339 name: s_add_i32__sgpr__fi_literal_offset
340 tracksRegLiveness: true
342 - { id: 0, size: 80, alignment: 16 }
343 - { id: 1, size: 48, alignment: 4 }
345 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
346 frameOffsetReg: '$sgpr33'
347 stackPtrOffsetReg: '$sgpr32'
351 ; MUBUFW64-LABEL: name: s_add_i32__sgpr__fi_literal_offset
352 ; MUBUFW64: liveins: $sgpr8
353 ; MUBUFW64-NEXT: {{ $}}
354 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
355 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
356 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 80, implicit-def dead $scc
357 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
359 ; MUBUFW32-LABEL: name: s_add_i32__sgpr__fi_literal_offset
360 ; MUBUFW32: liveins: $sgpr8
361 ; MUBUFW32-NEXT: {{ $}}
362 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
363 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
364 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 80, implicit-def dead $scc
365 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
367 ; FLATSCRW64-LABEL: name: s_add_i32__sgpr__fi_literal_offset
368 ; FLATSCRW64: liveins: $sgpr8
369 ; FLATSCRW64-NEXT: {{ $}}
370 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
371 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 80, implicit-def dead $scc
372 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
374 ; FLATSCRW32-LABEL: name: s_add_i32__sgpr__fi_literal_offset
375 ; FLATSCRW32: liveins: $sgpr8
376 ; FLATSCRW32-NEXT: {{ $}}
377 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
378 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 80, implicit-def dead $scc
379 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
380 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
381 SI_RETURN implicit $sgpr7
386 name: s_add_i32__fi_literal_offset__sgpr
387 tracksRegLiveness: true
389 - { id: 0, size: 80, alignment: 16 }
390 - { id: 1, size: 48, alignment: 4 }
392 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
393 frameOffsetReg: '$sgpr33'
394 stackPtrOffsetReg: '$sgpr32'
398 ; MUBUFW64-LABEL: name: s_add_i32__fi_literal_offset__sgpr
399 ; MUBUFW64: liveins: $sgpr8
400 ; MUBUFW64-NEXT: {{ $}}
401 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
402 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def $scc
403 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 80, killed renamable $sgpr7, implicit-def $scc
404 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
406 ; MUBUFW32-LABEL: name: s_add_i32__fi_literal_offset__sgpr
407 ; MUBUFW32: liveins: $sgpr8
408 ; MUBUFW32-NEXT: {{ $}}
409 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
410 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def $scc
411 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 80, killed renamable $sgpr7, implicit-def $scc
412 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
414 ; FLATSCRW64-LABEL: name: s_add_i32__fi_literal_offset__sgpr
415 ; FLATSCRW64: liveins: $sgpr8
416 ; FLATSCRW64-NEXT: {{ $}}
417 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def $scc
418 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 80, killed renamable $sgpr7, implicit-def $scc
419 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
421 ; FLATSCRW32-LABEL: name: s_add_i32__fi_literal_offset__sgpr
422 ; FLATSCRW32: liveins: $sgpr8
423 ; FLATSCRW32-NEXT: {{ $}}
424 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def $scc
425 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 80, killed renamable $sgpr7, implicit-def $scc
426 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
427 renamable $sgpr7 = S_ADD_I32 %stack.1, $sgpr8, implicit-def $scc
428 SI_RETURN implicit $sgpr7, implicit $scc
433 name: s_add_i32__kernel__literal__fi_offset96__offset_literal
434 tracksRegLiveness: true
436 - { id: 0, size: 96, alignment: 16 }
437 - { id: 1, size: 128, alignment: 4 }
439 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
440 frameOffsetReg: '$sgpr33'
441 stackPtrOffsetReg: '$sgpr32'
442 isEntryFunction: true
445 ; MUBUFW64-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal
446 ; MUBUFW64: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
447 ; MUBUFW64-NEXT: {{ $}}
448 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
449 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
450 ; MUBUFW64-NEXT: renamable $sgpr7 = S_MOV_B32 164
451 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
453 ; MUBUFW32-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal
454 ; MUBUFW32: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
455 ; MUBUFW32-NEXT: {{ $}}
456 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
457 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
458 ; MUBUFW32-NEXT: renamable $sgpr7 = S_MOV_B32 164
459 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
461 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal
462 ; FLATSCRW64: renamable $sgpr7 = S_MOV_B32 164
463 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
465 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal
466 ; FLATSCRW32: renamable $sgpr7 = S_MOV_B32 164
467 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
468 renamable $sgpr7 = S_ADD_I32 68, %stack.1, implicit-def dead $scc
469 SI_RETURN implicit $sgpr7
473 name: s_add_i32__kernel__literal__fi_offset96__offset_literal_live_scc
474 tracksRegLiveness: true
476 - { id: 0, size: 96, alignment: 16 }
477 - { id: 1, size: 128, alignment: 4 }
479 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
480 frameOffsetReg: '$sgpr33'
481 stackPtrOffsetReg: '$sgpr32'
482 isEntryFunction: true
485 ; MUBUFW64-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal_live_scc
486 ; MUBUFW64: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
487 ; MUBUFW64-NEXT: {{ $}}
488 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
489 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
490 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 164, 0, implicit-def $scc
491 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
493 ; MUBUFW32-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal_live_scc
494 ; MUBUFW32: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
495 ; MUBUFW32-NEXT: {{ $}}
496 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
497 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
498 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 164, 0, implicit-def $scc
499 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
501 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal_live_scc
502 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 164, 0, implicit-def $scc
503 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
505 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__literal__fi_offset96__offset_literal_live_scc
506 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 164, 0, implicit-def $scc
507 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
508 renamable $sgpr7 = S_ADD_I32 68, %stack.1, implicit-def $scc
509 SI_RETURN implicit $sgpr7, implicit $scc
513 name: s_add_i32__kernel__fi_offset96__offset_literal__literal
514 tracksRegLiveness: true
516 - { id: 0, size: 96, alignment: 16 }
517 - { id: 1, size: 128, alignment: 4 }
519 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
520 frameOffsetReg: '$sgpr33'
521 stackPtrOffsetReg: '$sgpr32'
522 isEntryFunction: true
525 ; MUBUFW64-LABEL: name: s_add_i32__kernel__fi_offset96__offset_literal__literal
526 ; MUBUFW64: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
527 ; MUBUFW64-NEXT: {{ $}}
528 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
529 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
530 ; MUBUFW64-NEXT: renamable $sgpr7 = S_MOV_B32 164
531 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
533 ; MUBUFW32-LABEL: name: s_add_i32__kernel__fi_offset96__offset_literal__literal
534 ; MUBUFW32: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
535 ; MUBUFW32-NEXT: {{ $}}
536 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
537 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
538 ; MUBUFW32-NEXT: renamable $sgpr7 = S_MOV_B32 164
539 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
541 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__fi_offset96__offset_literal__literal
542 ; FLATSCRW64: renamable $sgpr7 = S_MOV_B32 164
543 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
545 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__fi_offset96__offset_literal__literal
546 ; FLATSCRW32: renamable $sgpr7 = S_MOV_B32 164
547 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
548 renamable $sgpr7 = S_ADD_I32 %stack.1, 68, implicit-def dead $scc
549 SI_RETURN implicit $sgpr7
554 name: s_add_i32__kernel__sgpr__fi_literal_offset
555 tracksRegLiveness: true
557 - { id: 0, size: 96, alignment: 16 }
558 - { id: 1, size: 64, alignment: 4 }
560 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
561 frameOffsetReg: '$sgpr33'
562 stackPtrOffsetReg: '$sgpr32'
563 isEntryFunction: true
567 ; MUBUFW64-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset
568 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
569 ; MUBUFW64-NEXT: {{ $}}
570 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
571 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
572 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def dead $scc
573 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
575 ; MUBUFW32-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset
576 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
577 ; MUBUFW32-NEXT: {{ $}}
578 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
579 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
580 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def dead $scc
581 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
583 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset
584 ; FLATSCRW64: liveins: $sgpr8
585 ; FLATSCRW64-NEXT: {{ $}}
586 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def dead $scc
587 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
589 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset
590 ; FLATSCRW32: liveins: $sgpr8
591 ; FLATSCRW32-NEXT: {{ $}}
592 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def dead $scc
593 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
594 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
595 SI_RETURN implicit $sgpr7
600 name: s_add_i32__kernel__fi_literal_offset__sgpr
601 tracksRegLiveness: true
603 - { id: 0, size: 96, alignment: 16 }
604 - { id: 1, size: 64, alignment: 4 }
606 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
607 frameOffsetReg: '$sgpr33'
608 stackPtrOffsetReg: '$sgpr32'
609 isEntryFunction: true
613 ; MUBUFW64-LABEL: name: s_add_i32__kernel__fi_literal_offset__sgpr
614 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
615 ; MUBUFW64-NEXT: {{ $}}
616 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
617 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
618 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 96, $sgpr8, implicit-def dead $scc
619 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
621 ; MUBUFW32-LABEL: name: s_add_i32__kernel__fi_literal_offset__sgpr
622 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
623 ; MUBUFW32-NEXT: {{ $}}
624 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
625 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
626 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 96, $sgpr8, implicit-def dead $scc
627 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
629 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__fi_literal_offset__sgpr
630 ; FLATSCRW64: liveins: $sgpr8
631 ; FLATSCRW64-NEXT: {{ $}}
632 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 96, $sgpr8, implicit-def dead $scc
633 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
635 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__fi_literal_offset__sgpr
636 ; FLATSCRW32: liveins: $sgpr8
637 ; FLATSCRW32-NEXT: {{ $}}
638 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 96, $sgpr8, implicit-def dead $scc
639 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
640 renamable $sgpr7 = S_ADD_I32 %stack.1, $sgpr8, implicit-def dead $scc
641 SI_RETURN implicit $sgpr7
646 name: s_add_i32__kernel__sgpr__fi_offset0__live_scc
647 tracksRegLiveness: true
649 - { id: 0, size: 96, alignment: 16 }
651 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
652 frameOffsetReg: '$sgpr33'
653 stackPtrOffsetReg: '$sgpr32'
654 isEntryFunction: true
658 ; MUBUFW64-LABEL: name: s_add_i32__kernel__sgpr__fi_offset0__live_scc
659 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
660 ; MUBUFW64-NEXT: {{ $}}
661 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
662 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
663 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 0, implicit-def $scc
664 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
666 ; MUBUFW32-LABEL: name: s_add_i32__kernel__sgpr__fi_offset0__live_scc
667 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
668 ; MUBUFW32-NEXT: {{ $}}
669 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
670 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
671 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 0, implicit-def $scc
672 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
674 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__sgpr__fi_offset0__live_scc
675 ; FLATSCRW64: liveins: $sgpr8
676 ; FLATSCRW64-NEXT: {{ $}}
677 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 0, implicit-def $scc
678 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
680 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__sgpr__fi_offset0__live_scc
681 ; FLATSCRW32: liveins: $sgpr8
682 ; FLATSCRW32-NEXT: {{ $}}
683 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 0, implicit-def $scc
684 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
685 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.0, implicit-def $scc
686 SI_RETURN implicit $sgpr7, implicit $scc
691 name: s_add_i32__sgpr__fi_offset0__live_scc
692 tracksRegLiveness: true
694 - { id: 0, size: 96, alignment: 16 }
696 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
697 frameOffsetReg: '$sgpr33'
698 stackPtrOffsetReg: '$sgpr32'
702 ; MUBUFW64-LABEL: name: s_add_i32__sgpr__fi_offset0__live_scc
703 ; MUBUFW64: liveins: $sgpr8
704 ; MUBUFW64-NEXT: {{ $}}
705 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
706 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def $scc
707 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 0, implicit-def $scc
708 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
710 ; MUBUFW32-LABEL: name: s_add_i32__sgpr__fi_offset0__live_scc
711 ; MUBUFW32: liveins: $sgpr8
712 ; MUBUFW32-NEXT: {{ $}}
713 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
714 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def $scc
715 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 0, implicit-def $scc
716 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
718 ; FLATSCRW64-LABEL: name: s_add_i32__sgpr__fi_offset0__live_scc
719 ; FLATSCRW64: liveins: $sgpr8
720 ; FLATSCRW64-NEXT: {{ $}}
721 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def $scc
722 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 0, implicit-def $scc
723 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
725 ; FLATSCRW32-LABEL: name: s_add_i32__sgpr__fi_offset0__live_scc
726 ; FLATSCRW32: liveins: $sgpr8
727 ; FLATSCRW32-NEXT: {{ $}}
728 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def $scc
729 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 0, implicit-def $scc
730 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
731 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.0, implicit-def $scc
732 SI_RETURN implicit $sgpr7, implicit $scc
737 name: s_add_i32__kernel__sgpr__fi_literal_offset__live_scc
738 tracksRegLiveness: true
740 - { id: 0, size: 96, alignment: 16 }
741 - { id: 1, size: 64, alignment: 4 }
743 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
744 frameOffsetReg: '$sgpr33'
745 stackPtrOffsetReg: '$sgpr32'
746 isEntryFunction: true
750 ; MUBUFW64-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset__live_scc
751 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
752 ; MUBUFW64-NEXT: {{ $}}
753 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
754 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
755 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def $scc
756 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
758 ; MUBUFW32-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset__live_scc
759 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
760 ; MUBUFW32-NEXT: {{ $}}
761 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
762 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
763 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def $scc
764 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
766 ; FLATSCRW64-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset__live_scc
767 ; FLATSCRW64: liveins: $sgpr8
768 ; FLATSCRW64-NEXT: {{ $}}
769 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def $scc
770 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
772 ; FLATSCRW32-LABEL: name: s_add_i32__kernel__sgpr__fi_literal_offset__live_scc
773 ; FLATSCRW32: liveins: $sgpr8
774 ; FLATSCRW32-NEXT: {{ $}}
775 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr8, 96, implicit-def $scc
776 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
777 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.1, implicit-def $scc
778 SI_RETURN implicit $sgpr7, implicit $scc
783 name: s_add_i32__sgpr__fi_literal_offset__live_scc
784 tracksRegLiveness: true
786 - { id: 0, size: 96, alignment: 16 }
787 - { id: 1, size: 64, alignment: 4 }
789 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
790 frameOffsetReg: '$sgpr33'
791 stackPtrOffsetReg: '$sgpr32'
795 ; MUBUFW64-LABEL: name: s_add_i32__sgpr__fi_literal_offset__live_scc
796 ; MUBUFW64: liveins: $sgpr8
797 ; MUBUFW64-NEXT: {{ $}}
798 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
799 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def $scc
800 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 96, implicit-def $scc
801 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
803 ; MUBUFW32-LABEL: name: s_add_i32__sgpr__fi_literal_offset__live_scc
804 ; MUBUFW32: liveins: $sgpr8
805 ; MUBUFW32-NEXT: {{ $}}
806 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
807 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def $scc
808 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 96, implicit-def $scc
809 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
811 ; FLATSCRW64-LABEL: name: s_add_i32__sgpr__fi_literal_offset__live_scc
812 ; FLATSCRW64: liveins: $sgpr8
813 ; FLATSCRW64-NEXT: {{ $}}
814 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def $scc
815 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 96, implicit-def $scc
816 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
818 ; FLATSCRW32-LABEL: name: s_add_i32__sgpr__fi_literal_offset__live_scc
819 ; FLATSCRW32: liveins: $sgpr8
820 ; FLATSCRW32-NEXT: {{ $}}
821 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def $scc
822 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed renamable $sgpr7, 96, implicit-def $scc
823 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
824 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.1, implicit-def $scc
825 SI_RETURN implicit $sgpr7, implicit $scc
829 # Resulting offset is inline immediate
831 name: s_add_i32__inlineimm__fi_offset_32__total_offset_inlineimm
832 tracksRegLiveness: true
834 - { id: 0, size: 32, alignment: 16 }
835 - { id: 1, size: 16, alignment: 4 }
837 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
838 frameOffsetReg: '$sgpr33'
839 stackPtrOffsetReg: '$sgpr32'
842 ; MUBUFW64-LABEL: name: s_add_i32__inlineimm__fi_offset_32__total_offset_inlineimm
843 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
844 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 40, $sgpr4, implicit-def $scc
845 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
847 ; MUBUFW32-LABEL: name: s_add_i32__inlineimm__fi_offset_32__total_offset_inlineimm
848 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
849 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 40, $sgpr4, implicit-def $scc
850 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
852 ; FLATSCRW64-LABEL: name: s_add_i32__inlineimm__fi_offset_32__total_offset_inlineimm
853 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 40, $sgpr32, implicit-def $scc
854 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
856 ; FLATSCRW32-LABEL: name: s_add_i32__inlineimm__fi_offset_32__total_offset_inlineimm
857 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 40, $sgpr32, implicit-def $scc
858 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
859 renamable $sgpr7 = S_ADD_I32 8, %stack.1, implicit-def $scc
860 SI_RETURN implicit $sgpr7, implicit $scc
865 name: s_add_i32__fi_offset_32__inlineimm__total_offset_inlineimm
866 tracksRegLiveness: true
868 - { id: 0, size: 32, alignment: 16 }
869 - { id: 1, size: 16, alignment: 4 }
871 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
872 frameOffsetReg: '$sgpr33'
873 stackPtrOffsetReg: '$sgpr32'
876 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset_32__inlineimm__total_offset_inlineimm
877 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
878 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 40, implicit-def $scc
879 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
881 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset_32__inlineimm__total_offset_inlineimm
882 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
883 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 $sgpr4, 40, implicit-def $scc
884 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
886 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset_32__inlineimm__total_offset_inlineimm
887 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 $sgpr32, 40, implicit-def $scc
888 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
890 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset_32__inlineimm__total_offset_inlineimm
891 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 $sgpr32, 40, implicit-def $scc
892 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
893 renamable $sgpr7 = S_ADD_I32 %stack.1, 8, implicit-def $scc
894 SI_RETURN implicit $sgpr7, implicit $scc
899 name: s_add_i32__kernel_inlineimm__fi_offset_32__total_offset_inlineimm
900 tracksRegLiveness: true
902 - { id: 0, size: 32, alignment: 16 }
903 - { id: 1, size: 16, alignment: 4 }
905 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
906 frameOffsetReg: '$sgpr33'
907 stackPtrOffsetReg: '$sgpr32'
908 isEntryFunction: true
911 ; MUBUFW64-LABEL: name: s_add_i32__kernel_inlineimm__fi_offset_32__total_offset_inlineimm
912 ; MUBUFW64: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
913 ; MUBUFW64-NEXT: {{ $}}
914 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
915 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
916 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 40, 0, implicit-def $scc
917 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
919 ; MUBUFW32-LABEL: name: s_add_i32__kernel_inlineimm__fi_offset_32__total_offset_inlineimm
920 ; MUBUFW32: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
921 ; MUBUFW32-NEXT: {{ $}}
922 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
923 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
924 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 40, 0, implicit-def $scc
925 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
927 ; FLATSCRW64-LABEL: name: s_add_i32__kernel_inlineimm__fi_offset_32__total_offset_inlineimm
928 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 40, 0, implicit-def $scc
929 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
931 ; FLATSCRW32-LABEL: name: s_add_i32__kernel_inlineimm__fi_offset_32__total_offset_inlineimm
932 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 40, 0, implicit-def $scc
933 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
934 renamable $sgpr7 = S_ADD_I32 8, %stack.1, implicit-def $scc
935 SI_RETURN implicit $sgpr7, implicit $scc
940 name: s_add_i32__kernel_fi_offset_32__inlineimm__total_offset_inlineimm
941 tracksRegLiveness: true
943 - { id: 0, size: 32, alignment: 16 }
944 - { id: 1, size: 16, alignment: 4 }
946 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
947 frameOffsetReg: '$sgpr33'
948 stackPtrOffsetReg: '$sgpr32'
949 isEntryFunction: true
952 ; MUBUFW64-LABEL: name: s_add_i32__kernel_fi_offset_32__inlineimm__total_offset_inlineimm
953 ; MUBUFW64: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
954 ; MUBUFW64-NEXT: {{ $}}
955 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
956 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
957 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 0, 40, implicit-def $scc
958 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
960 ; MUBUFW32-LABEL: name: s_add_i32__kernel_fi_offset_32__inlineimm__total_offset_inlineimm
961 ; MUBUFW32: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
962 ; MUBUFW32-NEXT: {{ $}}
963 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
964 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
965 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 0, 40, implicit-def $scc
966 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
968 ; FLATSCRW64-LABEL: name: s_add_i32__kernel_fi_offset_32__inlineimm__total_offset_inlineimm
969 ; FLATSCRW64: renamable $sgpr7 = S_ADD_I32 0, 40, implicit-def $scc
970 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
972 ; FLATSCRW32-LABEL: name: s_add_i32__kernel_fi_offset_32__inlineimm__total_offset_inlineimm
973 ; FLATSCRW32: renamable $sgpr7 = S_ADD_I32 0, 40, implicit-def $scc
974 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $scc
975 renamable $sgpr7 = S_ADD_I32 %stack.1, 8, implicit-def $scc
976 SI_RETURN implicit $sgpr7, implicit $scc
981 name: s_add_i32__0__fi_offset0
982 tracksRegLiveness: true
984 - { id: 0, size: 32, alignment: 16 }
986 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
987 frameOffsetReg: '$sgpr33'
988 stackPtrOffsetReg: '$sgpr32'
991 ; MUBUFW64-LABEL: name: s_add_i32__0__fi_offset0
992 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
993 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY $sgpr4
994 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
996 ; MUBUFW32-LABEL: name: s_add_i32__0__fi_offset0
997 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
998 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY $sgpr4
999 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
1001 ; FLATSCRW64-LABEL: name: s_add_i32__0__fi_offset0
1002 ; FLATSCRW64: renamable $sgpr7 = COPY $sgpr32
1003 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
1005 ; FLATSCRW32-LABEL: name: s_add_i32__0__fi_offset0
1006 ; FLATSCRW32: renamable $sgpr7 = COPY $sgpr32
1007 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
1008 renamable $sgpr7 = S_ADD_I32 0, %stack.0, implicit-def dead $scc
1009 SI_RETURN implicit $sgpr7
1014 name: s_add_i32__fi_offset0__0
1015 tracksRegLiveness: true
1017 - { id: 0, size: 32, alignment: 16 }
1018 machineFunctionInfo:
1019 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1020 frameOffsetReg: '$sgpr33'
1021 stackPtrOffsetReg: '$sgpr32'
1024 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset0__0
1025 ; MUBUFW64: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1026 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY $sgpr4
1027 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
1029 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset0__0
1030 ; MUBUFW32: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1031 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY $sgpr4
1032 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
1034 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset0__0
1035 ; FLATSCRW64: renamable $sgpr7 = COPY $sgpr32
1036 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
1038 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset0__0
1039 ; FLATSCRW32: renamable $sgpr7 = COPY $sgpr32
1040 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
1041 renamable $sgpr7 = S_ADD_I32 %stack.0, 0, implicit-def dead $scc
1042 SI_RETURN implicit $sgpr7
1047 name: s_add_i32__same_sgpr__fi_offset0
1048 tracksRegLiveness: true
1050 - { id: 0, size: 32, alignment: 16 }
1051 machineFunctionInfo:
1052 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1053 frameOffsetReg: '$sgpr33'
1054 stackPtrOffsetReg: '$sgpr32'
1058 ; MUBUFW64-LABEL: name: s_add_i32__same_sgpr__fi_offset0
1059 ; MUBUFW64: liveins: $sgpr7
1060 ; MUBUFW64-NEXT: {{ $}}
1061 ; MUBUFW64-NEXT: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1062 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr4, $sgpr7, implicit-def dead $scc
1063 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1064 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
1066 ; MUBUFW32-LABEL: name: s_add_i32__same_sgpr__fi_offset0
1067 ; MUBUFW32: liveins: $sgpr7
1068 ; MUBUFW32-NEXT: {{ $}}
1069 ; MUBUFW32-NEXT: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1070 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr4, $sgpr7, implicit-def dead $scc
1071 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1072 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
1074 ; FLATSCRW64-LABEL: name: s_add_i32__same_sgpr__fi_offset0
1075 ; FLATSCRW64: liveins: $sgpr7
1076 ; FLATSCRW64-NEXT: {{ $}}
1077 ; FLATSCRW64-NEXT: renamable $sgpr4 = S_ADD_I32 killed $sgpr32, $sgpr7, implicit-def dead $scc
1078 ; FLATSCRW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr4
1079 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
1081 ; FLATSCRW32-LABEL: name: s_add_i32__same_sgpr__fi_offset0
1082 ; FLATSCRW32: liveins: $sgpr7
1083 ; FLATSCRW32-NEXT: {{ $}}
1084 ; FLATSCRW32-NEXT: renamable $sgpr4 = S_ADD_I32 killed $sgpr32, $sgpr7, implicit-def dead $scc
1085 ; FLATSCRW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr4
1086 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
1087 renamable $sgpr7 = S_ADD_I32 $sgpr7, %stack.0, implicit-def dead $scc
1088 SI_RETURN implicit $sgpr7
1093 name: s_add_i32__different_sgpr__fi_offset0
1094 tracksRegLiveness: true
1096 - { id: 0, size: 32, alignment: 16 }
1097 machineFunctionInfo:
1098 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1099 frameOffsetReg: '$sgpr33'
1100 stackPtrOffsetReg: '$sgpr32'
1104 ; MUBUFW64-LABEL: name: s_add_i32__different_sgpr__fi_offset0
1105 ; MUBUFW64: liveins: $sgpr8
1106 ; MUBUFW64-NEXT: {{ $}}
1107 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1108 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
1109 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1110 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7
1112 ; MUBUFW32-LABEL: name: s_add_i32__different_sgpr__fi_offset0
1113 ; MUBUFW32: liveins: $sgpr8
1114 ; MUBUFW32-NEXT: {{ $}}
1115 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1116 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
1117 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1118 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7
1120 ; FLATSCRW64-LABEL: name: s_add_i32__different_sgpr__fi_offset0
1121 ; FLATSCRW64: liveins: $sgpr8
1122 ; FLATSCRW64-NEXT: {{ $}}
1123 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1124 ; FLATSCRW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1125 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7
1127 ; FLATSCRW32-LABEL: name: s_add_i32__different_sgpr__fi_offset0
1128 ; FLATSCRW32: liveins: $sgpr8
1129 ; FLATSCRW32-NEXT: {{ $}}
1130 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1131 ; FLATSCRW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1132 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7
1133 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1134 SI_RETURN implicit $sgpr7
1139 name: s_add_i32__different_sgpr__fi_offset0_live_after
1140 tracksRegLiveness: true
1142 - { id: 0, size: 32, alignment: 16 }
1143 machineFunctionInfo:
1144 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1145 frameOffsetReg: '$sgpr33'
1146 stackPtrOffsetReg: '$sgpr32'
1150 ; MUBUFW64-LABEL: name: s_add_i32__different_sgpr__fi_offset0_live_after
1151 ; MUBUFW64: liveins: $sgpr8
1152 ; MUBUFW64-NEXT: {{ $}}
1153 ; MUBUFW64-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1154 ; MUBUFW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
1155 ; MUBUFW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1156 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr7, implicit $sgpr8
1158 ; MUBUFW32-LABEL: name: s_add_i32__different_sgpr__fi_offset0_live_after
1159 ; MUBUFW32: liveins: $sgpr8
1160 ; MUBUFW32-NEXT: {{ $}}
1161 ; MUBUFW32-NEXT: renamable $sgpr7 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1162 ; MUBUFW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr7, $sgpr8, implicit-def dead $scc
1163 ; MUBUFW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1164 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr7, implicit $sgpr8
1166 ; FLATSCRW64-LABEL: name: s_add_i32__different_sgpr__fi_offset0_live_after
1167 ; FLATSCRW64: liveins: $sgpr8
1168 ; FLATSCRW64-NEXT: {{ $}}
1169 ; FLATSCRW64-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1170 ; FLATSCRW64-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1171 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr7, implicit $sgpr8
1173 ; FLATSCRW32-LABEL: name: s_add_i32__different_sgpr__fi_offset0_live_after
1174 ; FLATSCRW32: liveins: $sgpr8
1175 ; FLATSCRW32-NEXT: {{ $}}
1176 ; FLATSCRW32-NEXT: renamable $sgpr7 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1177 ; FLATSCRW32-NEXT: renamable $sgpr7 = COPY killed renamable $sgpr7
1178 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr7, implicit $sgpr8
1179 renamable $sgpr7 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1180 SI_RETURN implicit $sgpr7, implicit $sgpr8
1185 name: s_add_i32__identity_sgpr__fi_offset0__kernel
1186 tracksRegLiveness: true
1188 - { id: 0, size: 32, alignment: 16 }
1189 machineFunctionInfo:
1190 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1191 frameOffsetReg: '$sgpr33'
1192 stackPtrOffsetReg: '$sgpr32'
1193 isEntryFunction: true
1198 ; MUBUFW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1199 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1200 ; MUBUFW64-NEXT: {{ $}}
1201 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1202 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1203 ; MUBUFW64-NEXT: renamable $sgpr8 = COPY $sgpr8
1204 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1206 ; MUBUFW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1207 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1208 ; MUBUFW32-NEXT: {{ $}}
1209 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1210 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1211 ; MUBUFW32-NEXT: renamable $sgpr8 = COPY $sgpr8
1212 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1214 ; FLATSCRW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1215 ; FLATSCRW64: liveins: $sgpr8
1216 ; FLATSCRW64-NEXT: {{ $}}
1217 ; FLATSCRW64-NEXT: renamable $sgpr8 = COPY $sgpr8
1218 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1220 ; FLATSCRW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0__kernel
1221 ; FLATSCRW32: liveins: $sgpr8
1222 ; FLATSCRW32-NEXT: {{ $}}
1223 ; FLATSCRW32-NEXT: renamable $sgpr8 = COPY $sgpr8
1224 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1225 renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1226 SI_RETURN implicit $sgpr8
1231 name: s_add_i32__fi_offset0__identity_sgpr__kernel
1232 tracksRegLiveness: true
1234 - { id: 0, size: 32, alignment: 16 }
1235 machineFunctionInfo:
1236 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1237 frameOffsetReg: '$sgpr33'
1238 stackPtrOffsetReg: '$sgpr32'
1239 isEntryFunction: true
1244 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1245 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1246 ; MUBUFW64-NEXT: {{ $}}
1247 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1248 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1249 ; MUBUFW64-NEXT: renamable $sgpr8 = COPY $sgpr8
1250 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1252 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1253 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1254 ; MUBUFW32-NEXT: {{ $}}
1255 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1256 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1257 ; MUBUFW32-NEXT: renamable $sgpr8 = COPY $sgpr8
1258 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1260 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1261 ; FLATSCRW64: liveins: $sgpr8
1262 ; FLATSCRW64-NEXT: {{ $}}
1263 ; FLATSCRW64-NEXT: renamable $sgpr8 = COPY $sgpr8
1264 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1266 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset0__identity_sgpr__kernel
1267 ; FLATSCRW32: liveins: $sgpr8
1268 ; FLATSCRW32-NEXT: {{ $}}
1269 ; FLATSCRW32-NEXT: renamable $sgpr8 = COPY $sgpr8
1270 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1271 renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1272 SI_RETURN implicit $sgpr8
1277 name: s_add_i32__identity_sgpr__fi_offset32__kernel
1278 tracksRegLiveness: true
1280 - { id: 0, size: 32, alignment: 16 }
1281 - { id: 1, size: 64, alignment: 4 }
1282 machineFunctionInfo:
1283 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1284 frameOffsetReg: '$sgpr33'
1285 stackPtrOffsetReg: '$sgpr32'
1286 isEntryFunction: true
1291 ; MUBUFW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1292 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1293 ; MUBUFW64-NEXT: {{ $}}
1294 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1295 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1296 ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1297 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1299 ; MUBUFW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1300 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1301 ; MUBUFW32-NEXT: {{ $}}
1302 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1303 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1304 ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1305 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1307 ; FLATSCRW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1308 ; FLATSCRW64: liveins: $sgpr8
1309 ; FLATSCRW64-NEXT: {{ $}}
1310 ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1311 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1313 ; FLATSCRW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset32__kernel
1314 ; FLATSCRW32: liveins: $sgpr8
1315 ; FLATSCRW32-NEXT: {{ $}}
1316 ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1317 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1318 renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
1319 SI_RETURN implicit $sgpr8
1324 name: s_add_i32__fi_offset32__identity_sgpr__kernel
1325 tracksRegLiveness: true
1327 - { id: 0, size: 32, alignment: 16 }
1328 - { id: 1, size: 64, alignment: 4 }
1329 machineFunctionInfo:
1330 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1331 frameOffsetReg: '$sgpr33'
1332 stackPtrOffsetReg: '$sgpr32'
1333 isEntryFunction: true
1338 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1339 ; MUBUFW64: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1340 ; MUBUFW64-NEXT: {{ $}}
1341 ; MUBUFW64-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1342 ; MUBUFW64-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1343 ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1344 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1346 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1347 ; MUBUFW32: liveins: $sgpr8, $sgpr0_sgpr1_sgpr2_sgpr3
1348 ; MUBUFW32-NEXT: {{ $}}
1349 ; MUBUFW32-NEXT: $sgpr0 = S_ADD_U32 $sgpr0, $noreg, implicit-def $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1350 ; MUBUFW32-NEXT: $sgpr1 = S_ADDC_U32 $sgpr1, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
1351 ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1352 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1354 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1355 ; FLATSCRW64: liveins: $sgpr8
1356 ; FLATSCRW64-NEXT: {{ $}}
1357 ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1358 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1360 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr__kernel
1361 ; FLATSCRW32: liveins: $sgpr8
1362 ; FLATSCRW32-NEXT: {{ $}}
1363 ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 $sgpr8, 32, implicit-def dead $scc
1364 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1365 renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
1366 SI_RETURN implicit $sgpr8
1372 name: s_add_i32__identity_sgpr__fi_offset0
1373 tracksRegLiveness: true
1375 - { id: 0, size: 32, alignment: 16 }
1376 machineFunctionInfo:
1377 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1378 frameOffsetReg: '$sgpr33'
1379 stackPtrOffsetReg: '$sgpr32'
1384 ; MUBUFW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1385 ; MUBUFW64: liveins: $sgpr8
1386 ; MUBUFW64-NEXT: {{ $}}
1387 ; MUBUFW64-NEXT: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1388 ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 killed $sgpr4, $sgpr8, implicit-def dead $scc
1389 ; MUBUFW64-NEXT: renamable $sgpr8 = COPY killed renamable $sgpr8
1390 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1392 ; MUBUFW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1393 ; MUBUFW32: liveins: $sgpr8
1394 ; MUBUFW32-NEXT: {{ $}}
1395 ; MUBUFW32-NEXT: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1396 ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 killed $sgpr4, $sgpr8, implicit-def dead $scc
1397 ; MUBUFW32-NEXT: renamable $sgpr8 = COPY killed renamable $sgpr8
1398 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1400 ; FLATSCRW64-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1401 ; FLATSCRW64: liveins: $sgpr8
1402 ; FLATSCRW64-NEXT: {{ $}}
1403 ; FLATSCRW64-NEXT: renamable $sgpr4 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1404 ; FLATSCRW64-NEXT: renamable $sgpr8 = COPY killed renamable $sgpr4
1405 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1407 ; FLATSCRW32-LABEL: name: s_add_i32__identity_sgpr__fi_offset0
1408 ; FLATSCRW32: liveins: $sgpr8
1409 ; FLATSCRW32-NEXT: {{ $}}
1410 ; FLATSCRW32-NEXT: renamable $sgpr4 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1411 ; FLATSCRW32-NEXT: renamable $sgpr8 = COPY killed renamable $sgpr4
1412 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1413 renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.0, implicit-def dead $scc
1414 SI_RETURN implicit $sgpr8
1419 name: s_add_i32__fi_offset32__identity_sgpr
1420 tracksRegLiveness: true
1422 - { id: 0, size: 32, alignment: 16 }
1423 - { id: 1, size: 64, alignment: 4 }
1424 machineFunctionInfo:
1425 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1426 frameOffsetReg: '$sgpr33'
1427 stackPtrOffsetReg: '$sgpr32'
1432 ; MUBUFW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1433 ; MUBUFW64: liveins: $sgpr8
1434 ; MUBUFW64-NEXT: {{ $}}
1435 ; MUBUFW64-NEXT: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1436 ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 killed $sgpr4, $sgpr8, implicit-def dead $scc
1437 ; MUBUFW64-NEXT: renamable $sgpr8 = S_ADD_I32 killed renamable $sgpr8, 32, implicit-def dead $scc
1438 ; MUBUFW64-NEXT: SI_RETURN implicit $sgpr8
1440 ; MUBUFW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1441 ; MUBUFW32: liveins: $sgpr8
1442 ; MUBUFW32-NEXT: {{ $}}
1443 ; MUBUFW32-NEXT: renamable $sgpr4 = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1444 ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 killed $sgpr4, $sgpr8, implicit-def dead $scc
1445 ; MUBUFW32-NEXT: renamable $sgpr8 = S_ADD_I32 killed renamable $sgpr8, 32, implicit-def dead $scc
1446 ; MUBUFW32-NEXT: SI_RETURN implicit $sgpr8
1448 ; FLATSCRW64-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1449 ; FLATSCRW64: liveins: $sgpr8
1450 ; FLATSCRW64-NEXT: {{ $}}
1451 ; FLATSCRW64-NEXT: renamable $sgpr4 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1452 ; FLATSCRW64-NEXT: renamable $sgpr8 = S_ADD_I32 killed renamable $sgpr4, 32, implicit-def dead $scc
1453 ; FLATSCRW64-NEXT: SI_RETURN implicit $sgpr8
1455 ; FLATSCRW32-LABEL: name: s_add_i32__fi_offset32__identity_sgpr
1456 ; FLATSCRW32: liveins: $sgpr8
1457 ; FLATSCRW32-NEXT: {{ $}}
1458 ; FLATSCRW32-NEXT: renamable $sgpr4 = S_ADD_I32 killed $sgpr32, $sgpr8, implicit-def dead $scc
1459 ; FLATSCRW32-NEXT: renamable $sgpr8 = S_ADD_I32 killed renamable $sgpr4, 32, implicit-def dead $scc
1460 ; FLATSCRW32-NEXT: SI_RETURN implicit $sgpr8
1461 renamable $sgpr8 = S_ADD_I32 $sgpr8, %stack.1, implicit-def dead $scc
1462 SI_RETURN implicit $sgpr8
1466 # Must use the result register as scratch register.
1468 name: s_add_i32_use_dst_reg_as_temp_regression
1469 tracksRegLiveness: true
1471 - { id: 0, size: 1, alignment: 4, local-offset: 0 }
1472 machineFunctionInfo:
1473 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3'
1474 frameOffsetReg: '$sgpr33'
1475 stackPtrOffsetReg: '$sgpr32'
1478 liveins: $vcc_lo, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29
1479 ; MUBUFW64-LABEL: name: s_add_i32_use_dst_reg_as_temp_regression
1480 ; MUBUFW64: liveins: $vcc_lo, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29
1481 ; MUBUFW64-NEXT: {{ $}}
1482 ; MUBUFW64-NEXT: renamable $vcc_hi = S_LSHR_B32 $sgpr32, 6, implicit-def dead $scc
1483 ; MUBUFW64-NEXT: renamable $vcc_hi = S_ADD_I32 killed $vcc_hi, renamable $vcc_lo, implicit-def dead $scc
1484 ; MUBUFW64-NEXT: renamable $vcc_hi = COPY killed renamable $vcc_hi
1485 ; MUBUFW64-NEXT: SI_RETURN implicit $vcc_lo, implicit $vcc_hi, implicit $sgpr0, implicit $sgpr1, implicit $sgpr2, implicit $sgpr3, implicit $sgpr4, implicit $sgpr5, implicit $sgpr6, implicit $sgpr7, implicit $sgpr8, implicit $sgpr9, implicit $sgpr10, implicit $sgpr11, implicit $sgpr12, implicit $sgpr13, implicit $sgpr14, implicit $sgpr15, implicit $sgpr16, implicit $sgpr17, implicit $sgpr18, implicit $sgpr19, implicit $sgpr20, implicit $sgpr21, implicit $sgpr22, implicit $sgpr23, implicit $sgpr24, implicit $sgpr25, implicit $sgpr26, implicit $sgpr27, implicit $sgpr28, implicit $sgpr29
1487 ; MUBUFW32-LABEL: name: s_add_i32_use_dst_reg_as_temp_regression
1488 ; MUBUFW32: liveins: $vcc_lo, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29
1489 ; MUBUFW32-NEXT: {{ $}}
1490 ; MUBUFW32-NEXT: renamable $vcc_hi = S_LSHR_B32 $sgpr32, 5, implicit-def dead $scc
1491 ; MUBUFW32-NEXT: renamable $vcc_hi = S_ADD_I32 killed $vcc_hi, renamable $vcc_lo, implicit-def dead $scc
1492 ; MUBUFW32-NEXT: renamable $vcc_hi = COPY killed renamable $vcc_hi
1493 ; MUBUFW32-NEXT: SI_RETURN implicit $vcc_lo, implicit $vcc_hi, implicit $sgpr0, implicit $sgpr1, implicit $sgpr2, implicit $sgpr3, implicit $sgpr4, implicit $sgpr5, implicit $sgpr6, implicit $sgpr7, implicit $sgpr8, implicit $sgpr9, implicit $sgpr10, implicit $sgpr11, implicit $sgpr12, implicit $sgpr13, implicit $sgpr14, implicit $sgpr15, implicit $sgpr16, implicit $sgpr17, implicit $sgpr18, implicit $sgpr19, implicit $sgpr20, implicit $sgpr21, implicit $sgpr22, implicit $sgpr23, implicit $sgpr24, implicit $sgpr25, implicit $sgpr26, implicit $sgpr27, implicit $sgpr28, implicit $sgpr29
1495 ; FLATSCRW64-LABEL: name: s_add_i32_use_dst_reg_as_temp_regression
1496 ; FLATSCRW64: liveins: $vcc_lo, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29
1497 ; FLATSCRW64-NEXT: {{ $}}
1498 ; FLATSCRW64-NEXT: renamable $vcc_hi = S_ADD_I32 killed $sgpr32, renamable $vcc_lo, implicit-def dead $scc
1499 ; FLATSCRW64-NEXT: renamable $vcc_hi = COPY killed renamable $vcc_hi
1500 ; FLATSCRW64-NEXT: SI_RETURN implicit $vcc_lo, implicit $vcc_hi, implicit $sgpr0, implicit $sgpr1, implicit $sgpr2, implicit $sgpr3, implicit $sgpr4, implicit $sgpr5, implicit $sgpr6, implicit $sgpr7, implicit $sgpr8, implicit $sgpr9, implicit $sgpr10, implicit $sgpr11, implicit $sgpr12, implicit $sgpr13, implicit $sgpr14, implicit $sgpr15, implicit $sgpr16, implicit $sgpr17, implicit $sgpr18, implicit $sgpr19, implicit $sgpr20, implicit $sgpr21, implicit $sgpr22, implicit $sgpr23, implicit $sgpr24, implicit $sgpr25, implicit $sgpr26, implicit $sgpr27, implicit $sgpr28, implicit $sgpr29
1502 ; FLATSCRW32-LABEL: name: s_add_i32_use_dst_reg_as_temp_regression
1503 ; FLATSCRW32: liveins: $vcc_lo, $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29
1504 ; FLATSCRW32-NEXT: {{ $}}
1505 ; FLATSCRW32-NEXT: renamable $vcc_hi = S_ADD_I32 killed $sgpr32, renamable $vcc_lo, implicit-def dead $scc
1506 ; FLATSCRW32-NEXT: renamable $vcc_hi = COPY killed renamable $vcc_hi
1507 ; FLATSCRW32-NEXT: SI_RETURN implicit $vcc_lo, implicit $vcc_hi, implicit $sgpr0, implicit $sgpr1, implicit $sgpr2, implicit $sgpr3, implicit $sgpr4, implicit $sgpr5, implicit $sgpr6, implicit $sgpr7, implicit $sgpr8, implicit $sgpr9, implicit $sgpr10, implicit $sgpr11, implicit $sgpr12, implicit $sgpr13, implicit $sgpr14, implicit $sgpr15, implicit $sgpr16, implicit $sgpr17, implicit $sgpr18, implicit $sgpr19, implicit $sgpr20, implicit $sgpr21, implicit $sgpr22, implicit $sgpr23, implicit $sgpr24, implicit $sgpr25, implicit $sgpr26, implicit $sgpr27, implicit $sgpr28, implicit $sgpr29
1508 renamable $vcc_hi = S_ADD_I32 renamable $vcc_lo, %stack.0, implicit-def dead $scc
1509 SI_RETURN implicit $vcc_lo, implicit $vcc_hi, implicit $sgpr0, implicit $sgpr1, implicit $sgpr2, implicit $sgpr3, implicit $sgpr4, implicit $sgpr5, implicit $sgpr6, implicit $sgpr7, implicit $sgpr8, implicit $sgpr9, implicit $sgpr10, implicit $sgpr11, implicit $sgpr12, implicit $sgpr13, implicit $sgpr14, implicit $sgpr15, implicit $sgpr16, implicit $sgpr17, implicit $sgpr18, implicit $sgpr19, implicit $sgpr20, implicit $sgpr21, implicit $sgpr22, implicit $sgpr23, implicit $sgpr24, implicit $sgpr25, implicit $sgpr26, implicit $sgpr27, implicit $sgpr28, implicit $sgpr29