llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-amdgpu Author: Pierre van Houtryve (Pierre-vh) <details> <summary>Changes</summary> Test P0 through P6 + P8 for both S/VGPRs. --- Full diff: https://github.com/llvm/llvm-project/pull/142603.diff 2 Files Affected: - (modified) llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir (+230-6) - (modified) llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir (+228-4) ``````````diff diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir index 053aede615f86..42600d7d0dd7a 100644 --- a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir +++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-inttoptr.mir @@ -3,29 +3,29 @@ # RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s --- -name: inttoptr_s +name: inttoptr_s_p0 legalized: true body: | bb.0: liveins: $sgpr0_sgpr1 - ; CHECK-LABEL: name: inttoptr_s + ; CHECK-LABEL: name: inttoptr_s_p0 ; CHECK: liveins: $sgpr0_sgpr1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1 - ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p4) = G_INTTOPTR [[COPY]](s64) + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p0) = G_INTTOPTR [[COPY]](s64) %0:_(s64) = COPY $sgpr0_sgpr1 - %1:_(p4) = G_INTTOPTR %0 + %1:_(p0) = G_INTTOPTR %0 ... --- -name: inttoptr_v +name: inttoptr_v_p0 legalized: true body: | bb.0: liveins: $vgpr0_vgpr1 - ; CHECK-LABEL: name: inttoptr_v + ; CHECK-LABEL: name: inttoptr_v_p0 ; CHECK: liveins: $vgpr0_vgpr1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 @@ -33,3 +33,227 @@ body: | %0:_(s64) = COPY $vgpr0_vgpr1 %1:_(p0) = G_INTTOPTR %0 ... + +--- +name: inttoptr_s_p1 +legalized: true + +body: | + bb.0: + liveins: $sgpr0_sgpr1 + ; CHECK-LABEL: name: inttoptr_s_p1 + ; CHECK: liveins: $sgpr0_sgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p1) = G_INTTOPTR [[COPY]](s64) + %0:_(s64) = COPY $sgpr0_sgpr1 + %1:_(p1) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p1 +legalized: true + +body: | + bb.0: + liveins: $vgpr0_vgpr1 + ; CHECK-LABEL: name: inttoptr_v_p1 + ; CHECK: liveins: $vgpr0_vgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p1) = G_INTTOPTR [[COPY]](s64) + %0:_(s64) = COPY $vgpr0_vgpr1 + %1:_(p1) = G_INTTOPTR %0 +... + +--- +name: inttoptr_s_p2 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: inttoptr_s_p2 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p2) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $sgpr0 + %1:_(p2) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p2 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: inttoptr_v_p2 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p2) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $vgpr0 + %1:_(p2) = G_INTTOPTR %0 +... + +--- +name: inttoptr_s_p3 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: inttoptr_s_p3 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p3) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $sgpr0 + %1:_(p3) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p3 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: inttoptr_v_p3 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p3) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $vgpr0 + %1:_(p3) = G_INTTOPTR %0 +... + +--- +name: inttoptr_s_p4 +legalized: true + +body: | + bb.0: + liveins: $sgpr0_sgpr1 + ; CHECK-LABEL: name: inttoptr_s_p4 + ; CHECK: liveins: $sgpr0_sgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p4) = G_INTTOPTR [[COPY]](s64) + %0:_(s64) = COPY $sgpr0_sgpr1 + %1:_(p4) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p4 +legalized: true + +body: | + bb.0: + liveins: $vgpr0_vgpr1 + ; CHECK-LABEL: name: inttoptr_v_p4 + ; CHECK: liveins: $vgpr0_vgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p4) = G_INTTOPTR [[COPY]](s64) + %0:_(s64) = COPY $vgpr0_vgpr1 + %1:_(p4) = G_INTTOPTR %0 +... + +--- +name: inttoptr_s_p5 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: inttoptr_s_p5 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p5) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $sgpr0 + %1:_(p5) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p5 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: inttoptr_v_p5 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p5) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $vgpr0 + %1:_(p5) = G_INTTOPTR %0 +... + +--- +name: inttoptr_s_p6 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: inttoptr_s_p6 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p6) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $sgpr0 + %1:_(p6) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p6 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: inttoptr_v_p6 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p6) = G_INTTOPTR [[COPY]](s32) + %0:_(s32) = COPY $vgpr0 + %1:_(p6) = G_INTTOPTR %0 +... + +--- +name: inttoptr_s_p8 +legalized: true + +body: | + bb.0: + liveins: $sgpr0_sgpr1_sgpr2_sgpr3 + ; CHECK-LABEL: name: inttoptr_s_p8 + ; CHECK: liveins: $sgpr0_sgpr1_sgpr2_sgpr3 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:sgpr(p8) = G_INTTOPTR [[COPY]](s128) + %0:_(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3 + %1:_(p8) = G_INTTOPTR %0 +... + +--- +name: inttoptr_v_p8 +legalized: true + +body: | + bb.0: + liveins: $vgpr0_vgpr1_vgpr2_vgpr3 + ; CHECK-LABEL: name: inttoptr_v_p8 + ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:vgpr(p8) = G_INTTOPTR [[COPY]](s128) + %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 + %1:_(p8) = G_INTTOPTR %0 +... diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir index 2db1a5b1d2ba2..9240c9f6df404 100644 --- a/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir +++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir @@ -3,13 +3,45 @@ # RUN: llc -mtriple=amdgcn -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s --- -name: ptrtoint_s +name: ptrtoint_s_p0 legalized: true body: | bb.0: liveins: $sgpr0_sgpr1 - ; CHECK-LABEL: name: ptrtoint_s + ; CHECK-LABEL: name: ptrtoint_s_p0 + ; CHECK: liveins: $sgpr0_sgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p0) = COPY $sgpr0_sgpr1 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s64) = G_PTRTOINT [[COPY]](p0) + %0:_(p0) = COPY $sgpr0_sgpr1 + %1:_(s64) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p0 +legalized: true + +body: | + bb.0: + liveins: $vgpr0_vgpr1 + ; CHECK-LABEL: name: ptrtoint_v_p0 + ; CHECK: liveins: $vgpr0_vgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p0) = COPY $vgpr0_vgpr1 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s64) = G_PTRTOINT [[COPY]](p0) + %0:_(p0) = COPY $vgpr0_vgpr1 + %1:_(s64) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_s_p1 +legalized: true + +body: | + bb.0: + liveins: $sgpr0_sgpr1 + ; CHECK-LABEL: name: ptrtoint_s_p1 ; CHECK: liveins: $sgpr0_sgpr1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1 @@ -19,13 +51,13 @@ body: | ... --- -name: ptrtoint_v +name: ptrtoint_v_p1 legalized: true body: | bb.0: liveins: $vgpr0_vgpr1 - ; CHECK-LABEL: name: ptrtoint_v + ; CHECK-LABEL: name: ptrtoint_v_p1 ; CHECK: liveins: $vgpr0_vgpr1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1 @@ -33,3 +65,195 @@ body: | %0:_(p1) = COPY $vgpr0_vgpr1 %1:_(s64) = G_PTRTOINT %0 ... + +--- +name: ptrtoint_s_p2 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: ptrtoint_s_p2 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p2) = COPY $sgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s32) = G_PTRTOINT [[COPY]](p2) + %0:_(p2) = COPY $sgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p2 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: ptrtoint_v_p2 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p2) = COPY $vgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s32) = G_PTRTOINT [[COPY]](p2) + %0:_(p2) = COPY $vgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_s_p3 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: ptrtoint_s_p3 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p3) = COPY $sgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s32) = G_PTRTOINT [[COPY]](p3) + %0:_(p3) = COPY $sgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p3 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: ptrtoint_v_p3 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s32) = G_PTRTOINT [[COPY]](p3) + %0:_(p3) = COPY $vgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_s_p4 +legalized: true + +body: | + bb.0: + liveins: $sgpr0_sgpr1 + ; CHECK-LABEL: name: ptrtoint_s_p4 + ; CHECK: liveins: $sgpr0_sgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s64) = G_PTRTOINT [[COPY]](p4) + %0:_(p4) = COPY $sgpr0_sgpr1 + %1:_(s64) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p4 +legalized: true + +body: | + bb.0: + liveins: $vgpr0_vgpr1 + ; CHECK-LABEL: name: ptrtoint_v_p4 + ; CHECK: liveins: $vgpr0_vgpr1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p4) = COPY $vgpr0_vgpr1 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s64) = G_PTRTOINT [[COPY]](p4) + %0:_(p4) = COPY $vgpr0_vgpr1 + %1:_(s64) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_s_p5 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: ptrtoint_s_p5 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p5) = COPY $sgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s32) = G_PTRTOINT [[COPY]](p5) + %0:_(p5) = COPY $sgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p5 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: ptrtoint_v_p5 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p5) = COPY $vgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s32) = G_PTRTOINT [[COPY]](p5) + %0:_(p5) = COPY $vgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_s_p6 +legalized: true + +body: | + bb.0: + liveins: $sgpr0 + ; CHECK-LABEL: name: ptrtoint_s_p6 + ; CHECK: liveins: $sgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p6) = COPY $sgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s32) = G_PTRTOINT [[COPY]](p6) + %0:_(p6) = COPY $sgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p6 +legalized: true + +body: | + bb.0: + liveins: $vgpr0 + ; CHECK-LABEL: name: ptrtoint_v_p6 + ; CHECK: liveins: $vgpr0 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p6) = COPY $vgpr0 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s32) = G_PTRTOINT [[COPY]](p6) + %0:_(p6) = COPY $vgpr0 + %1:_(s32) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_s_p8 +legalized: true + +body: | + bb.0: + liveins: $sgpr0_sgpr1_sgpr2_sgpr3 + ; CHECK-LABEL: name: ptrtoint_s_p8 + ; CHECK: liveins: $sgpr0_sgpr1_sgpr2_sgpr3 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(p8) = COPY $sgpr0_sgpr1_sgpr2_sgpr3 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:sgpr(s128) = G_PTRTOINT [[COPY]](p8) + %0:_(p8) = COPY $sgpr0_sgpr1_sgpr2_sgpr3 + %1:_(s128) = G_PTRTOINT %0 +... + +--- +name: ptrtoint_v_p8 +legalized: true + +body: | + bb.0: + liveins: $vgpr0_vgpr1_vgpr2_vgpr3 + ; CHECK-LABEL: name: ptrtoint_v_p8 + ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p8) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:vgpr(s128) = G_PTRTOINT [[COPY]](p8) + %0:_(p8) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 + %1:_(s128) = G_PTRTOINT %0 +... `````````` </details> https://github.com/llvm/llvm-project/pull/142603 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits