1 # RUN: llc -mtriple=amdgcn-amd-amdhsa -run-pass=none -verify-machineinstrs %s -o - | FileCheck -check-prefixes=FULL,ALL %s
2 # RUN: llc -mtriple=amdgcn-amd-amdhsa -run-pass=none -simplify-mir -verify-machineinstrs %s -o - | FileCheck -check-prefixes=SIMPLE,ALL %s
6 # ALL-LABEL: name: kernel0
7 # FULL: machineFunctionInfo:
8 # FULL-NEXT: explicitKernArgSize: 128
9 # FULL-NEXT: maxKernArgAlign: 64
10 # FULL-NEXT: ldsSize: 2048
11 # FULL-NEXT: gdsSize: 256
12 # FULL-NEXT: dynLDSAlign: 1
13 # FULL-NEXT: isEntryFunction: true
14 # FULL-NEXT: isChainFunction: false
15 # FULL-NEXT: noSignedZerosFPMath: false
16 # FULL-NEXT: memoryBound: true
17 # FULL-NEXT: waveLimiter: true
18 # FULL-NEXT: hasSpilledSGPRs: false
19 # FULL-NEXT: hasSpilledVGPRs: false
20 # FULL-NEXT: scratchRSrcReg: '$sgpr8_sgpr9_sgpr10_sgpr11'
21 # FULL-NEXT: frameOffsetReg: '$sgpr12'
22 # FULL-NEXT: stackPtrOffsetReg: '$sgpr13'
23 # FULL-NEXT: bytesInStackArgArea: 0
24 # FULL-NEXT: returnsVoid: true
25 # FULL-NEXT: argumentInfo:
26 # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
27 # FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
28 # FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
29 # FULL-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
30 # FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
31 # FULL-NEXT: workGroupIDX: { reg: '$sgpr6' }
32 # FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }
33 # FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }
34 # FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }
35 # FULL-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' }
36 # FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
37 # FULL-NEXT: workItemIDX: { reg: '$vgpr0' }
38 # FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
39 # FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
40 # FULL-NEXT: psInputAddr: 0
41 # FULL-NEXT: psInputEnable: 0
43 # FULL-NEXT: ieee: true
44 # FULL-NEXT: dx10-clamp: true
45 # FULL-NEXT: fp32-input-denormals: true
46 # FULL-NEXT: fp32-output-denormals: true
47 # FULL-NEXT: fp64-fp16-input-denormals: true
48 # FULL-NEXT: fp64-fp16-output-denormals: true
49 # FULL-NEXT: highBitsOf32BitAddress: 0
50 # FULL-NEXT: occupancy: 8
51 # FULL-NEXT: vgprForAGPRCopy: ''
52 # FULL-NEXT: sgprForEXECCopy: ''
53 # FULL-NEXT: longBranchReservedReg: ''
56 # SIMPLE: machineFunctionInfo:
57 # SIMPLE-NEXT: explicitKernArgSize: 128
58 # SIMPLE-NEXT: maxKernArgAlign: 64
59 # SIMPLE-NEXT: ldsSize: 2048
60 # SIMPLE-NEXT: gdsSize: 256
61 # SIMPLE-NEXT: isEntryFunction: true
62 # SIMPLE-NEXT: memoryBound: true
63 # SIMPLE-NEXT: waveLimiter: true
64 # SIMPLE-NEXT: scratchRSrcReg: '$sgpr8_sgpr9_sgpr10_sgpr11'
65 # SIMPLE-NEXT: frameOffsetReg: '$sgpr12'
66 # SIMPLE-NEXT: stackPtrOffsetReg: '$sgpr13'
67 # SIMPLE-NEXT: argumentInfo:
68 # SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
69 # SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
70 # SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
71 # SIMPLE-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
72 # SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
73 # SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr6' }
74 # SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }
75 # SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }
76 # SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }
77 # SIMPLE-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' }
78 # SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
79 # SIMPLE-NEXT: workItemIDX: { reg: '$vgpr0' }
80 # SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
81 # SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
82 # SIMPLE-NEXT: occupancy: 8
86 explicitKernArgSize: 128
91 noSignedZerosFPMath: false
94 scratchRSrcReg: '$sgpr8_sgpr9_sgpr10_sgpr11'
95 frameOffsetReg: '$sgpr12'
96 stackPtrOffsetReg: '$sgpr13'
98 privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
99 kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
100 workGroupIDX: { reg: '$sgpr6' }
101 privateSegmentWaveByteOffset: { reg: '$sgpr7' }
102 workItemIDX: { reg: '$vgpr0' }
109 # FIXME: Should be able to not print section for simple
111 # ALL-LABEL: name: no_mfi
112 # FULL: machineFunctionInfo:
113 # FULL-NEXT: explicitKernArgSize: 0
114 # FULL-NEXT: maxKernArgAlign: 1
115 # FULL-NEXT: ldsSize: 0
116 # FULL-NEXT: gdsSize: 0
117 # FULL-NEXT: dynLDSAlign: 1
118 # FULL-NEXT: isEntryFunction: false
119 # FULL-NEXT: isChainFunction: false
120 # FULL-NEXT: noSignedZerosFPMath: false
121 # FULL-NEXT: memoryBound: false
122 # FULL-NEXT: waveLimiter: false
123 # FULL-NEXT: hasSpilledSGPRs: false
124 # FULL-NEXT: hasSpilledVGPRs: false
125 # FULL-NEXT: scratchRSrcReg: '$private_rsrc_reg'
126 # FULL-NEXT: frameOffsetReg: '$fp_reg'
127 # FULL-NEXT: stackPtrOffsetReg: '$sp_reg'
128 # FULL-NEXT: bytesInStackArgArea: 0
129 # FULL-NEXT: returnsVoid: true
130 # FULL-NEXT: argumentInfo:
131 # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
132 # FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
133 # FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
134 # FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
135 # FULL-NEXT: workGroupIDX: { reg: '$sgpr12' }
136 # FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }
137 # FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }
138 # FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }
139 # FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
140 # FULL-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
141 # FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
142 # FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
143 # FULL-NEXT: psInputAddr: 0
144 # FULL-NEXT: psInputEnable: 0
146 # FULL-NEXT: ieee: true
147 # FULL-NEXT: dx10-clamp: true
148 # FULL-NEXT: fp32-input-denormals: true
149 # FULL-NEXT: fp32-output-denormals: true
150 # FULL-NEXT: fp64-fp16-input-denormals: true
151 # FULL-NEXT: fp64-fp16-output-denormals: true
152 # FULL-NEXT: highBitsOf32BitAddress: 0
153 # FULL-NEXT: occupancy: 8
154 # FULL-NEXT: vgprForAGPRCopy: ''
155 # FULL-NEXT: sgprForEXECCopy: ''
156 # FULL-NEXT: longBranchReservedReg: ''
159 # SIMPLE: machineFunctionInfo:
160 # SIMPLE-NEXT: maxKernArgAlign: 1
161 # SIMPLE-NEXT: argumentInfo:
162 # SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
163 # SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
164 # SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
165 # SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
166 # SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }
167 # SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }
168 # SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }
169 # SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }
170 # SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
171 # SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
172 # SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
173 # SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
174 # SIMPLE-NEXT: occupancy: 8
185 # ALL-LABEL: name: empty_mfi
186 # FULL: machineFunctionInfo:
187 # FULL-NEXT: explicitKernArgSize: 0
188 # FULL-NEXT: maxKernArgAlign: 1
189 # FULL-NEXT: ldsSize: 0
190 # FULL-NEXT: gdsSize: 0
191 # FULL-NEXT: dynLDSAlign: 1
192 # FULL-NEXT: isEntryFunction: false
193 # FULL-NEXT: isChainFunction: false
194 # FULL-NEXT: noSignedZerosFPMath: false
195 # FULL-NEXT: memoryBound: false
196 # FULL-NEXT: waveLimiter: false
197 # FULL-NEXT: hasSpilledSGPRs: false
198 # FULL-NEXT: hasSpilledVGPRs: false
199 # FULL-NEXT: scratchRSrcReg: '$private_rsrc_reg'
200 # FULL-NEXT: frameOffsetReg: '$fp_reg'
201 # FULL-NEXT: stackPtrOffsetReg: '$sp_reg'
202 # FULL-NEXT: bytesInStackArgArea: 0
203 # FULL-NEXT: returnsVoid: true
204 # FULL-NEXT: argumentInfo:
205 # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
206 # FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
207 # FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
208 # FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
209 # FULL-NEXT: workGroupIDX: { reg: '$sgpr12' }
210 # FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }
211 # FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }
212 # FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }
213 # FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
214 # FULL-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
215 # FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
216 # FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
217 # FULL-NEXT: psInputAddr: 0
218 # FULL-NEXT: psInputEnable: 0
220 # FULL-NEXT: ieee: true
221 # FULL-NEXT: dx10-clamp: true
222 # FULL-NEXT: fp32-input-denormals: true
223 # FULL-NEXT: fp32-output-denormals: true
224 # FULL-NEXT: fp64-fp16-input-denormals: true
225 # FULL-NEXT: fp64-fp16-output-denormals: true
226 # FULL-NEXT: highBitsOf32BitAddress: 0
227 # FULL-NEXT: occupancy: 8
228 # FULL-NEXT: vgprForAGPRCopy: ''
229 # FULL-NEXT: sgprForEXECCopy: ''
230 # FULL-NEXT: longBranchReservedReg: ''
233 # SIMPLE: machineFunctionInfo:
234 # SIMPLE-NEXT: maxKernArgAlign: 1
235 # SIMPLE-NEXT: argumentInfo:
236 # SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
237 # SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
238 # SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
239 # SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
240 # SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }
241 # SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }
242 # SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }
243 # SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }
244 # SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
245 # SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
246 # SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
247 # SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
248 # SIMPLE-NEXT: occupancy: 8
260 # ALL-LABEL: name: empty_mfi_entry_func
261 # FULL: machineFunctionInfo:
262 # FULL-NEXT: explicitKernArgSize: 0
263 # FULL-NEXT: maxKernArgAlign: 1
264 # FULL-NEXT: ldsSize: 0
265 # FULL-NEXT: gdsSize: 0
266 # FULL-NEXT: dynLDSAlign: 1
267 # FULL-NEXT: isEntryFunction: true
268 # FULL-NEXT: isChainFunction: false
269 # FULL-NEXT: noSignedZerosFPMath: false
270 # FULL-NEXT: memoryBound: false
271 # FULL-NEXT: waveLimiter: false
272 # FULL-NEXT: hasSpilledSGPRs: false
273 # FULL-NEXT: hasSpilledVGPRs: false
274 # FULL-NEXT: scratchRSrcReg: '$private_rsrc_reg'
275 # FULL-NEXT: frameOffsetReg: '$fp_reg'
276 # FULL-NEXT: stackPtrOffsetReg: '$sp_reg'
277 # FULL-NEXT: bytesInStackArgArea: 0
278 # FULL-NEXT: returnsVoid: true
279 # FULL-NEXT: argumentInfo:
280 # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
281 # FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
282 # FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
283 # FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
284 # FULL-NEXT: workGroupIDX: { reg: '$sgpr12' }
285 # FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }
286 # FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }
287 # FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }
288 # FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
289 # FULL-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
290 # FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
291 # FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
292 # FULL-NEXT: psInputAddr: 0
293 # FULL-NEXT: psInputEnable: 0
295 # FULL-NEXT: ieee: true
296 # FULL-NEXT: dx10-clamp: true
297 # FULL-NEXT: fp32-input-denormals: true
298 # FULL-NEXT: fp32-output-denormals: true
299 # FULL-NEXT: fp64-fp16-input-denormals: true
300 # FULL-NEXT: fp64-fp16-output-denormals: true
301 # FULL-NEXT: highBitsOf32BitAddress: 0
302 # FULL-NEXT: occupancy: 8
303 # FULL-NEXT: vgprForAGPRCopy: ''
304 # FULL-NEXT: sgprForEXECCopy: ''
305 # FULL-NEXT: longBranchReservedReg: ''
308 # SIMPLE: machineFunctionInfo:
309 # SIMPLE-NEXT: maxKernArgAlign: 1
310 # SIMPLE-NEXT: isEntryFunction: true
311 # SIMPLE-NEXT: argumentInfo:
312 # SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
313 # SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
314 # SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
315 # SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
316 # SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }
317 # SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }
318 # SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }
319 # SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }
320 # SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
321 # SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
322 # SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }
323 # SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
324 # SIMPLE-NEXT: occupancy: 8
327 name: empty_mfi_entry_func
329 isEntryFunction: true
337 # ALL-LABEL: name: default_regs_mfi
339 # FULL: scratchRSrcReg: '$private_rsrc_reg'
340 # FULL-NEXT: frameOffsetReg: '$fp_reg'
341 # FULL-NEXT: stackPtrOffsetReg: '$sp_reg'
343 # SIMPLE-NOT: scratchRSrcReg
344 # SIMPLE-NOT:: stackPtrOffsetReg
345 name: default_regs_mfi
347 scratchRSrcReg: '$private_rsrc_reg'
356 # ALL-LABEL: name: fake_stack_arginfo
358 # FULL: argumentInfo:
359 # FULL: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
360 # FULL: flatScratchInit: { offset: 4 }
361 # FULL: workItemIDY: { reg: '$vgpr0', mask: 65280 }
363 # SIMPLE: argumentInfo:
364 # SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
365 # SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }
366 # SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }
367 # SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }
368 # SIMPLE-NEXT: flatScratchInit: { offset: 4 }
369 # SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }
370 # SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }
371 # SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }
372 # SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }
373 # SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }
374 # SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }
375 # SIMPLE-NEXT: workItemIDY: { reg: '$vgpr0', mask: 65280 }
376 # SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }
377 name: fake_stack_arginfo
380 flatScratchInit: { offset: 4 }
381 workItemIDY: { reg: '$vgpr0' , mask: 0xff00 }
390 # ALL-LABEL: name: parse_mode
392 # ALL-NEXT: ieee: false
393 # ALL-NEXT: dx10-clamp: false
394 # ALL-NEXT: fp32-input-denormals: false
395 # ALL-NEXT: fp32-output-denormals: false
396 # ALL-NEXT: fp64-fp16-input-denormals: false
397 # ALL-NEXT: fp64-fp16-output-denormals: false
404 fp32-input-denormals: false
405 fp32-output-denormals: false
406 fp64-fp16-input-denormals: false
407 fp64-fp16-output-denormals: false
417 # ALL-LABEL: name: parse_spilled_regs
418 # ALL: machineFunctionInfo:
419 # ALL: hasSpilledSGPRs: true
420 # ALL-NEXT: hasSpilledVGPRs: true
422 name: parse_spilled_regs
424 hasSpilledSGPRs: true
425 hasSpilledVGPRs: true
434 # ALL-LABEL: name: dyn_lds_with_alignment
437 # FULL-NEXT: gdsSize: 0
438 # FULL-NEXT: dynLDSAlign: 8
440 # SIMPLE: dynLDSAlign: 8
441 name: dyn_lds_with_alignment
452 # ALL-LABEL: name: occupancy_0
465 # ALL-LABEL: name: occupancy_3
478 # ALL-LABEL: name: scavenge_fi
479 # ALL: scavengeFI: '%stack.0'
482 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }
484 scavengeFI: '%stack.0'
493 # ALL-LABEL: name: bytes_in_stack_arg_area
494 # ALL: bytesInStackArgArea: 444
495 name: bytes_in_stack_arg_area
497 bytesInStackArgArea: 444
505 # ALL-LABEL: name: returns_void_true
506 # FULL: returnsVoid: true
507 # SIMPLE-NOT: returnsVoid
508 name: returns_void_true
517 # ALL-LABEL: name: returns_void_false
518 # ALL: returnsVoid: false
519 name: returns_void_false
529 # ALL-LABEL: name: vgpr_for_agpr_copy
530 # ALL: vgprForAGPRCopy: '$vgpr2'
531 name: vgpr_for_agpr_copy
533 vgprForAGPRCopy: '$vgpr2'
541 # ALL-LABEL: name: vgpr_for_agpr_copy_noreg
542 # FULL: vgprForAGPRCopy: ''
543 # SIMPLE-NOT: vgprForAGPRCopy
544 name: vgpr_for_agpr_copy_noreg
546 vgprForAGPRCopy: '$noreg'
554 # ALL-LABEL: name: sgpr_for_exec_copy
555 # ALL: sgprForEXECCopy: '$sgpr2_sgpr3'
556 name: sgpr_for_exec_copy
558 sgprForEXECCopy: '$sgpr2_sgpr3'
566 # ALL-LABEL: name: sgpr_for_exec_copy_noreg
567 # FULL: sgprForEXECCopy: ''
568 # SIMPLE-NOT: sgprForEXECCopy
569 name: sgpr_for_exec_copy_noreg
571 sgprForEXECCopy: '$noreg'