Skip to content

Commit 6516c67

Browse files
committed
Add test demonstrating regsize allocation
Change-Id: Ie68127a74fc32768690309419b1d393829125482
1 parent 0a7eaec commit 6516c67

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -verify-regalloc -greedy-regclass-priority-trumps-globalness=1 -start-after=machine-scheduler -stop-after=virtregrewriter,2 -o - %s | FileCheck %s
3+
4+
--- |
5+
define void @temp_vgpr_to_agpr_should_not_undo_split_with_remat() #0 {
6+
entry:
7+
unreachable
8+
}
9+
10+
attributes #0 = { "amdgpu-agpr-alloc"="0,0" }
11+
...
12+
13+
14+
---
15+
name: temp_vgpr_to_agpr_should_not_undo_split_with_remat
16+
tracksRegLiveness: true
17+
machineFunctionInfo:
18+
isEntryFunction: true
19+
scratchRSrcReg: '$sgpr96_sgpr97_sgpr98_sgpr99'
20+
stackPtrOffsetReg: '$sgpr32'
21+
argumentInfo:
22+
privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }
23+
kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }
24+
workGroupIDX: { reg: '$sgpr6' }
25+
privateSegmentWaveByteOffset: { reg: '$sgpr7' }
26+
workItemIDX: { reg: '$vgpr0' }
27+
sgprForEXECCopy: '$sgpr100_sgpr101'
28+
body: |
29+
bb.0:
30+
liveins: $vgpr0, $sgpr4_sgpr5
31+
; CHECK-LABEL: name: temp_vgpr_to_agpr_should_not_undo_split_with_remat
32+
; CHECK: liveins: $vgpr0, $sgpr4_sgpr5
33+
; CHECK-NEXT: {{ $}}
34+
; CHECK-NEXT: renamable $vgpr0 = IMPLICIT_DEF
35+
; CHECK-NEXT: dead renamable $vgpr1 = IMPLICIT_DEF
36+
; CHECK-NEXT: renamable $vgpr1 = IMPLICIT_DEF
37+
; CHECK-NEXT: renamable $vgpr2 = IMPLICIT_DEF
38+
; CHECK-NEXT: renamable $vgpr3 = IMPLICIT_DEF
39+
; CHECK-NEXT: renamable $vgpr4 = IMPLICIT_DEF
40+
; CHECK-NEXT: renamable $vgpr5 = IMPLICIT_DEF
41+
; CHECK-NEXT: renamable $vgpr6 = IMPLICIT_DEF
42+
; CHECK-NEXT: renamable $vgpr7 = IMPLICIT_DEF
43+
; CHECK-NEXT: renamable $vgpr8 = IMPLICIT_DEF
44+
; CHECK-NEXT: renamable $vgpr9 = IMPLICIT_DEF
45+
; CHECK-NEXT: renamable $vgpr10 = IMPLICIT_DEF
46+
; CHECK-NEXT: renamable $vgpr11 = IMPLICIT_DEF
47+
; CHECK-NEXT: renamable $vgpr12 = IMPLICIT_DEF
48+
; CHECK-NEXT: renamable $vgpr13 = IMPLICIT_DEF
49+
; CHECK-NEXT: renamable $vgpr14 = IMPLICIT_DEF
50+
; CHECK-NEXT: renamable $vgpr15 = IMPLICIT_DEF
51+
; CHECK-NEXT: renamable $vgpr16 = IMPLICIT_DEF
52+
; CHECK-NEXT: renamable $vgpr17 = IMPLICIT_DEF
53+
; CHECK-NEXT: renamable $vgpr18 = IMPLICIT_DEF
54+
; CHECK-NEXT: renamable $vgpr19 = IMPLICIT_DEF
55+
; CHECK-NEXT: renamable $vgpr20 = IMPLICIT_DEF
56+
; CHECK-NEXT: renamable $vgpr21 = IMPLICIT_DEF
57+
; CHECK-NEXT: renamable $vgpr22 = IMPLICIT_DEF
58+
; CHECK-NEXT: KILL killed renamable $vgpr2, killed renamable $vgpr3, killed renamable $vgpr4, killed renamable $vgpr5, killed renamable $vgpr6, killed renamable $vgpr7, killed renamable $vgpr8, killed renamable $vgpr9, killed renamable $vgpr10, killed renamable $vgpr11, killed renamable $vgpr12, killed renamable $vgpr13, killed renamable $vgpr14, killed renamable $vgpr15, killed renamable $vgpr16
59+
; CHECK-NEXT: S_NOP 0, implicit-def renamable $vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38
60+
; CHECK-NEXT: S_NOP 0, implicit-def renamable $vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54
61+
; CHECK-NEXT: KILL killed renamable $vgpr0, killed renamable $vgpr1, killed renamable $vgpr17, killed renamable $vgpr18, killed renamable $vgpr19, killed renamable $vgpr20, killed renamable $vgpr21, killed renamable $vgpr22
62+
; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38, implicit killed renamable $vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54
63+
; CHECK-NEXT: S_ENDPGM 0
64+
%1:vgpr_32 = IMPLICIT_DEF
65+
%2:vgpr_32 = IMPLICIT_DEF
66+
%2:vgpr_32 = IMPLICIT_DEF
67+
%3:vgpr_32 = IMPLICIT_DEF
68+
%4:vgpr_32 = IMPLICIT_DEF
69+
%5:vgpr_32 = IMPLICIT_DEF
70+
%6:vgpr_32 = IMPLICIT_DEF
71+
%7:vgpr_32 = IMPLICIT_DEF
72+
%8:vgpr_32 = IMPLICIT_DEF
73+
%9:vgpr_32 = IMPLICIT_DEF
74+
%10:vgpr_32 = IMPLICIT_DEF
75+
%11:vgpr_32 = IMPLICIT_DEF
76+
%12:vgpr_32 = IMPLICIT_DEF
77+
%13:vgpr_32 = IMPLICIT_DEF
78+
%14:vgpr_32 = IMPLICIT_DEF
79+
%15:vgpr_32 = IMPLICIT_DEF
80+
%16:vgpr_32 = IMPLICIT_DEF
81+
%17:vgpr_32 = IMPLICIT_DEF
82+
%18:vgpr_32 = IMPLICIT_DEF
83+
%19:vgpr_32 = IMPLICIT_DEF
84+
%20:vgpr_32 = IMPLICIT_DEF
85+
%21:vgpr_32 = IMPLICIT_DEF
86+
%22:vgpr_32 = IMPLICIT_DEF
87+
%23:vgpr_32 = IMPLICIT_DEF
88+
KILL %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17
89+
S_NOP 0, implicit-def %50:av_512
90+
S_NOP 0, implicit-def %51:av_512
91+
KILL %1, %2, %18, %19, %20, %21, %22, %23
92+
S_NOP 0, implicit %50, implicit %51
93+
S_ENDPGM 0
94+
...

0 commit comments

Comments
 (0)