| # RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+block-vgpr-csr -start-before=si-lower-sgpr-spills -stop-after=prologepilog -verify-machineinstrs -o - %s | FileCheck %s |
| |
| # The spill slot for the VGPR block needs to hold v40 and v43, so it needs to be |
| # 16 bytes large. |
| --- |
| name: locals |
| tracksRegLiveness: true |
| machineFunctionInfo: |
| stackPtrOffsetReg: $sgpr32 |
| stack: |
| - { id: 0, type: default, offset: 0, size: 12, alignment: 4, |
| stack-id: default, callee-saved-register: '', callee-saved-restored: true, |
| local-offset: 0, debug-info-variable: '', debug-info-expression: '', |
| debug-info-location: '' } |
| - { id: 1, type: default, offset: 12, size: 20, alignment: 4, |
| stack-id: default, callee-saved-register: '', callee-saved-restored: true, |
| local-offset: 0, debug-info-variable: '', debug-info-expression: '', |
| debug-info-location: '' } |
| # CHECK-LABEL: name: locals |
| # CHECK: frameInfo: |
| # CHECK: stackSize: 52 |
| # CHECK: stack: |
| # CHECK-NEXT: - { id: 0, name: '', type: default, offset: 16, size: 12, alignment: 4, |
| # CHECK-NEXT: stack-id: default, callee-saved-register: '', callee-saved-restored: true, |
| # CHECK-NEXT: local-offset: 0, debug-info-variable: '', debug-info-expression: '', |
| # CHECK-NEXT: debug-info-location: '' } |
| # CHECK-NEXT: - { id: 1, name: '', type: default, offset: 28, size: 20, alignment: 4, |
| # CHECK-NEXT: stack-id: default, callee-saved-register: '', callee-saved-restored: true, |
| # CHECK-NEXT: local-offset: 0, debug-info-variable: '', debug-info-expression: '', |
| # CHECK-NEXT: debug-info-location: '' } |
| # CHECK-NEXT: - { id: 2, name: '', type: spill-slot, offset: 0, size: 16, alignment: 4, |
| # CHECK-NEXT: stack-id: default, callee-saved-register: '$vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63_vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71', |
| # CHECK-NEXT: callee-saved-restored: true, debug-info-variable: '', debug-info-expression: '', |
| # CHECK-NEXT: debug-info-location: '' } |
| # CHECK-NEXT: - { id: 3, name: '', type: default, offset: 48, size: 4, alignment: 4, |
| # CHECK-NEXT: stack-id: default, callee-saved-register: '', callee-saved-restored: true, |
| # CHECK-NEXT: debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } |
| # CHECK: machineFunctionInfo: |
| # CHECK: hasSpilledVGPRs: true |
| body: | |
| bb.0: |
| liveins: $sgpr30_sgpr31, $vgpr48 |
| SCRATCH_STORE_DWORD_SADDR $vgpr48, %stack.0, 0, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5) |
| SCRATCH_STORE_DWORD_SADDR $vgpr48, %stack.1, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.1, addrspace 5) |
| S_NOP 0, implicit-def $vgpr40, implicit-def $vgpr43 |
| S_SETPC_B64_return $sgpr30_sgpr31 |
| ... |