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.
4+ # Check that super register is defined for an sgpr copy.
55name : sgpr_copy
66tracksRegLiveness : true
77body : |
@@ -12,19 +12,19 @@ body: |
1212 ; CHECK-NEXT: $sgpr0 = COPY %sval
1313 ; CHECK-NEXT: $sgpr1 = COPY %sval
1414 ; 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
1717 %sval:sreg_32 = S_MOV_B32 0
1818
1919 $sgpr0 = COPY %sval
2020 $sgpr1 = COPY %sval
2121 $sgpr2 = COPY %sval
2222 $sgpr3 = COPY %sval
23- $sgpr30_sgpr31 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
23+ SI_RETURN implicit $sgpr0_sgpr1_sgpr2_sgpr3
2424
2525 ...
2626---
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.
2828name : vgpr_copy
2929tracksRegLiveness : true
3030body : |
@@ -35,7 +35,7 @@ body: |
3535 ; CHECK-NEXT: $vgpr0 = COPY %vval
3636 ; CHECK-NEXT: $vgpr1 = COPY %vval
3737 ; 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
3939 ; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3
4040 %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
4141
@@ -47,7 +47,7 @@ body: |
4747
4848 ...
4949---
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.
5151name : sgpr_copy_hole
5252tracksRegLiveness : true
5353body : |
@@ -56,18 +56,18 @@ body: |
5656 ; CHECK: %sval:sreg_32 = S_MOV_B32 0
5757 ; CHECK-NEXT: $sgpr0 = COPY %sval
5858 ; 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
6161 %sval:sreg_32 = S_MOV_B32 0
6262
6363 $sgpr0 = COPY %sval
6464 $sgpr2 = COPY %sval
6565 $sgpr3 = COPY %sval
66- $sgpr30_sgpr31 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
66+ SI_RETURN implicit $sgpr0_sgpr1_sgpr2_sgpr3
6767
6868 ...
6969---
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.
7171name : vgpr_copy_pair
7272tracksRegLiveness : true
7373body : |
@@ -76,8 +76,8 @@ body: |
7676 ; CHECK: %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
7777 ; CHECK-NEXT: $vgpr0 = COPY %vval
7878 ; 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
8181 ; CHECK-NEXT: dead [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr1_vgpr2
8282 ; CHECK-NEXT: dead [[COPY1:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3
8383 %vval:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
@@ -88,3 +88,4 @@ body: |
8888 $vgpr3 = COPY %vval
8989 %0:vgpr_32 = COPY $vgpr1_vgpr2
9090 %1:vgpr_32 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
91+ ...
0 commit comments