151 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass=amdgpu-pre-ra-optimizations %s -o - | FileCheck -check-prefix=GCN %s3# RUN: llc -mtriple=amdgcn -passes="amdgpu-pre-ra-optimizations" %s -o - | FileCheck -check-prefix=GCN %s4 5---6name: combine_sreg64_inits7tracksRegLiveness: true8body: |9 bb.0:10 ; GCN-LABEL: name: combine_sreg64_inits11 ; GCN: dead [[S_MOV_B:%[0-9]+]]:sgpr_64 = S_MOV_B64_IMM_PSEUDO 858993459312 ; GCN-NEXT: S_NOP 013 undef %0.sub0:sgpr_64 = S_MOV_B32 114 S_NOP 015 %0.sub1:sgpr_64 = S_MOV_B32 216...17---18name: combine_sreg64_inits_swap19tracksRegLiveness: true20body: |21 bb.0:22 ; GCN-LABEL: name: combine_sreg64_inits_swap23 ; GCN: dead [[S_MOV_B:%[0-9]+]]:sgpr_64 = S_MOV_B64_IMM_PSEUDO 858993459324 ; GCN-NEXT: S_NOP 025 undef %0.sub1:sgpr_64 = S_MOV_B32 226 S_NOP 027 %0.sub0:sgpr_64 = S_MOV_B32 128...29---30name: sreg64_subreg_copy_031tracksRegLiveness: true32body: |33 bb.0:34 ; GCN-LABEL: name: sreg64_subreg_copy_035 ; GCN: [[DEF:%[0-9]+]]:sgpr_32 = IMPLICIT_DEF36 ; GCN-NEXT: undef [[COPY:%[0-9]+]].sub0:sgpr_64 = COPY [[DEF]]37 ; GCN-NEXT: [[COPY:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 138 ; GCN-NEXT: dead [[COPY:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 239 %0:sgpr_32 = IMPLICIT_DEF40 undef %1.sub0:sgpr_64 = COPY %0:sgpr_3241 %1.sub0:sgpr_64 = S_MOV_B32 142 %1.sub1:sgpr_64 = S_MOV_B32 243...44---45name: sreg64_subreg_copy_146tracksRegLiveness: true47body: |48 bb.0:49 ; GCN-LABEL: name: sreg64_subreg_copy_150 ; GCN: [[DEF:%[0-9]+]]:sgpr_32 = IMPLICIT_DEF51 ; GCN-NEXT: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 152 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = COPY [[DEF]]53 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 254 %0:sgpr_32 = IMPLICIT_DEF55 undef %1.sub0:sgpr_64 = S_MOV_B32 156 %1.sub1:sgpr_64 = COPY %0:sgpr_3257 %1.sub1:sgpr_64 = S_MOV_B32 258...59---60name: sreg64_subreg_copy_261tracksRegLiveness: true62body: |63 bb.0:64 ; GCN-LABEL: name: sreg64_subreg_copy_265 ; GCN: [[DEF:%[0-9]+]]:sgpr_32 = IMPLICIT_DEF66 ; GCN-NEXT: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 167 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 268 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = COPY [[DEF]]69 %0:sgpr_32 = IMPLICIT_DEF70 undef %1.sub0:sgpr_64 = S_MOV_B32 171 %1.sub1:sgpr_64 = S_MOV_B32 272 %1.sub0:sgpr_64 = COPY %0:sgpr_3273...74---75name: sreg64_inits_different_blocks76tracksRegLiveness: true77body: |78 ; GCN-LABEL: name: sreg64_inits_different_blocks79 ; GCN: bb.0:80 ; GCN-NEXT: successors: %bb.1(0x80000000)81 ; GCN-NEXT: {{ $}}82 ; GCN-NEXT: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 183 ; GCN-NEXT: {{ $}}84 ; GCN-NEXT: bb.1:85 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 286 bb.0:87 undef %0.sub0:sgpr_64 = S_MOV_B32 188 89 bb.1:90 %0.sub1:sgpr_64 = S_MOV_B32 291...92---93name: sreg64_inits_two_defs_sub194tracksRegLiveness: true95body: |96 bb.0:97 ; GCN-LABEL: name: sreg64_inits_two_defs_sub198 ; GCN: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 199 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 2100 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 3101 undef %0.sub0:sgpr_64 = S_MOV_B32 1102 %0.sub1:sgpr_64 = S_MOV_B32 2103 %0.sub1:sgpr_64 = S_MOV_B32 3104...105---106name: sreg64_inits_two_defs_sub0107tracksRegLiveness: true108body: |109 bb.0:110 ; GCN-LABEL: name: sreg64_inits_two_defs_sub0111 ; GCN: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 1112 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 2113 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 3114 undef %0.sub0:sgpr_64 = S_MOV_B32 1115 %0.sub1:sgpr_64 = S_MOV_B32 2116 %0.sub0:sgpr_64 = S_MOV_B32 3117...118---119name: sreg64_inits_full_def120tracksRegLiveness: true121body: |122 bb.0:123 ; GCN-LABEL: name: sreg64_inits_full_def124 ; GCN: dead undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 1125 ; GCN-NEXT: dead [[S_MOV_B64_:%[0-9]+]]:sgpr_64 = S_MOV_B64 3126 undef %0.sub0:sgpr_64 = S_MOV_B32 1127 %0:sgpr_64 = S_MOV_B64 3128...129---130name: sreg64_inits_imp_use131tracksRegLiveness: true132body: |133 bb.0:134 ; GCN-LABEL: name: sreg64_inits_imp_use135 ; GCN: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 1, implicit $m0136 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 2137 undef %0.sub0:sgpr_64 = S_MOV_B32 1, implicit $m0138 %0.sub1:sgpr_64 = S_MOV_B32 2139...140---141name: sreg64_inits_imp_def142tracksRegLiveness: true143body: |144 bb.0:145 ; GCN-LABEL: name: sreg64_inits_imp_def146 ; GCN: undef [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_64 = S_MOV_B32 1, implicit-def $scc147 ; GCN-NEXT: dead [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_64 = S_MOV_B32 2148 undef %0.sub0:sgpr_64 = S_MOV_B32 1, implicit-def $scc149 %0.sub1:sgpr_64 = S_MOV_B32 2150...151