1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: not llc -march=amdgcn -mcpu=gfx900 -start-before=greedy,0 -stop-after=virtregrewriter,1 -o - 2>%t.err %s | FileCheck %s
3# RUN: FileCheck -check-prefix=ERR %s < %t.err
4
5# This testcase cannot be compiled. An attempted eviction legality
6# check was inconsistent with a later assertion when the eviction was
7# performed.
8
9# ERR: error: ran out of registers during register allocation
10
11--- |
12  define void @foo() #0 {
13    ret void
14  }
15
16  attributes #0 = { "amdgpu-waves-per-eu"="8,8"  }
17
18...
19
20# 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 renamable $vgpr0_vgpr1_vgpr2_vgpr3, implicit-def renamable $vgpr28_vgpr29_vgpr30_vgpr31, implicit-def renamable $vgpr0_vgpr1_vgpr2_vgpr3
21# 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 killed renamable $vgpr0_vgpr1_vgpr2_vgpr3, implicit killed renamable $vgpr28_vgpr29_vgpr30_vgpr31, implicit killed renamable $vgpr0_vgpr1_vgpr2_vgpr3
22
23---
24name:            foo
25tracksRegLiveness: true
26machineFunctionInfo:
27  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'
28  frameOffsetReg:  '$sgpr33'
29  stackPtrOffsetReg: '$sgpr32'
30body:             |
31  bb.0:
32    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
33
34    S_NOP 0, implicit %0, implicit %1, implicit %2, implicit %3, implicit %4
35    S_ENDPGM 0
36
37...
38