1
1
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2
2
# RUN: llc -mtriple=amdgcn --run-pass=livevars -o - %s | FileCheck %s
3
3
---
4
+ # Check that super register is implicitly defined for an sgpr copy.
4
5
name : sgpr_copy
5
6
tracksRegLiveness : true
6
7
body : |
@@ -23,6 +24,7 @@ body: |
23
24
24
25
...
25
26
---
27
+ # Check that super register is implicitly defined for a vgpr vector copy.
26
28
name : vgpr_copy
27
29
tracksRegLiveness : true
28
30
body : |
@@ -44,3 +46,45 @@ body: |
44
46
%0:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
45
47
46
48
...
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