[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