56 lines · plain
1# RUN: llc -mtriple amdgcn -run-pass livevars -run-pass phi-node-elimination -verify-machineinstrs -o - %s | FileCheck %s2# RUN: llc -mtriple amdgcn --passes='require<live-vars>,phi-node-elimination' -verify-each -o - %s | FileCheck %s3 4# CHECK-LABEL: phi-cf-test5# CHECK: bb.0:6# CHECK: [[COND:%[0-9]+]]:sreg_64 = V_CMP_EQ_U32_e647# CHECK: [[IF_SOURCE0:%[0-9]+]]:sreg_64 = SI_IF [[COND]], %bb.1, implicit-def dead $exec, implicit-def dead $scc, implicit $exec8# CHECK: [[IF_INPUT_REG:%[0-9]+]]:sreg_64 = S_MOV_B64_term killed [[IF_SOURCE0]], implicit $exec9 10# CHECK: bb.1:11# CHECK: [[END_CF_ARG:%[0-9]+]]:sreg_64 = COPY killed [[IF_INPUT_REG]]12# CHECK: SI_END_CF killed [[END_CF_ARG]], implicit-def dead $exec, implicit-def dead $scc, implicit $exec13 14# CHECK: bb.2:15# CHECK: [[IF_SOURCE1:%[0-9]+]]:sreg_64 = SI_IF [[COND]], %bb.1, implicit-def dead $exec, implicit-def dead $scc, implicit $exec16# CHECK: [[IF_INPUT_REG]]:sreg_64 = S_MOV_B64_term killed [[IF_SOURCE1]], implicit $exec17 18 19...20---21name: phi-cf-test22tracksRegLiveness: true23body: |24 25 bb.0:26 successors: %bb.3(0x40000000), %bb.2(0x40000000)27 liveins: $vgpr028 29 %5:vgpr_32(s32) = COPY $vgpr030 %0:sreg_64 = V_CMP_EQ_U32_e64 0, %5(s32), implicit $exec31 %18:vgpr_32 = V_MOV_B32_e32 0, implicit $exec32 %22:sreg_64 = SI_IF %0, %bb.2, implicit-def dead $exec, implicit-def dead $scc, implicit $exec33 S_BRANCH %bb.334 35 bb.2:36 successors: %bb.3(0x80000000)37 38 %24:sreg_64 = PHI %20, %bb.3, %22, %bb.039 %23:vgpr_32 = PHI %19, %bb.3, %18, %bb.040 SI_END_CF %24, implicit-def dead $exec, implicit-def dead $scc, implicit $exec41 %3:vgpr_32, dead %10:sreg_64 = nsw V_ADD_CO_U32_e64 1, %23, 0, implicit $exec42 43 bb.3:44 successors: %bb.3(0x40000000), %bb.2(0x40000000)45 46 %4:vgpr_32 = PHI %19, %bb.3, %3, %bb.2, %18, %bb.047 %15:sreg_32_xm0 = S_MOV_B32 6144048 %16:sreg_32_xm0 = S_MOV_B32 -149 %17:sgpr_128 = REG_SEQUENCE undef %14:sreg_32_xm0, %subreg.sub0, undef %12:sreg_32_xm0, %subreg.sub1, %16, %subreg.sub2, %15, %subreg.sub350 BUFFER_STORE_DWORD_OFFSET %4, %17, 0, 0, 0, 0, implicit $exec :: (volatile store (s32) into `ptr addrspace(1) poison`, addrspace 1)51 %19:vgpr_32 = COPY %452 %20:sreg_64 = SI_IF %0, %bb.2, implicit-def dead $exec, implicit-def dead $scc, implicit $exec53 S_BRANCH %bb.354 55...56