Skip to content

Commit a9d1662

Browse files
committed
Add tests and comments
1 parent 7b3266e commit a9d1662

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

llvm/test/CodeGen/AMDGPU/livevars-implicitdef.mir

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
22
# RUN: llc -mtriple=amdgcn --run-pass=livevars -o - %s | FileCheck %s
33
---
4+
# Check that super register is implicitly defined for an sgpr copy.
45
name: sgpr_copy
56
tracksRegLiveness: true
67
body: |
@@ -23,6 +24,7 @@ body: |
2324
2425
...
2526
---
27+
# Check that super register is implicitly defined for a vgpr vector copy.
2628
name: vgpr_copy
2729
tracksRegLiveness: true
2830
body: |
@@ -44,3 +46,45 @@ body: |
4446
%0:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
4547
4648
...
49+
---
50+
# Check that super register is implicitly defined when there is a hole.
51+
name: sgpr_copy_hole
52+
tracksRegLiveness: true
53+
body: |
54+
bb.0:
55+
; CHECK-LABEL: name: sgpr_copy_hole
56+
; CHECK: %sval:sreg_32 = S_MOV_B32 0
57+
; CHECK-NEXT: $sgpr0 = COPY %sval
58+
; CHECK-NEXT: $sgpr2 = COPY %sval
59+
; CHECK-NEXT: $sgpr3 = COPY killed %sval, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
60+
; CHECK-NEXT: dead $sgpr30_sgpr31 = COPY killed $sgpr0_sgpr1_sgpr2_sgpr3
61+
%sval:sreg_32 = S_MOV_B32 0
62+
63+
$sgpr0 = COPY %sval
64+
$sgpr2 = COPY %sval
65+
$sgpr3 = COPY %sval
66+
$sgpr30_sgpr31 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
67+
68+
...
69+
---
70+
# Check that super register is imp-def when a pair interrupts the sequence.
71+
name: vgpr_copy_pair
72+
tracksRegLiveness: true
73+
body: |
74+
bb.0:
75+
; CHECK-LABEL: name: vgpr_copy_pair
76+
; CHECK: %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
77+
; CHECK-NEXT: $vgpr0 = COPY %vval
78+
; CHECK-NEXT: $vgpr1 = COPY %vval
79+
; CHECK-NEXT: $vgpr2 = COPY %vval, implicit-def $vgpr1_vgpr2
80+
; CHECK-NEXT: $vgpr3 = COPY killed %vval, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3
81+
; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1_vgpr2
82+
; CHECK-NEXT: dead [[COPY1:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3
83+
%vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
84+
85+
$vgpr0 = COPY %vval
86+
$vgpr1 = COPY %vval
87+
$vgpr2 = COPY %vval
88+
$vgpr3 = COPY %vval
89+
%0:vgpr_32 = COPY $vgpr1_vgpr2
90+
%1:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr3

0 commit comments

Comments
 (0)