Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / MIR / AMDGPU / machine-function-info-no-ir.mir
blob4a3319043ede68af19fe50535e7d73db8319c244
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
5 ---
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
42 # FULL-NEXT: mode:
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: ''
54 # FULL-NEXT: body:
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
83 # SIMPLE-NEXT: body:
84 name: kernel0
85 machineFunctionInfo:
86   explicitKernArgSize: 128
87   maxKernArgAlign: 64
88   ldsSize: 2048
89   gdsSize: 256
90   isEntryFunction: true
91   noSignedZerosFPMath: false
92   memoryBound:     true
93   waveLimiter:     true
94   scratchRSrcReg:  '$sgpr8_sgpr9_sgpr10_sgpr11'
95   frameOffsetReg: '$sgpr12'
96   stackPtrOffsetReg:  '$sgpr13'
97   argumentInfo:
98     privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
99     kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
100     workGroupIDX:    { reg: '$sgpr6' }
101     privateSegmentWaveByteOffset: { reg: '$sgpr7' }
102     workItemIDX:     { reg: '$vgpr0' }
103 body:             |
104   bb.0:
105     S_ENDPGM 0
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
145 # FULL-NEXT: mode:
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: ''
157 # FULL-NEXT: body:
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
175 # SIMPLE-NEXT: body:
177 name: no_mfi
178 body:             |
179   bb.0:
180     S_ENDPGM 0
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
219 # FULL-NEXT: mode:
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: ''
231 # FULL-NEXT: body:
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
249 # SIMPLE-NEXT: body:
251 name: empty_mfi
252 machineFunctionInfo:
253 body:             |
254   bb.0:
255     S_ENDPGM 0
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
294 # FULL-NEXT: mode:
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: ''
306 # FULL-NEXT: body:
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
325 # SIMPLE-NEXT: body:
327 name: empty_mfi_entry_func
328 machineFunctionInfo:
329   isEntryFunction: true
330 body:             |
331   bb.0:
332     S_ENDPGM 0
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
346 machineFunctionInfo:
347   scratchRSrcReg:  '$private_rsrc_reg'
349 body:             |
350   bb.0:
351     S_ENDPGM 0
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
378 machineFunctionInfo:
379   argumentInfo:
380     flatScratchInit: { offset: 4 }
381     workItemIDY:     { reg: '$vgpr0' , mask: 0xff00 }
383 body:             |
384   bb.0:
385     S_ENDPGM 0
390 # ALL-LABEL: name: parse_mode
391 # ALL: 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
399 name: parse_mode
400 machineFunctionInfo:
401   mode:
402     ieee: false
403     dx10-clamp: false
404     fp32-input-denormals: false
405     fp32-output-denormals: false
406     fp64-fp16-input-denormals: false
407     fp64-fp16-output-denormals: false
409 body:             |
410   bb.0:
411     S_ENDPGM 0
417 # ALL-LABEL: name: parse_spilled_regs
418 # ALL: machineFunctionInfo:
419 # ALL: hasSpilledSGPRs: true
420 # ALL-NEXT: hasSpilledVGPRs: true
422 name: parse_spilled_regs
423 machineFunctionInfo:
424   hasSpilledSGPRs: true
425   hasSpilledVGPRs: true
427 body:             |
428   bb.0:
429     S_ENDPGM 0
434 # ALL-LABEL: name: dyn_lds_with_alignment
436 # FULL: ldsSize: 0
437 # FULL-NEXT: gdsSize: 0
438 # FULL-NEXT: dynLDSAlign: 8
440 # SIMPLE: dynLDSAlign: 8
441 name: dyn_lds_with_alignment
442 machineFunctionInfo:
443   dynLDSAlign: 8
445 body:             |
446   bb.0:
447     S_ENDPGM 0
452 # ALL-LABEL: name: occupancy_0
453 # ALL: occupancy: 8
454 name: occupancy_0
455 machineFunctionInfo:
456   occupancy: 0
458 body:             |
459   bb.0:
460     S_ENDPGM 0
465 # ALL-LABEL: name: occupancy_3
466 # ALL: occupancy: 3
467 name: occupancy_3
468 machineFunctionInfo:
469   occupancy: 3
471 body:             |
472   bb.0:
473     S_ENDPGM 0
478 # ALL-LABEL: name: scavenge_fi
479 # ALL: scavengeFI: '%stack.0'
480 name: scavenge_fi
481 stack:
482   - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }
483 machineFunctionInfo:
484   scavengeFI: '%stack.0'
486 body:             |
487   bb.0:
488     S_ENDPGM 0
493 # ALL-LABEL: name: bytes_in_stack_arg_area
494 # ALL: bytesInStackArgArea: 444
495 name: bytes_in_stack_arg_area
496 machineFunctionInfo:
497   bytesInStackArgArea: 444
498 body:             |
499   bb.0:
500     SI_RETURN
505 # ALL-LABEL: name: returns_void_true
506 # FULL: returnsVoid: true
507 # SIMPLE-NOT: returnsVoid
508 name: returns_void_true
509 machineFunctionInfo:
510   returnsVoid: true
511 body:             |
512   bb.0:
513     SI_RETURN
517 # ALL-LABEL: name: returns_void_false
518 # ALL: returnsVoid: false
519 name: returns_void_false
520 machineFunctionInfo:
521   returnsVoid: false
522 body:             |
523   bb.0:
524     SI_RETURN
529 # ALL-LABEL: name: vgpr_for_agpr_copy
530 # ALL: vgprForAGPRCopy: '$vgpr2'
531 name: vgpr_for_agpr_copy
532 machineFunctionInfo:
533   vgprForAGPRCopy: '$vgpr2'
534 body:             |
535   bb.0:
536     SI_RETURN
541 # ALL-LABEL: name: vgpr_for_agpr_copy_noreg
542 # FULL: vgprForAGPRCopy: ''
543 # SIMPLE-NOT: vgprForAGPRCopy
544 name: vgpr_for_agpr_copy_noreg
545 machineFunctionInfo:
546   vgprForAGPRCopy: '$noreg'
547 body:             |
548   bb.0:
549     SI_RETURN
554 # ALL-LABEL: name: sgpr_for_exec_copy
555 # ALL: sgprForEXECCopy: '$sgpr2_sgpr3'
556 name: sgpr_for_exec_copy
557 machineFunctionInfo:
558   sgprForEXECCopy: '$sgpr2_sgpr3'
559 body:             |
560   bb.0:
561     SI_RETURN
566 # ALL-LABEL: name: sgpr_for_exec_copy_noreg
567 # FULL: sgprForEXECCopy: ''
568 # SIMPLE-NOT: sgprForEXECCopy
569 name: sgpr_for_exec_copy_noreg
570 machineFunctionInfo:
571   sgprForEXECCopy: '$noreg'
572 body:             |
573   bb.0:
574     SI_RETURN