diff --git a/llvm/test/CodeGen/AMDGPU/regpressure_printer.mir b/llvm/test/CodeGen/AMDGPU/regpressure_printer.mir index 0020b13d73602..a1722c42b189f 100644 --- a/llvm/test/CodeGen/AMDGPU/regpressure_printer.mir +++ b/llvm/test/CodeGen/AMDGPU/regpressure_printer.mir @@ -531,3 +531,138 @@ body: | %1:vgpr_32 = V_MOV_B32_e32 %0, implicit $exec S_NOP 0, implicit %1 ... +--- +name: movrel +tracksRegLiveness: true +body: | + ; RPU-LABEL: name: movrel + ; RPU: bb.0: + ; RPU-NEXT: Live-in: + ; RPU-NEXT: SGPR VGPR + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 $sgpr0 = COPY $sgpr1 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 $sgpr2_sgpr3 = S_GETPC_B64 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 $sgpr1 = COPY killed $sgpr3 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM $sgpr0_sgpr1, 0, 0 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 $sgpr0 = S_BUFFER_LOAD_DWORD_IMM $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 S_CMP_GT_U32 $sgpr0, 15, implicit-def $scc + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 S_CBRANCH_SCC1 %bb.2, implicit $scc + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 S_BRANCH %bb.1 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: Live-out: + ; RPU-NEXT: Live-thr: + ; RPU-NEXT: 0 0 + ; RPU-NEXT: bb.1: + ; RPU-NEXT: Live-in: + ; RPU-NEXT: SGPR VGPR + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 1 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec + ; RPU-NEXT: 0 1 + ; RPU-NEXT: 0 1 $m0 = S_MOV_B32 killed $sgpr0 + ; RPU-NEXT: 0 1 + ; RPU-NEXT: 0 1 %0:vreg_512 = V_INDIRECT_REG_WRITE_MOVREL_B32_V16 %0:vreg_512(tied-def 0), 42, 3, implicit $m0, implicit $exec + ; RPU-NEXT: 0 1 + ; RPU-NEXT: Live-out: %0:0000000000000C00 + ; RPU-NEXT: Live-thr: + ; RPU-NEXT: 0 0 + ; RPU-NEXT: bb.2: + ; RPU-NEXT: Live-in: %0:0000000000000C00 + ; RPU-NEXT: SGPR VGPR + ; RPU-NEXT: 0 1 + ; RPU-NEXT: 0 1 %1:vgpr_32 = V_CVT_F32_UBYTE0_e64 %0.sub5:vreg_512, 0, 0, implicit $exec + ; RPU-NEXT: 0 1 + ; RPU-NEXT: 0 1 EXP_DONE 0, %1:vgpr_32, undef %2:vgpr_32, undef %3:vgpr_32, undef %4:vgpr_32, -1, 0, 1, implicit $exec + ; RPU-NEXT: 0 0 + ; RPU-NEXT: 0 0 S_ENDPGM 0 + ; RPU-NEXT: 0 0 + ; RPU-NEXT: Live-out: + ; RPU-NEXT: Live-thr: + ; RPU-NEXT: 0 0 + ; + ; RPD-LABEL: name: movrel + ; RPD: bb.0: + ; RPD-NEXT: Live-in: + ; RPD-NEXT: SGPR VGPR + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 0 $sgpr0 = COPY $sgpr1 + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 0 $sgpr2_sgpr3 = S_GETPC_B64 + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 0 $sgpr1 = COPY killed $sgpr3 + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 0 $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM $sgpr0_sgpr1, 0, 0 + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 0 $sgpr0 = S_BUFFER_LOAD_DWORD_IMM $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0 + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 1 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 1 S_CMP_GT_U32 $sgpr0, 15, implicit-def $scc + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 1 S_CBRANCH_SCC1 %bb.2, implicit $scc + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 1 S_BRANCH %bb.1 + ; RPD-NEXT: 0 1 + ; RPD-NEXT: Live-out: %0:0000000000000C00 + ; RPD-NEXT: mis LIS: + ; RPD-NEXT: %0:L0000000000000C00 isn't found in LIS reported set + ; RPD-NEXT: Live-thr: + ; RPD-NEXT: 0 0 + ; RPD-NEXT: bb.1: + ; RPD-NEXT: Live-in: + ; RPD-NEXT: SGPR VGPR + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 1 undef %0.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 1 $m0 = S_MOV_B32 killed $sgpr0 + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 16 %0:vreg_512 = V_INDIRECT_REG_WRITE_MOVREL_B32_V16 %0:vreg_512(tied-def 0), 42, 3, implicit $m0, implicit $exec + ; RPD-NEXT: 0 1 + ; RPD-NEXT: Live-out: %0:0000000000000C00 + ; RPD-NEXT: Live-thr: + ; RPD-NEXT: 0 0 + ; RPD-NEXT: bb.2: + ; RPD-NEXT: Live-in: %0:0000000000000C00 + ; RPD-NEXT: SGPR VGPR + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 2 %1:vgpr_32 = V_CVT_F32_UBYTE0_e64 %0.sub5:vreg_512, 0, 0, implicit $exec + ; RPD-NEXT: 0 1 + ; RPD-NEXT: 0 1 EXP_DONE 0, %1:vgpr_32, undef %2:vgpr_32, undef %3:vgpr_32, undef %4:vgpr_32, -1, 0, 1, implicit $exec + ; RPD-NEXT: 0 0 + ; RPD-NEXT: 0 0 S_ENDPGM 0 + ; RPD-NEXT: 0 0 + ; RPD-NEXT: Live-out: + ; RPD-NEXT: Live-thr: + ; RPD-NEXT: 0 0 + bb.0: + liveins: $sgpr1 + $sgpr0 = COPY $sgpr1 + $sgpr2_sgpr3 = S_GETPC_B64 + $sgpr1 = COPY killed $sgpr3 + $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM killed $sgpr0_sgpr1, 0, 0 + $sgpr0 = S_BUFFER_LOAD_DWORD_IMM killed $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0 + undef %47.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec + S_CMP_GT_U32 $sgpr0, 15, implicit-def $scc + S_CBRANCH_SCC1 %bb.2, implicit $scc + S_BRANCH %bb.1 + + bb.1: + liveins: $sgpr0 + undef %47.sub5:vreg_512 = V_MOV_B32_e32 5, implicit $exec + $m0 = S_MOV_B32 killed $sgpr0 + %47:vreg_512 = V_INDIRECT_REG_WRITE_MOVREL_B32_V16 %47:vreg_512, 42, 3, implicit $m0, implicit $exec + + bb.2: + + %49:vgpr_32 = V_CVT_F32_UBYTE0_e64 %47.sub5:vreg_512, 0, 0, implicit $exec + EXP_DONE 0, %49:vgpr_32, undef %51:vgpr_32, undef %53:vgpr_32, undef %55:vgpr_32, -1, 0, 1, implicit $exec + S_ENDPGM 0 +...