67 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=si-fold-operands -verify-machineinstrs -o - %s | FileCheck --check-prefix=GCN %s3 4---5name: fold_reg_kill6tracksRegLiveness: true7body: |8 bb.0:9 liveins: $sgpr010 11 ; GCN-LABEL: name: fold_reg_kill12 ; GCN: liveins: $sgpr013 ; GCN-NEXT: {{ $}}14 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr015 ; GCN-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY]], [[COPY]], implicit-def $scc16 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]]17 ; GCN-NEXT: S_ENDPGM 0, implicit [[S_ADD_U32_]], implicit [[COPY1]]18 %0:sreg_32 = COPY $sgpr019 %1:sreg_32 = COPY %020 %2:sreg_32 = S_ADD_U32 killed %0, killed %0, implicit-def $scc21 %3:sreg_32 = COPY %122 S_ENDPGM 0, implicit %2, implicit %323...24 25---26name: fold_subreg_kill27tracksRegLiveness: true28body: |29 ; GCN-LABEL: name: fold_subreg_kill30 ; GCN: bb.0:31 ; GCN-NEXT: successors: %bb.1(0x80000000)32 ; GCN-NEXT: liveins: $sgpr0_sgpr133 ; GCN-NEXT: {{ $}}34 ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_64(p4) = COPY $sgpr0_sgpr135 ; GCN-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]](p4), 9, 0 :: (load (s128), align 4, addrspace 4)36 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64_xexec = COPY [[S_LOAD_DWORDX4_IMM]].sub2_sub337 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY [[S_LOAD_DWORDX4_IMM]].sub0_sub138 ; GCN-NEXT: {{ $}}39 ; GCN-NEXT: bb.1:40 ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY2]].sub141 ; GCN-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[COPY2]].sub042 ; GCN-NEXT: [[COPY5:%[0-9]+]]:sreg_32 = COPY [[COPY1]].sub143 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 -144 ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE killed [[COPY3]], %subreg.sub0, killed [[COPY4]], %subreg.sub1, killed [[COPY5]], %subreg.sub2, killed [[S_MOV_B32_]], %subreg.sub345 ; GCN-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF46 ; GCN-NEXT: BUFFER_STORE_DWORD_OFFSET [[DEF]], killed [[REG_SEQUENCE]], 0, 0, 0, 0, implicit $exec :: (store (s32), addrspace 1)47 bb.0:48 liveins: $sgpr0_sgpr149 50 %0:sgpr_64(p4) = COPY $sgpr0_sgpr151 %1:sgpr_128 = S_LOAD_DWORDX4_IMM %0:sgpr_64(p4), 9, 0 :: (load (s128), align 4, addrspace 4)52 %2:sreg_64_xexec = COPY %1.sub0_sub1:sgpr_12853 %3:sreg_64_xexec = COPY killed %1.sub2_sub3:sgpr_12854 %4:sreg_64 = COPY %2:sreg_64_xexec55 %5:sreg_32 = COPY %3.sub1:sreg_64_xexec56 57 bb.1:58 %6:sreg_32 = COPY %4.sub1:sreg_6459 %7:sreg_32 = COPY %4.sub0:sreg_6460 %8:sreg_32 = COPY %5:sreg_3261 %9:sreg_32 = S_MOV_B32 -162 %10:sgpr_128 = REG_SEQUENCE killed %6:sreg_32, %subreg.sub0, killed %7:sreg_32, %subreg.sub1, killed %8:sreg_32, %subreg.sub2, killed %9:sreg_32, %subreg.sub363 %11:vgpr_32 = IMPLICIT_DEF64 BUFFER_STORE_DWORD_OFFSET %11:vgpr_32, killed %10:sgpr_128, 0, 0, 0, 0, implicit $exec :: (store (s32), addrspace 1)65...66 67