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
+ # Check that super register is defined for an sgpr copy.
5
5
name : sgpr_copy
6
6
tracksRegLiveness : true
7
7
body : |
@@ -12,19 +12,19 @@ body: |
12
12
; CHECK-NEXT: $sgpr0 = COPY %sval
13
13
; CHECK-NEXT: $sgpr1 = COPY %sval
14
14
; CHECK-NEXT: $sgpr2 = COPY %sval
15
- ; CHECK-NEXT: $sgpr3 = COPY killed %sval, implicit-def $sgpr0_sgpr1_sgpr2_sgpr3
16
- ; CHECK-NEXT: dead $sgpr30_sgpr31 = COPY killed $sgpr0_sgpr1_sgpr2_sgpr3
15
+ ; CHECK-NEXT: $sgpr3 = COPY killed %sval
16
+ ; CHECK-NEXT: SI_RETURN implicit killed $sgpr0_sgpr1_sgpr2_sgpr3
17
17
%sval:sreg_32 = S_MOV_B32 0
18
18
19
19
$sgpr0 = COPY %sval
20
20
$sgpr1 = COPY %sval
21
21
$sgpr2 = COPY %sval
22
22
$sgpr3 = COPY %sval
23
- $sgpr30_sgpr31 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
23
+ SI_RETURN implicit $sgpr0_sgpr1_sgpr2_sgpr3
24
24
25
25
...
26
26
---
27
- # Check that super register is implicitly defined for a vgpr vector copy.
27
+ # Check that super register is defined for a vgpr vector copy.
28
28
name : vgpr_copy
29
29
tracksRegLiveness : true
30
30
body : |
@@ -35,7 +35,7 @@ body: |
35
35
; CHECK-NEXT: $vgpr0 = COPY %vval
36
36
; CHECK-NEXT: $vgpr1 = COPY %vval
37
37
; CHECK-NEXT: $vgpr2 = COPY %vval
38
- ; CHECK-NEXT: $vgpr3 = COPY killed %vval, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3
38
+ ; CHECK-NEXT: $vgpr3 = COPY killed %vval
39
39
; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3
40
40
%vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
41
41
@@ -47,7 +47,7 @@ body: |
47
47
48
48
...
49
49
---
50
- # Check that super register is implicitly defined when there is a hole.
50
+ # Check that super register is defined when there is a hole.
51
51
name : sgpr_copy_hole
52
52
tracksRegLiveness : true
53
53
body : |
@@ -56,18 +56,18 @@ body: |
56
56
; CHECK: %sval:sreg_32 = S_MOV_B32 0
57
57
; CHECK-NEXT: $sgpr0 = COPY %sval
58
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
59
+ ; CHECK-NEXT: $sgpr3 = COPY killed %sval
60
+ ; CHECK-NEXT: SI_RETURN implicit killed $sgpr0_sgpr1_sgpr2_sgpr3
61
61
%sval:sreg_32 = S_MOV_B32 0
62
62
63
63
$sgpr0 = COPY %sval
64
64
$sgpr2 = COPY %sval
65
65
$sgpr3 = COPY %sval
66
- $sgpr30_sgpr31 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
66
+ SI_RETURN implicit $sgpr0_sgpr1_sgpr2_sgpr3
67
67
68
68
...
69
69
---
70
- # Check that super register is imp-def when a pair interrupts the sequence.
70
+ # Check that super register is defined when a pair interrupts the sequence.
71
71
name : vgpr_copy_pair
72
72
tracksRegLiveness : true
73
73
body : |
@@ -76,8 +76,8 @@ body: |
76
76
; CHECK: %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
77
77
; CHECK-NEXT: $vgpr0 = COPY %vval
78
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
79
+ ; CHECK-NEXT: $vgpr2 = COPY %vval
80
+ ; CHECK-NEXT: $vgpr3 = COPY killed %vval
81
81
; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1_vgpr2
82
82
; CHECK-NEXT: dead [[COPY1:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3
83
83
%vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
@@ -88,3 +88,4 @@ body: |
88
88
$vgpr3 = COPY %vval
89
89
%0:vgpr_32 = COPY $vgpr1_vgpr2
90
90
%1:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
91
+ ...
0 commit comments