| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py | |
| # RUN: not llc -mtriple=amdgpu9.00 -start-before=greedy,0 -stop-after=virt-reg-rewriter,2 -o - 2>%t.err %s | FileCheck %s | |
| # RUN: FileCheck -check-prefix=ERR %s < %t.err | |
| # This testcase cannot be compiled. An attempted eviction legality | |
| # check was inconsistent with a later assertion when the eviction was | |
| # performed. | |
| # ERR: error: <unknown>:0:0: ran out of registers during register allocation | |
| --- | | |
| define void @foo() #0 { | |
| ret void | |
| } | |
| attributes #0 = { "amdgpu-waves-per-eu"="8,8" } | |
| ... | |
| # CHECK: S_NOP 0, implicit-def renamable $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, implicit-def renamable $vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit-def renamable $vgpr28_vgpr29_vgpr30_vgpr31, implicit-def renamable $vgpr0_vgpr1_vgpr2_vgpr3 | |
| # CHECK: S_NOP 0, implicit killed renamable $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, implicit killed renamable $vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27, implicit undef $vgpr0_vgpr1_vgpr2_vgpr3, implicit killed renamable $vgpr28_vgpr29_vgpr30_vgpr31, implicit killed renamable $vgpr0_vgpr1_vgpr2_vgpr3 | |
| --- | |
| name: foo | |
| tracksRegLiveness: true | |
| machineFunctionInfo: | |
| scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3' | |
| frameOffsetReg: '$sgpr33' | |
| stackPtrOffsetReg: '$sgpr32' | |
| body: | | |
| bb.0: | |
| S_NOP 0, implicit-def %0:vreg_512, implicit-def %1:vreg_256, implicit-def %2:vreg_128, implicit-def %3:vreg_128, implicit-def %4:vreg_128 | |
| S_NOP 0, implicit %0, implicit %1, implicit %2, implicit %3, implicit %4 | |
| S_ENDPGM 0 | |
| ... |