[llvm] Adding new reg bank select rules for G_AMDGPU_SPONENTRY (PR #200864)

Jonathan L'Work via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 10 08:59:39 PDT 2026


https://github.com/Jonathan03ant updated https://github.com/llvm/llvm-project/pull/200864

>From 861b26f97a01137b5ee3af9b9cbfc4dcedce8191 Mon Sep 17 00:00:00 2001
From: Jonathan Antenanie <jonathan03ant at gmail.com>
Date: Mon, 1 Jun 2026 16:24:02 +0000
Subject: [PATCH 1/2] Adding new reg bank select rules for G_AMDGPU_SPONENTRY

---
 llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp | 1 +
 llvm/test/CodeGen/AMDGPU/llvm.sponentry.ll            | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
index f622f703b8a4e..6f2d205318347 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
@@ -1379,6 +1379,7 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
       .Any({{UniP8}, {{SgprP8}, {}}});
 
   addRulesForGOpcs({G_AMDGPU_WAVE_ADDRESS}).Any({{UniP5}, {{SgprP5}, {}}});
+  addRulesForGOpcs({G_AMDGPU_SPONENTRY}, Standard).Uni(S32, {{Sgpr32}, {}});
 
   addRulesForGOpcs({G_SI_CALL})
       .Any({{_, UniP0}, {{None}, {SgprP0}}})
diff --git a/llvm/test/CodeGen/AMDGPU/llvm.sponentry.ll b/llvm/test/CodeGen/AMDGPU/llvm.sponentry.ll
index 6d6edfd71ab1e..4b94eb3347106 100644
--- a/llvm/test/CodeGen/AMDGPU/llvm.sponentry.ll
+++ b/llvm/test/CodeGen/AMDGPU/llvm.sponentry.ll
@@ -1,8 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc -global-isel=0 -mtriple=amdgcn--amdpal -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck %s --check-prefixes=CHECK,DAGISEL
 ; RUN: llc -global-isel=0 -mtriple=amdgcn--amdpal -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck %s --check-prefixes=CHECK,DAGISEL
-; RUN: llc -global-isel=1 -mtriple=amdgcn--amdpal -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck %s --check-prefixes=CHECK,GISEL
-; RUN: llc -global-isel=1 -mtriple=amdgcn--amdpal -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck %s --check-prefixes=CHECK,GISEL
+; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn--amdpal -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck %s --check-prefixes=CHECK,GISEL
+; RUN: llc -global-isel=1 -new-reg-bank-select -mtriple=amdgcn--amdpal -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck %s --check-prefixes=CHECK,GISEL
 
 ; Test that in dynamic VGPR mode, the return of sponentry points after the area reserved for CWSR.
 

>From bad04683bdff7411d05ab3fafe17f9d3186b6814 Mon Sep 17 00:00:00 2001
From: Jonathan Antenanie <jonathan03ant at gmail.com>
Date: Wed, 10 Jun 2026 15:57:35 +0000
Subject: [PATCH 2/2] [AMDGPU]Adding new reg bank select rules for
 G_AMDGPU_SPONENTRY, #rebase for G_DYN_STACKALLOC

---
 llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
index 6f2d205318347..7ce34ce83bc27 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
@@ -1379,6 +1379,7 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
       .Any({{UniP8}, {{SgprP8}, {}}});
 
   addRulesForGOpcs({G_AMDGPU_WAVE_ADDRESS}).Any({{UniP5}, {{SgprP5}, {}}});
+
   addRulesForGOpcs({G_AMDGPU_SPONENTRY}, Standard).Uni(S32, {{Sgpr32}, {}});
 
   addRulesForGOpcs({G_SI_CALL})



More information about the llvm-commits mailing list