[llvm-branch-commits] [llvm] [AMDGPU] Preserve WWM ownership of allocated AGPRs (PR #223278)
Christudasan Devadasan via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Sep 29 05:55:47 PDT 2026
================
@@ -0,0 +1,28 @@
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -run-pass=liveintervals,virtregmap,si-lower-wwm-copies -verify-machineinstrs -o - %s | FileCheck %s
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -passes="require<live-intervals>,require<virtregmap>,si-lower-wwm-copies" -verify-machineinstrs -o - %s | FileCheck %s
+
+---
+name: lower-wwm-agpr-copies
+registers:
+ - { id: 0, class: vgpr_32, flags: [ WWM_REG ] }
+machineFunctionInfo:
+ sgprForEXECCopy: '$sgpr2_sgpr3'
+tracksRegLiveness: true
+body: |
+ bb.0:
+ liveins: $vgpr0
+ ; CHECK-LABEL: name: lower-wwm-agpr-copies
+ ; CHECK: wwmReservedRegs:
+ ; CHECK-NEXT: - '$agpr0'
+ ; CHECK-NEXT: - '$vgpr1'
+ ; CHECK: liveins: $vgpr0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: $sgpr2_sgpr3 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
+ ; CHECK-NEXT: $agpr0 = COPY $vgpr0
+ ; CHECK-NEXT: $exec = S_MOV_B64 killed $sgpr2_sgpr3
+ ; CHECK-NEXT: $sgpr2_sgpr3 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec, implicit-def dead $scc, implicit $exec
+ ; CHECK-NEXT: $vgpr1 = COPY $agpr0
+ ; CHECK-NEXT: $exec = S_MOV_B64 killed $sgpr2_sgpr3
+ $agpr0 = WWM_COPY $vgpr0
+ $vgpr1 = WWM_COPY $agpr0
----------------
cdevadas wrote:
Again, I wonder at what stage we introduce such copies?
https://github.com/llvm/llvm-project/pull/223278
More information about the llvm-branch-commits
mailing list