[llvm] [AMDGPU] handling of COPY for wide tuples when v_pk_mov_b32 is used (PR #119966)
Pravin Jagtap via llvm-commits
llvm-commits at lists.llvm.org
Sat Dec 14 05:14:36 PST 2024
https://github.com/pravinjagtap updated https://github.com/llvm/llvm-project/pull/119966
>From c103e60085a59e0da9e8ba3b3946f84c8bd51a41 Mon Sep 17 00:00:00 2001
From: Pravin Jagtap <Pravin.Jagtap at amd.com>
Date: Sat, 14 Dec 2024 18:41:43 +0530
Subject: [PATCH] [AMDGPU] handling of COPY for wide tuples when v_pk_mov_b32
is used
---
.../CodeGen/AMDGPU/copy_phys_vgpr1024.mir | 30 +++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 llvm/test/CodeGen/AMDGPU/copy_phys_vgpr1024.mir
diff --git a/llvm/test/CodeGen/AMDGPU/copy_phys_vgpr1024.mir b/llvm/test/CodeGen/AMDGPU/copy_phys_vgpr1024.mir
new file mode 100644
index 00000000000000..b6da8e0edd8a3d
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/copy_phys_vgpr1024.mir
@@ -0,0 +1,30 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
+# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -run-pass postrapseudos -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX90A %s
+
+---
+name: copy_v1024_to_v1024_fwd
+tracksRegLiveness: true
+body: |
+ bb.0:
+ liveins: $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32
+ ; GFX90A-LABEL: name: copy_v1024_to_v1024_fwd
+ ; GFX90A: liveins: $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr32
+ ; GFX90A-NEXT: {{ $}}
+ ; GFX90A-NEXT: $vgpr0_vgpr1 = V_PK_MOV_B32 8, $vgpr32_vgpr33, 12, $vgpr32_vgpr33, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31
+ ; GFX90A-NEXT: $vgpr2_vgpr3 = V_PK_MOV_B32 8, $vgpr34_vgpr35, 12, $vgpr34_vgpr35, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr4_vgpr5 = V_PK_MOV_B32 8, $vgpr36_vgpr37, 12, $vgpr36_vgpr37, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr6_vgpr7 = V_PK_MOV_B32 8, $vgpr38_vgpr39, 12, $vgpr38_vgpr39, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr8_vgpr9 = V_PK_MOV_B32 8, $vgpr40_vgpr41, 12, $vgpr40_vgpr41, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr10_vgpr11 = V_PK_MOV_B32 8, $vgpr42_vgpr43, 12, $vgpr42_vgpr43, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr12_vgpr13 = V_PK_MOV_B32 8, $vgpr44_vgpr45, 12, $vgpr44_vgpr45, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr14_vgpr15 = V_PK_MOV_B32 8, $vgpr46_vgpr47, 12, $vgpr46_vgpr47, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr16_vgpr17 = V_PK_MOV_B32 8, $vgpr48_vgpr49, 12, $vgpr48_vgpr49, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr18_vgpr19 = V_PK_MOV_B32 8, $vgpr50_vgpr51, 12, $vgpr50_vgpr51, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr20_vgpr21 = V_PK_MOV_B32 8, $vgpr52_vgpr53, 12, $vgpr52_vgpr53, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr22_vgpr23 = V_PK_MOV_B32 8, $vgpr54_vgpr55, 12, $vgpr54_vgpr55, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr24_vgpr25 = V_PK_MOV_B32 8, $vgpr56_vgpr57, 12, $vgpr56_vgpr57, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr26_vgpr27 = V_PK_MOV_B32 8, $vgpr58_vgpr59, 12, $vgpr58_vgpr59, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr28_vgpr29 = V_PK_MOV_B32 8, $vgpr60_vgpr61, 12, $vgpr60_vgpr61, 0, 0, 0, 0, 0, implicit $exec, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
+ ; GFX90A-NEXT: $vgpr30_vgpr31 = V_PK_MOV_B32 8, $vgpr62_vgpr63, 12, $vgpr62_vgpr63, 0, 0, 0, 0, 0, implicit $exec, implicit killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, implicit $exec
+ $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = COPY killed $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47_vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, implicit $exec
+...
More information about the llvm-commits
mailing list