[llvm] [AMDGPU] Localize resource info symbols (PR #185732)
Janek van Oirschot via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 1 08:31:48 PDT 2026
https://github.com/JanekvO updated https://github.com/llvm/llvm-project/pull/185732
>From f481cb8414cc224d4f1281eca81b8a4844393174 Mon Sep 17 00:00:00 2001
From: Janek van Oirschot <janek.vanoirschot at amd.com>
Date: Tue, 10 Mar 2026 18:39:09 +0000
Subject: [PATCH 1/3] [AMDGPU] Mark resource info symbols as local
---
.../Target/AMDGPU/AMDGPUMCResourceInfo.cpp | 10 +-
.../CodeGen/AMDGPU/agpr-register-count.ll | 4 +-
.../amdpal-metadata-agpr-register-count.ll | 4 +-
...-amdgpu-flat-work-group-size-vgpr-limit.ll | 20 +-
.../AMDGPU/call-alias-register-usage-agpr.ll | 4 +-
.../AMDGPU/call-alias-register-usage0.ll | 2 +-
.../AMDGPU/call-alias-register-usage1.ll | 2 +-
.../AMDGPU/call-alias-register-usage2.ll | 2 +-
.../AMDGPU/call-alias-register-usage3.ll | 2 +-
.../AMDGPU/call-graph-register-usage.ll | 20 +-
llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll | 2 +-
.../dvgpr_sym_fail_too_many_block_size_16.ll | 2 +-
...pr_sym_fail_too_many_block_size_16_anon.ll | 2 +-
.../CodeGen/AMDGPU/function-resource-usage.ll | 673 +++++++++---------
...-knownbits-assign-crash-gh-issue-110930.ll | 2 +-
.../multi-call-resource-usage-mcexpr.ll | 2 +-
llvm/test/CodeGen/AMDGPU/recursion.ll | 6 +-
.../AMDGPU/recursive-resource-usage-mcexpr.ll | 2 +-
.../AMDGPU/resource-optimization-remarks.ll | 2 +-
.../AMDGPU/resource-usage-dead-function.ll | 6 +-
.../test/CodeGen/AMDGPU/s-barrier-lowering.ll | 2 +-
.../AMDGPU/unnamed-function-resource-info.ll | 2 +-
22 files changed, 390 insertions(+), 383 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
index 8186c329c4daf..b923a6e64bfe3 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
@@ -18,17 +18,23 @@
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/CommandLine.h"
#include "llvm/Target/TargetMachine.h"
#define DEBUG_TYPE "amdgpu-mc-resource-usage"
using namespace llvm;
+static cl::opt<bool> LocalizeResourceSymbols(
+ "amdgpu-localize-resource-symbols", cl::Hidden,
+ cl::desc("Localize all resource information symbols."), cl::init(true));
+
MCSymbol *MCResourceInfo::getSymbol(StringRef FuncName, ResourceInfoKind RIK,
MCContext &OutContext, bool IsLocal) {
auto GOCS = [FuncName, &OutContext, IsLocal](StringRef Suffix) {
- StringRef Prefix =
- IsLocal ? OutContext.getAsmInfo()->getInternalSymbolPrefix() : "";
+ StringRef Prefix = LocalizeResourceSymbols || IsLocal
+ ? OutContext.getAsmInfo()->getInternalSymbolPrefix()
+ : "";
return OutContext.getOrCreateSymbol(Twine(Prefix) + FuncName +
Twine(Suffix));
};
diff --git a/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll b/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
index 6e3609303fe19..e142ddd2abea4 100644
--- a/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
+++ b/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx908 < %s | FileCheck -check-prefixes=GCN,GFX908 %s
-; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=GCN,GFX90A %s
+; RUN: llc -mtriple=amdgcn--amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx908 < %s | FileCheck -check-prefixes=GCN,GFX908 %s
+; RUN: llc -mtriple=amdgcn--amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx90a < %s | FileCheck -check-prefixes=GCN,GFX90A %s
; GCN-LABEL: {{^}}kernel_32_agprs:
; GFX908: .amdhsa_next_free_vgpr 32
diff --git a/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll b/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
index 8f4cb364751d8..b1340298555a1 100644
--- a/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
+++ b/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx90a < %s | FileCheck -check-prefixes=CHECK,GFX90A %s
-; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx908 < %s | FileCheck -check-prefixes=CHECK,GFX908 %s
+; RUN: llc -mtriple=amdgcn--amdpal -amdgpu-localize-resource-symbols=false -mcpu=gfx90a < %s | FileCheck -check-prefixes=CHECK,GFX90A %s
+; RUN: llc -mtriple=amdgcn--amdpal -amdgpu-localize-resource-symbols=false -mcpu=gfx908 < %s | FileCheck -check-prefixes=CHECK,GFX908 %s
; COM: Adapted from agpr-register-count.ll
; COM: GFX900 and below should not have .agpr_count present in the metadata
diff --git a/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll b/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
index 8c3fe7fff609f..c36475b31446d 100644
--- a/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
+++ b/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
@@ -1,15 +1,15 @@
; -enable-misched=false makes the register usage more predictable
; -regalloc=fast just makes the test run faster
-; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX9
-; RUN: llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX90A
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE64
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE64
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE64
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX9
+; RUN: llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX90A
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE64
define internal void @use256vgprs() {
%v0 = call i32 asm sideeffect "; def $0", "=v"()
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll
index 2e79d8bab46a6..1d8f5b2acd6d4 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll
@@ -1,5 +1,5 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 < %s | FileCheck -check-prefix=ALL %s
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=ALL,GFX90A %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefix=ALL %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefixes=ALL,GFX90A %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll
index 337da5d0ecbe0..2c2034f0c210c 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll
index 075eddd2763d3..2f33a0fbc9aaa 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll
index 4fd181d3c0f43..50fd29ef2ff6d 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll
index 00f72d5d8b1dd..3d99f02339536 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
diff --git a/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll b/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
index b250227735bd3..9f0f0125b4cc8 100644
--- a/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
@@ -1,13 +1,13 @@
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
; Make sure to run a GPU with the SGPR allocation bug.
diff --git a/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll b/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll
index a7c1c223546f5..fca125d57ce1d 100644
--- a/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll
+++ b/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll
@@ -1,6 +1,6 @@
; Test generation of _dvgpr$ symbol for an amdgpu_cs_chain function with dynamic vgprs.
-; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 < %s | FileCheck -check-prefixes=DVGPR %s
+; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefixes=DVGPR %s
; Function with 0 VGPRs, which counts as 1 block.
;
diff --git a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
index 362a5e7286285..782fc61efd84f 100644
--- a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
+++ b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
@@ -1,6 +1,6 @@
; Test failure to generate the _dvgpr$ symbol for an amdgpu_cs_chain function with dynamic vgprs.
-; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 < %s 2>&1 | FileCheck -check-prefixes=ERR %s
+; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -amdgpu-localize-resource-symbols=false < %s 2>&1 | FileCheck -check-prefixes=ERR %s
; Function with 129 VGPRs, which is too many with a block size of 16.
;
diff --git a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
index 218c009809a50..ab2c9ce630fc7 100644
--- a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
+++ b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
@@ -1,6 +1,6 @@
; Test failure to generate the _dvgpr$ symbol for an anonymous amdgpu_cs_chain function with dynamic vgprs.
-; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 < %s 2>&1 | FileCheck -check-prefixes=ERR %s
+; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -amdgpu-localize-resource-symbols=false < %s 2>&1 | FileCheck -check-prefixes=ERR %s
; Anonymous function with 129 VGPRs, which is too many with a block size of 16.
;
diff --git a/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll b/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
index 59ddbed481359..a7094e79eba81 100644
--- a/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
+++ b/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
@@ -1,17 +1,18 @@
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -enable-ipra=0 -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefix=GCN %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -enable-ipra=0 < %s | FileCheck -check-prefix=GCN %s
; Functions that don't make calls should have constants as its resource usage as no resource information has to be propagated.
; GCN-LABEL: {{^}}use_vcc:
-; GCN: .set use_vcc.num_vgpr, 0
-; GCN: .set use_vcc.num_agpr, 0
-; GCN: .set use_vcc.numbered_sgpr, 32
-; GCN: .set use_vcc.private_seg_size, 0
-; GCN: .set use_vcc.uses_vcc, 1
-; GCN: .set use_vcc.uses_flat_scratch, 0
-; GCN: .set use_vcc.has_dyn_sized_stack, 0
-; GCN: .set use_vcc.has_recursion, 0
-; GCN: .set use_vcc.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_vcc.num_vgpr, 0
+; GCN: .set {{(\.L)?}}use_vcc.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_vcc.numbered_sgpr, 32
+; GCN: .set {{(\.L)?}}use_vcc.private_seg_size, 0
+; GCN: .set {{(\.L)?}}use_vcc.uses_vcc, 1
+; GCN: .set {{(\.L)?}}use_vcc.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}use_vcc.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_vcc.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_vcc.has_indirect_call, 0
; GCN: TotalNumSgprs: 36
; GCN: NumVgprs: 0
; GCN: ScratchSize: 0
@@ -21,15 +22,15 @@ define void @use_vcc() #1 {
}
; GCN-LABEL: {{^}}indirect_use_vcc:
-; GCN: .set indirect_use_vcc.num_vgpr, max(41, use_vcc.num_vgpr)
-; GCN: .set indirect_use_vcc.num_agpr, max(0, use_vcc.num_agpr)
-; GCN: .set indirect_use_vcc.numbered_sgpr, max(34, use_vcc.numbered_sgpr)
-; GCN: .set indirect_use_vcc.private_seg_size, 16+max(use_vcc.private_seg_size)
-; GCN: .set indirect_use_vcc.uses_vcc, or(1, use_vcc.uses_vcc)
-; GCN: .set indirect_use_vcc.uses_flat_scratch, or(0, use_vcc.uses_flat_scratch)
-; GCN: .set indirect_use_vcc.has_dyn_sized_stack, or(0, use_vcc.has_dyn_sized_stack)
-; GCN: .set indirect_use_vcc.has_recursion, or(0, use_vcc.has_recursion)
-; GCN: .set indirect_use_vcc.has_indirect_call, or(0, use_vcc.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.num_vgpr, max(41, {{(\.L)?}}use_vcc.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.num_agpr, max(0, {{(\.L)?}}use_vcc.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.numbered_sgpr, max(34, {{(\.L)?}}use_vcc.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.private_seg_size, 16+max({{(\.L)?}}use_vcc.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.uses_vcc, or(1, {{(\.L)?}}use_vcc.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.uses_flat_scratch, or(0, {{(\.L)?}}use_vcc.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.has_dyn_sized_stack, or(0, {{(\.L)?}}use_vcc.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.has_recursion, or(0, {{(\.L)?}}use_vcc.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_use_vcc.has_indirect_call, or(0, {{(\.L)?}}use_vcc.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -39,15 +40,15 @@ define void @indirect_use_vcc() #1 {
}
; GCN-LABEL: {{^}}indirect_2level_use_vcc_kernel:
-; GCN: .set indirect_2level_use_vcc_kernel.num_vgpr, max(32, indirect_use_vcc.num_vgpr)
-; GCN: .set indirect_2level_use_vcc_kernel.num_agpr, max(0, indirect_use_vcc.num_agpr)
-; GCN: .set indirect_2level_use_vcc_kernel.numbered_sgpr, max(33, indirect_use_vcc.numbered_sgpr)
-; GCN: .set indirect_2level_use_vcc_kernel.private_seg_size, 0+max(indirect_use_vcc.private_seg_size)
-; GCN: .set indirect_2level_use_vcc_kernel.uses_vcc, or(1, indirect_use_vcc.uses_vcc)
-; GCN: .set indirect_2level_use_vcc_kernel.uses_flat_scratch, or(1, indirect_use_vcc.uses_flat_scratch)
-; GCN: .set indirect_2level_use_vcc_kernel.has_dyn_sized_stack, or(0, indirect_use_vcc.has_dyn_sized_stack)
-; GCN: .set indirect_2level_use_vcc_kernel.has_recursion, or(0, indirect_use_vcc.has_recursion)
-; GCN: .set indirect_2level_use_vcc_kernel.has_indirect_call, or(0, indirect_use_vcc.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.num_vgpr, max(32, {{(\.L)?}}indirect_use_vcc.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.num_agpr, max(0, {{(\.L)?}}indirect_use_vcc.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.numbered_sgpr, max(33, {{(\.L)?}}indirect_use_vcc.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.private_seg_size, 0+max({{(\.L)?}}indirect_use_vcc.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.uses_vcc, or(1, {{(\.L)?}}indirect_use_vcc.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.uses_flat_scratch, or(1, {{(\.L)?}}indirect_use_vcc.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.has_dyn_sized_stack, or(0, {{(\.L)?}}indirect_use_vcc.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.has_recursion, or(0, {{(\.L)?}}indirect_use_vcc.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.has_indirect_call, or(0, {{(\.L)?}}indirect_use_vcc.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -57,15 +58,15 @@ define amdgpu_kernel void @indirect_2level_use_vcc_kernel(ptr addrspace(1) %out)
}
; GCN-LABEL: {{^}}use_flat_scratch:
-; GCN: .set use_flat_scratch.num_vgpr, 0
-; GCN: .set use_flat_scratch.num_agpr, 0
-; GCN: .set use_flat_scratch.numbered_sgpr, 32
-; GCN: .set use_flat_scratch.private_seg_size, 0
-; GCN: .set use_flat_scratch.uses_vcc, 0
-; GCN: .set use_flat_scratch.uses_flat_scratch, 1
-; GCN: .set use_flat_scratch.has_dyn_sized_stack, 0
-; GCN: .set use_flat_scratch.has_recursion, 0
-; GCN: .set use_flat_scratch.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.num_vgpr, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.numbered_sgpr, 32
+; GCN: .set {{(\.L)?}}use_flat_scratch.private_seg_size, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.uses_vcc, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}use_flat_scratch.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_flat_scratch.has_indirect_call, 0
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 0
; GCN: ScratchSize: 0
@@ -75,15 +76,15 @@ define void @use_flat_scratch() #1 {
}
; GCN-LABEL: {{^}}indirect_use_flat_scratch:
-; GCN: .set indirect_use_flat_scratch.num_vgpr, max(41, use_flat_scratch.num_vgpr)
-; GCN: .set indirect_use_flat_scratch.num_agpr, max(0, use_flat_scratch.num_agpr)
-; GCN: .set indirect_use_flat_scratch.numbered_sgpr, max(34, use_flat_scratch.numbered_sgpr)
-; GCN: .set indirect_use_flat_scratch.private_seg_size, 16+max(use_flat_scratch.private_seg_size)
-; GCN: .set indirect_use_flat_scratch.uses_vcc, or(1, use_flat_scratch.uses_vcc)
-; GCN: .set indirect_use_flat_scratch.uses_flat_scratch, or(0, use_flat_scratch.uses_flat_scratch)
-; GCN: .set indirect_use_flat_scratch.has_dyn_sized_stack, or(0, use_flat_scratch.has_dyn_sized_stack)
-; GCN: .set indirect_use_flat_scratch.has_recursion, or(0, use_flat_scratch.has_recursion)
-; GCN: .set indirect_use_flat_scratch.has_indirect_call, or(0, use_flat_scratch.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.num_vgpr, max(41, {{(.L)?}}use_flat_scratch.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.num_agpr, max(0, {{(.L)?}}use_flat_scratch.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.numbered_sgpr, max(34, {{(.L)?}}use_flat_scratch.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.private_seg_size, 16+max({{(\.L)?}}use_flat_scratch.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.uses_vcc, or(1, {{(.L)?}}use_flat_scratch.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.uses_flat_scratch, or(0, {{(.L)?}}use_flat_scratch.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.has_dyn_sized_stack, or(0, {{(.L)?}}use_flat_scratch.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.has_recursion, or(0, {{(.L)?}}use_flat_scratch.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.has_indirect_call, or(0, {{(.L)?}}use_flat_scratch.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -93,15 +94,15 @@ define void @indirect_use_flat_scratch() #1 {
}
; GCN-LABEL: {{^}}indirect_2level_use_flat_scratch_kernel:
-; GCN: .set indirect_2level_use_flat_scratch_kernel.num_vgpr, max(32, indirect_use_flat_scratch.num_vgpr)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.num_agpr, max(0, indirect_use_flat_scratch.num_agpr)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.numbered_sgpr, max(33, indirect_use_flat_scratch.numbered_sgpr)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.private_seg_size, 0+max(indirect_use_flat_scratch.private_seg_size)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.uses_vcc, or(1, indirect_use_flat_scratch.uses_vcc)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.uses_flat_scratch, or(1, indirect_use_flat_scratch.uses_flat_scratch)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.has_dyn_sized_stack, or(0, indirect_use_flat_scratch.has_dyn_sized_stack)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.has_recursion, or(0, indirect_use_flat_scratch.has_recursion)
-; GCN: .set indirect_2level_use_flat_scratch_kernel.has_indirect_call, or(0, indirect_use_flat_scratch.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.num_vgpr, max(32, {{(.L)?}}indirect_use_flat_scratch.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.num_agpr, max(0, {{(.L)?}}indirect_use_flat_scratch.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.numbered_sgpr, max(33, {{(.L)?}}indirect_use_flat_scratch.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.private_seg_size, 0+max({{(\.L)?}}indirect_use_flat_scratch.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.uses_vcc, or(1, {{(.L)?}}indirect_use_flat_scratch.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_flat_scratch.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_flat_scratch.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.has_recursion, or(0, {{(.L)?}}indirect_use_flat_scratch.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.has_indirect_call, or(0, {{(.L)?}}indirect_use_flat_scratch.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -111,15 +112,15 @@ define amdgpu_kernel void @indirect_2level_use_flat_scratch_kernel(ptr addrspace
}
; GCN-LABEL: {{^}}use_10_vgpr:
-; GCN: .set use_10_vgpr.num_vgpr, 10
-; GCN: .set use_10_vgpr.num_agpr, 0
-; GCN: .set use_10_vgpr.numbered_sgpr, 32
-; GCN: .set use_10_vgpr.private_seg_size, 0
-; GCN: .set use_10_vgpr.uses_vcc, 0
-; GCN: .set use_10_vgpr.uses_flat_scratch, 0
-; GCN: .set use_10_vgpr.has_dyn_sized_stack, 0
-; GCN: .set use_10_vgpr.has_recursion, 0
-; GCN: .set use_10_vgpr.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.num_vgpr, 10
+; GCN: .set {{(\.L)?}}use_10_vgpr.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.numbered_sgpr, 32
+; GCN: .set {{(\.L)?}}use_10_vgpr.private_seg_size, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.uses_vcc, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_10_vgpr.has_indirect_call, 0
; GCN: TotalNumSgprs: 36
; GCN: NumVgprs: 10
; GCN: ScratchSize: 0
@@ -130,15 +131,15 @@ define void @use_10_vgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_use_10_vgpr:
-; GCN: .set indirect_use_10_vgpr.num_vgpr, max(41, use_10_vgpr.num_vgpr)
-; GCN: .set indirect_use_10_vgpr.num_agpr, max(0, use_10_vgpr.num_agpr)
-; GCN: .set indirect_use_10_vgpr.numbered_sgpr, max(34, use_10_vgpr.numbered_sgpr)
-; GCN: .set indirect_use_10_vgpr.private_seg_size, 16+max(use_10_vgpr.private_seg_size)
-; GCN: .set indirect_use_10_vgpr.uses_vcc, or(1, use_10_vgpr.uses_vcc)
-; GCN: .set indirect_use_10_vgpr.uses_flat_scratch, or(0, use_10_vgpr.uses_flat_scratch)
-; GCN: .set indirect_use_10_vgpr.has_dyn_sized_stack, or(0, use_10_vgpr.has_dyn_sized_stack)
-; GCN: .set indirect_use_10_vgpr.has_recursion, or(0, use_10_vgpr.has_recursion)
-; GCN: .set indirect_use_10_vgpr.has_indirect_call, or(0, use_10_vgpr.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.num_vgpr, max(41, {{(.L)?}}use_10_vgpr.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.num_agpr, max(0, {{(.L)?}}use_10_vgpr.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.numbered_sgpr, max(34, {{(.L)?}}use_10_vgpr.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.private_seg_size, 16+max({{(\.L)?}}use_10_vgpr.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.uses_vcc, or(1, {{(.L)?}}use_10_vgpr.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.uses_flat_scratch, or(0, {{(.L)?}}use_10_vgpr.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.has_dyn_sized_stack, or(0, {{(.L)?}}use_10_vgpr.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.has_recursion, or(0, {{(.L)?}}use_10_vgpr.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.has_indirect_call, or(0, {{(.L)?}}use_10_vgpr.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -148,15 +149,15 @@ define void @indirect_use_10_vgpr() #0 {
}
; GCN-LABEL: {{^}}indirect_2_level_use_10_vgpr:
-; GCN: .set indirect_2_level_use_10_vgpr.num_vgpr, max(32, indirect_use_10_vgpr.num_vgpr)
-; GCN: .set indirect_2_level_use_10_vgpr.num_agpr, max(0, indirect_use_10_vgpr.num_agpr)
-; GCN: .set indirect_2_level_use_10_vgpr.numbered_sgpr, max(33, indirect_use_10_vgpr.numbered_sgpr)
-; GCN: .set indirect_2_level_use_10_vgpr.private_seg_size, 0+max(indirect_use_10_vgpr.private_seg_size)
-; GCN: .set indirect_2_level_use_10_vgpr.uses_vcc, or(1, indirect_use_10_vgpr.uses_vcc)
-; GCN: .set indirect_2_level_use_10_vgpr.uses_flat_scratch, or(1, indirect_use_10_vgpr.uses_flat_scratch)
-; GCN: .set indirect_2_level_use_10_vgpr.has_dyn_sized_stack, or(0, indirect_use_10_vgpr.has_dyn_sized_stack)
-; GCN: .set indirect_2_level_use_10_vgpr.has_recursion, or(0, indirect_use_10_vgpr.has_recursion)
-; GCN: .set indirect_2_level_use_10_vgpr.has_indirect_call, or(0, indirect_use_10_vgpr.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.num_vgpr, max(32, {{(.L)?}}indirect_use_10_vgpr.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.num_agpr, max(0, {{(.L)?}}indirect_use_10_vgpr.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.numbered_sgpr, max(33, {{(.L)?}}indirect_use_10_vgpr.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.private_seg_size, 0+max({{(\.L)?}}indirect_use_10_vgpr.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.uses_vcc, or(1, {{(.L)?}}indirect_use_10_vgpr.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_10_vgpr.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_10_vgpr.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.has_recursion, or(0, {{(.L)?}}indirect_use_10_vgpr.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.has_indirect_call, or(0, {{(.L)?}}indirect_use_10_vgpr.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -166,15 +167,15 @@ define amdgpu_kernel void @indirect_2_level_use_10_vgpr() #0 {
}
; GCN-LABEL: {{^}}use_50_vgpr:
-; GCN: .set use_50_vgpr.num_vgpr, 50
-; GCN: .set use_50_vgpr.num_agpr, 0
-; GCN: .set use_50_vgpr.numbered_sgpr, 32
-; GCN: .set use_50_vgpr.private_seg_size, 0
-; GCN: .set use_50_vgpr.uses_vcc, 0
-; GCN: .set use_50_vgpr.uses_flat_scratch, 0
-; GCN: .set use_50_vgpr.has_dyn_sized_stack, 0
-; GCN: .set use_50_vgpr.has_recursion, 0
-; GCN: .set use_50_vgpr.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.num_vgpr, 50
+; GCN: .set {{(\.L)?}}use_50_vgpr.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.numbered_sgpr, 32
+; GCN: .set {{(\.L)?}}use_50_vgpr.private_seg_size, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.uses_vcc, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_50_vgpr.has_indirect_call, 0
; GCN: TotalNumSgprs: 36
; GCN: NumVgprs: 50
; GCN: ScratchSize: 0
@@ -184,15 +185,15 @@ define void @use_50_vgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_use_50_vgpr:
-; GCN: .set indirect_use_50_vgpr.num_vgpr, max(41, use_50_vgpr.num_vgpr)
-; GCN: .set indirect_use_50_vgpr.num_agpr, max(0, use_50_vgpr.num_agpr)
-; GCN: .set indirect_use_50_vgpr.numbered_sgpr, max(34, use_50_vgpr.numbered_sgpr)
-; GCN: .set indirect_use_50_vgpr.private_seg_size, 16+max(use_50_vgpr.private_seg_size)
-; GCN: .set indirect_use_50_vgpr.uses_vcc, or(1, use_50_vgpr.uses_vcc)
-; GCN: .set indirect_use_50_vgpr.uses_flat_scratch, or(0, use_50_vgpr.uses_flat_scratch)
-; GCN: .set indirect_use_50_vgpr.has_dyn_sized_stack, or(0, use_50_vgpr.has_dyn_sized_stack)
-; GCN: .set indirect_use_50_vgpr.has_recursion, or(0, use_50_vgpr.has_recursion)
-; GCN: .set indirect_use_50_vgpr.has_indirect_call, or(0, use_50_vgpr.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.num_vgpr, max(41, {{(.L)?}}use_50_vgpr.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.num_agpr, max(0, {{(.L)?}}use_50_vgpr.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.numbered_sgpr, max(34, {{(.L)?}}use_50_vgpr.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.private_seg_size, 16+max({{(\.L)?}}use_50_vgpr.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.uses_vcc, or(1, {{(.L)?}}use_50_vgpr.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.uses_flat_scratch, or(0, {{(.L)?}}use_50_vgpr.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.has_dyn_sized_stack, or(0, {{(.L)?}}use_50_vgpr.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.has_recursion, or(0, {{(.L)?}}use_50_vgpr.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.has_indirect_call, or(0, {{(.L)?}}use_50_vgpr.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 50
; GCN: ScratchSize: 16
@@ -202,15 +203,15 @@ define void @indirect_use_50_vgpr() #0 {
}
; GCN-LABEL: {{^}}use_80_sgpr:
-; GCN: .set use_80_sgpr.num_vgpr, 0
-; GCN: .set use_80_sgpr.num_agpr, 0
-; GCN: .set use_80_sgpr.numbered_sgpr, 80
-; GCN: .set use_80_sgpr.private_seg_size, 0
-; GCN: .set use_80_sgpr.uses_vcc, 0
-; GCN: .set use_80_sgpr.uses_flat_scratch, 0
-; GCN: .set use_80_sgpr.has_dyn_sized_stack, 0
-; GCN: .set use_80_sgpr.has_recursion, 0
-; GCN: .set use_80_sgpr.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.num_vgpr, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.numbered_sgpr, 80
+; GCN: .set {{(\.L)?}}use_80_sgpr.private_seg_size, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.uses_vcc, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_80_sgpr.has_indirect_call, 0
; GCN: TotalNumSgprs: 84
; GCN: NumVgprs: 0
; GCN: ScratchSize: 0
@@ -220,15 +221,15 @@ define void @use_80_sgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_use_80_sgpr:
-; GCN: .set indirect_use_80_sgpr.num_vgpr, max(41, use_80_sgpr.num_vgpr)
-; GCN: .set indirect_use_80_sgpr.num_agpr, max(0, use_80_sgpr.num_agpr)
-; GCN: .set indirect_use_80_sgpr.numbered_sgpr, max(34, use_80_sgpr.numbered_sgpr)
-; GCN: .set indirect_use_80_sgpr.private_seg_size, 16+max(use_80_sgpr.private_seg_size)
-; GCN: .set indirect_use_80_sgpr.uses_vcc, or(1, use_80_sgpr.uses_vcc)
-; GCN: .set indirect_use_80_sgpr.uses_flat_scratch, or(0, use_80_sgpr.uses_flat_scratch)
-; GCN: .set indirect_use_80_sgpr.has_dyn_sized_stack, or(0, use_80_sgpr.has_dyn_sized_stack)
-; GCN: .set indirect_use_80_sgpr.has_recursion, or(0, use_80_sgpr.has_recursion)
-; GCN: .set indirect_use_80_sgpr.has_indirect_call, or(0, use_80_sgpr.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.num_vgpr, max(41, {{(.L)?}}use_80_sgpr.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.num_agpr, max(0, {{(.L)?}}use_80_sgpr.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.numbered_sgpr, max(34, {{(.L)?}}use_80_sgpr.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.private_seg_size, 16+max({{(\.L)?}}use_80_sgpr.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.uses_vcc, or(1, {{(.L)?}}use_80_sgpr.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.uses_flat_scratch, or(0, {{(.L)?}}use_80_sgpr.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.has_dyn_sized_stack, or(0, {{(.L)?}}use_80_sgpr.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.has_recursion, or(0, {{(.L)?}}use_80_sgpr.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.has_indirect_call, or(0, {{(.L)?}}use_80_sgpr.has_indirect_call)
; GCN: TotalNumSgprs: 84
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -238,15 +239,15 @@ define void @indirect_use_80_sgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_2_level_use_80_sgpr:
-; GCN: .set indirect_2_level_use_80_sgpr.num_vgpr, max(32, indirect_use_80_sgpr.num_vgpr)
-; GCN: .set indirect_2_level_use_80_sgpr.num_agpr, max(0, indirect_use_80_sgpr.num_agpr)
-; GCN: .set indirect_2_level_use_80_sgpr.numbered_sgpr, max(33, indirect_use_80_sgpr.numbered_sgpr)
-; GCN: .set indirect_2_level_use_80_sgpr.private_seg_size, 0+max(indirect_use_80_sgpr.private_seg_size)
-; GCN: .set indirect_2_level_use_80_sgpr.uses_vcc, or(1, indirect_use_80_sgpr.uses_vcc)
-; GCN: .set indirect_2_level_use_80_sgpr.uses_flat_scratch, or(1, indirect_use_80_sgpr.uses_flat_scratch)
-; GCN: .set indirect_2_level_use_80_sgpr.has_dyn_sized_stack, or(0, indirect_use_80_sgpr.has_dyn_sized_stack)
-; GCN: .set indirect_2_level_use_80_sgpr.has_recursion, or(0, indirect_use_80_sgpr.has_recursion)
-; GCN: .set indirect_2_level_use_80_sgpr.has_indirect_call, or(0, indirect_use_80_sgpr.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.num_vgpr, max(32, {{(.L)?}}indirect_use_80_sgpr.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.num_agpr, max(0, {{(.L)?}}indirect_use_80_sgpr.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.numbered_sgpr, max(33, {{(.L)?}}indirect_use_80_sgpr.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.private_seg_size, 0+max({{(\.L)?}}indirect_use_80_sgpr.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.uses_vcc, or(1, {{(.L)?}}indirect_use_80_sgpr.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_80_sgpr.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_80_sgpr.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.has_recursion, or(0, {{(.L)?}}indirect_use_80_sgpr.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.has_indirect_call, or(0, {{(.L)?}}indirect_use_80_sgpr.has_indirect_call)
; GCN: TotalNumSgprs: 86
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -256,15 +257,15 @@ define amdgpu_kernel void @indirect_2_level_use_80_sgpr() #0 {
}
; GCN-LABEL: {{^}}use_stack0:
-; GCN: .set use_stack0.num_vgpr, 1
-; GCN: .set use_stack0.num_agpr, 0
-; GCN: .set use_stack0.numbered_sgpr, 33
-; GCN: .set use_stack0.private_seg_size, 2052
-; GCN: .set use_stack0.uses_vcc, 0
-; GCN: .set use_stack0.uses_flat_scratch, 0
-; GCN: .set use_stack0.has_dyn_sized_stack, 0
-; GCN: .set use_stack0.has_recursion, 0
-; GCN: .set use_stack0.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_stack0.num_vgpr, 1
+; GCN: .set {{(\.L)?}}use_stack0.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_stack0.numbered_sgpr, 33
+; GCN: .set {{(\.L)?}}use_stack0.private_seg_size, 2052
+; GCN: .set {{(\.L)?}}use_stack0.uses_vcc, 0
+; GCN: .set {{(\.L)?}}use_stack0.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}use_stack0.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_stack0.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_stack0.has_indirect_call, 0
; GCN: TotalNumSgprs: 37
; GCN: NumVgprs: 1
; GCN: ScratchSize: 2052
@@ -275,15 +276,15 @@ define void @use_stack0() #1 {
}
; GCN-LABEL: {{^}}use_stack1:
-; GCN: .set use_stack1.num_vgpr, 1
-; GCN: .set use_stack1.num_agpr, 0
-; GCN: .set use_stack1.numbered_sgpr, 33
-; GCN: .set use_stack1.private_seg_size, 404
-; GCN: .set use_stack1.uses_vcc, 0
-; GCN: .set use_stack1.uses_flat_scratch, 0
-; GCN: .set use_stack1.has_dyn_sized_stack, 0
-; GCN: .set use_stack1.has_recursion, 0
-; GCN: .set use_stack1.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}use_stack1.num_vgpr, 1
+; GCN: .set {{(\.L)?}}use_stack1.num_agpr, 0
+; GCN: .set {{(\.L)?}}use_stack1.numbered_sgpr, 33
+; GCN: .set {{(\.L)?}}use_stack1.private_seg_size, 404
+; GCN: .set {{(\.L)?}}use_stack1.uses_vcc, 0
+; GCN: .set {{(\.L)?}}use_stack1.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}use_stack1.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}use_stack1.has_recursion, 0
+; GCN: .set {{(\.L)?}}use_stack1.has_indirect_call, 0
; GCN: TotalNumSgprs: 37
; GCN: NumVgprs: 1
; GCN: ScratchSize: 404
@@ -294,15 +295,15 @@ define void @use_stack1() #1 {
}
; GCN-LABEL: {{^}}indirect_use_stack:
-; GCN: .set indirect_use_stack.num_vgpr, max(41, use_stack0.num_vgpr)
-; GCN: .set indirect_use_stack.num_agpr, max(0, use_stack0.num_agpr)
-; GCN: .set indirect_use_stack.numbered_sgpr, max(34, use_stack0.numbered_sgpr)
-; GCN: .set indirect_use_stack.private_seg_size, 80+max(use_stack0.private_seg_size)
-; GCN: .set indirect_use_stack.uses_vcc, or(1, use_stack0.uses_vcc)
-; GCN: .set indirect_use_stack.uses_flat_scratch, or(0, use_stack0.uses_flat_scratch)
-; GCN: .set indirect_use_stack.has_dyn_sized_stack, or(0, use_stack0.has_dyn_sized_stack)
-; GCN: .set indirect_use_stack.has_recursion, or(0, use_stack0.has_recursion)
-; GCN: .set indirect_use_stack.has_indirect_call, or(0, use_stack0.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_use_stack.num_vgpr, max(41, {{(.L)?}}use_stack0.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_use_stack.num_agpr, max(0, {{(.L)?}}use_stack0.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_use_stack.numbered_sgpr, max(34, {{(.L)?}}use_stack0.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_use_stack.private_seg_size, 80+max({{(\.L)?}}use_stack0.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_use_stack.uses_vcc, or(1, {{(.L)?}}use_stack0.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_use_stack.uses_flat_scratch, or(0, {{(.L)?}}use_stack0.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_use_stack.has_dyn_sized_stack, or(0, {{(.L)?}}use_stack0.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_use_stack.has_recursion, or(0, {{(.L)?}}use_stack0.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_use_stack.has_indirect_call, or(0, {{(.L)?}}use_stack0.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2132
@@ -314,15 +315,15 @@ define void @indirect_use_stack() #1 {
}
; GCN-LABEL: {{^}}indirect_2_level_use_stack:
-; GCN: .set indirect_2_level_use_stack.num_vgpr, max(32, indirect_use_stack.num_vgpr)
-; GCN: .set indirect_2_level_use_stack.num_agpr, max(0, indirect_use_stack.num_agpr)
-; GCN: .set indirect_2_level_use_stack.numbered_sgpr, max(33, indirect_use_stack.numbered_sgpr)
-; GCN: .set indirect_2_level_use_stack.private_seg_size, 0+max(indirect_use_stack.private_seg_size)
-; GCN: .set indirect_2_level_use_stack.uses_vcc, or(1, indirect_use_stack.uses_vcc)
-; GCN: .set indirect_2_level_use_stack.uses_flat_scratch, or(1, indirect_use_stack.uses_flat_scratch)
-; GCN: .set indirect_2_level_use_stack.has_dyn_sized_stack, or(0, indirect_use_stack.has_dyn_sized_stack)
-; GCN: .set indirect_2_level_use_stack.has_recursion, or(0, indirect_use_stack.has_recursion)
-; GCN: .set indirect_2_level_use_stack.has_indirect_call, or(0, indirect_use_stack.has_indirect_call)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.num_vgpr, max(32, {{(.L)?}}indirect_use_stack.num_vgpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.num_agpr, max(0, {{(.L)?}}indirect_use_stack.num_agpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.numbered_sgpr, max(33, {{(.L)?}}indirect_use_stack.numbered_sgpr)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.private_seg_size, 0+max({{(\.L)?}}indirect_use_stack.private_seg_size)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.uses_vcc, or(1, {{(.L)?}}indirect_use_stack.uses_vcc)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_stack.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_stack.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.has_recursion, or(0, {{(.L)?}}indirect_use_stack.has_recursion)
+; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.has_indirect_call, or(0, {{(.L)?}}indirect_use_stack.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2132
@@ -334,15 +335,15 @@ define amdgpu_kernel void @indirect_2_level_use_stack() #0 {
; Should be maximum of callee usage
; GCN-LABEL: {{^}}multi_call_use_use_stack:
-; GCN: .set multi_call_use_use_stack.num_vgpr, max(41, use_stack0.num_vgpr, use_stack1.num_vgpr)
-; GCN: .set multi_call_use_use_stack.num_agpr, max(0, use_stack0.num_agpr, use_stack1.num_agpr)
-; GCN: .set multi_call_use_use_stack.numbered_sgpr, max(52, use_stack0.numbered_sgpr, use_stack1.numbered_sgpr)
-; GCN: .set multi_call_use_use_stack.private_seg_size, 0+max(use_stack0.private_seg_size, use_stack1.private_seg_size)
-; GCN: .set multi_call_use_use_stack.uses_vcc, or(1, use_stack0.uses_vcc, use_stack1.uses_vcc)
-; GCN: .set multi_call_use_use_stack.uses_flat_scratch, or(1, use_stack0.uses_flat_scratch, use_stack1.uses_flat_scratch)
-; GCN: .set multi_call_use_use_stack.has_dyn_sized_stack, or(0, use_stack0.has_dyn_sized_stack, use_stack1.has_dyn_sized_stack)
-; GCN: .set multi_call_use_use_stack.has_recursion, or(0, use_stack0.has_recursion, use_stack1.has_recursion)
-; GCN: .set multi_call_use_use_stack.has_indirect_call, or(0, use_stack0.has_indirect_call, use_stack1.has_indirect_call)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.num_vgpr, max(41, {{(.L)?}}use_stack0.num_vgpr, {{(.L)?}}use_stack1.num_vgpr)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.num_agpr, max(0, {{(.L)?}}use_stack0.num_agpr, {{(.L)?}}use_stack1.num_agpr)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.numbered_sgpr, max(52, {{(.L)?}}use_stack0.numbered_sgpr, {{(.L)?}}use_stack1.numbered_sgpr)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.uses_vcc, or(1, {{(.L)?}}use_stack0.uses_vcc, {{(.L)?}}use_stack1.uses_vcc)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.uses_flat_scratch, or(1, {{(.L)?}}use_stack0.uses_flat_scratch, {{(.L)?}}use_stack1.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.has_dyn_sized_stack, or(0, {{(.L)?}}use_stack0.has_dyn_sized_stack, {{(.L)?}}use_stack1.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.has_recursion, or(0, {{(.L)?}}use_stack0.has_recursion, {{(.L)?}}use_stack1.has_recursion)
+; GCN: .set {{(\.L)?}}multi_call_use_use_stack.has_indirect_call, or(0, {{(.L)?}}use_stack0.has_indirect_call, {{(.L)?}}use_stack1.has_indirect_call)
; GCN: TotalNumSgprs: 58
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2052
@@ -355,17 +356,17 @@ define amdgpu_kernel void @multi_call_use_use_stack() #0 {
declare void @external() #0
; GCN-LABEL: {{^}}multi_call_with_external:
-; GCN: .set multi_call_with_external.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; GCN: .set multi_call_with_external.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set multi_call_with_external.numbered_sgpr, max(52, amdgpu.max_num_sgpr)
-; GCN: .set multi_call_with_external.private_seg_size, 0+max(use_stack0.private_seg_size, use_stack1.private_seg_size)
-; GCN: .set multi_call_with_external.uses_vcc, 1
-; GCN: .set multi_call_with_external.uses_flat_scratch, 1
-; GCN: .set multi_call_with_external.has_dyn_sized_stack, 1
-; GCN: .set multi_call_with_external.has_recursion, 0
-; GCN: .set multi_call_with_external.has_indirect_call, 1
-; GCN: TotalNumSgprs: multi_call_with_external.numbered_sgpr+6
-; GCN: NumVgprs: multi_call_with_external.num_vgpr
+; GCN: .set {{(\.L)?}}multi_call_with_external.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}multi_call_with_external.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}multi_call_with_external.numbered_sgpr, max(52, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}multi_call_with_external.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_call_with_external.uses_vcc, 1
+; GCN: .set {{(\.L)?}}multi_call_with_external.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}multi_call_with_external.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}multi_call_with_external.has_recursion, 0
+; GCN: .set {{(\.L)?}}multi_call_with_external.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}multi_call_with_external.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}multi_call_with_external.num_vgpr
; GCN: ScratchSize: 2052
define amdgpu_kernel void @multi_call_with_external() #0 {
call void @use_stack0()
@@ -375,17 +376,17 @@ define amdgpu_kernel void @multi_call_with_external() #0 {
}
; GCN-LABEL: {{^}}multi_call_with_external_and_duplicates:
-; GCN: .set multi_call_with_external_and_duplicates.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; GCN: .set multi_call_with_external_and_duplicates.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set multi_call_with_external_and_duplicates.numbered_sgpr, max(54, amdgpu.max_num_sgpr)
-; GCN: .set multi_call_with_external_and_duplicates.private_seg_size, 0+max(use_stack0.private_seg_size, use_stack1.private_seg_size)
-; GCN: .set multi_call_with_external_and_duplicates.uses_vcc, 1
-; GCN: .set multi_call_with_external_and_duplicates.uses_flat_scratch, 1
-; GCN: .set multi_call_with_external_and_duplicates.has_dyn_sized_stack, 1
-; GCN: .set multi_call_with_external_and_duplicates.has_recursion, 0
-; GCN: .set multi_call_with_external_and_duplicates.has_indirect_call, 1
-; GCN: TotalNumSgprs: multi_call_with_external_and_duplicates.numbered_sgpr+6
-; GCN: NumVgprs: multi_call_with_external_and_duplicates.num_vgpr
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.numbered_sgpr, max(54, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.uses_vcc, 1
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.has_recursion, 0
+; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}multi_call_with_external_and_duplicates.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}multi_call_with_external_and_duplicates.num_vgpr
; GCN: ScratchSize: 2052
define amdgpu_kernel void @multi_call_with_external_and_duplicates() #0 {
call void @use_stack0()
@@ -398,17 +399,17 @@ define amdgpu_kernel void @multi_call_with_external_and_duplicates() #0 {
}
; GCN-LABEL: {{^}}usage_external:
-; GCN: .set usage_external.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set usage_external.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set usage_external.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set usage_external.private_seg_size, 0
-; GCN: .set usage_external.uses_vcc, 1
-; GCN: .set usage_external.uses_flat_scratch, 1
-; GCN: .set usage_external.has_dyn_sized_stack, 1
-; GCN: .set usage_external.has_recursion, 0
-; GCN: .set usage_external.has_indirect_call, 1
-; GCN: TotalNumSgprs: usage_external.numbered_sgpr+6
-; GCN: NumVgprs: usage_external.num_vgpr
+; GCN: .set {{(\.L)?}}usage_external.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}usage_external.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}usage_external.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}usage_external.private_seg_size, 0
+; GCN: .set {{(\.L)?}}usage_external.uses_vcc, 1
+; GCN: .set {{(\.L)?}}usage_external.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}usage_external.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}usage_external.has_recursion, 0
+; GCN: .set {{(\.L)?}}usage_external.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}usage_external.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}usage_external.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @usage_external() #0 {
call void @external()
@@ -418,17 +419,17 @@ define amdgpu_kernel void @usage_external() #0 {
declare void @external_recurse() #2
; GCN-LABEL: {{^}}usage_external_recurse:
-; GCN: .set usage_external_recurse.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set usage_external_recurse.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set usage_external_recurse.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set usage_external_recurse.private_seg_size, 0
-; GCN: .set usage_external_recurse.uses_vcc, 1
-; GCN: .set usage_external_recurse.uses_flat_scratch, 1
-; GCN: .set usage_external_recurse.has_dyn_sized_stack, 1
-; GCN: .set usage_external_recurse.has_recursion, 1
-; GCN: .set usage_external_recurse.has_indirect_call, 1
-; GCN: TotalNumSgprs: usage_external_recurse.numbered_sgpr+6
-; GCN: NumVgprs: usage_external_recurse.num_vgpr
+; GCN: .set {{(\.L)?}}usage_external_recurse.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}usage_external_recurse.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}usage_external_recurse.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}usage_external_recurse.private_seg_size, 0
+; GCN: .set {{(\.L)?}}usage_external_recurse.uses_vcc, 1
+; GCN: .set {{(\.L)?}}usage_external_recurse.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}usage_external_recurse.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}usage_external_recurse.has_recursion, 1
+; GCN: .set {{(\.L)?}}usage_external_recurse.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}usage_external_recurse.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}usage_external_recurse.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @usage_external_recurse() #0 {
call void @external_recurse()
@@ -436,15 +437,15 @@ define amdgpu_kernel void @usage_external_recurse() #0 {
}
; GCN-LABEL: {{^}}direct_recursion_use_stack:
-; GCN: .set direct_recursion_use_stack.num_vgpr, 41
-; GCN: .set direct_recursion_use_stack.num_agpr, 0
-; GCN: .set direct_recursion_use_stack.numbered_sgpr, 36
-; GCN: .set direct_recursion_use_stack.private_seg_size, 2064
-; GCN: .set direct_recursion_use_stack.uses_vcc, 1
-; GCN: .set direct_recursion_use_stack.uses_flat_scratch, 0
-; GCN: .set direct_recursion_use_stack.has_dyn_sized_stack, 0
-; GCN: .set direct_recursion_use_stack.has_recursion, 1
-; GCN: .set direct_recursion_use_stack.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.num_vgpr, 41
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.num_agpr, 0
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.numbered_sgpr, 36
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.private_seg_size, 2064
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.uses_vcc, 1
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.has_recursion, 1
+; GCN: .set {{(\.L)?}}direct_recursion_use_stack.has_indirect_call, 0
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2064
@@ -464,15 +465,15 @@ ret:
}
; GCN-LABEL: {{^}}usage_direct_recursion:
-; GCN: .set usage_direct_recursion.num_vgpr, max(32, direct_recursion_use_stack.num_vgpr)
-; GCN: .set usage_direct_recursion.num_agpr, max(0, direct_recursion_use_stack.num_agpr)
-; GCN: .set usage_direct_recursion.numbered_sgpr, max(33, direct_recursion_use_stack.numbered_sgpr)
-; GCN: .set usage_direct_recursion.private_seg_size, 0+max(direct_recursion_use_stack.private_seg_size)
-; GCN: .set usage_direct_recursion.uses_vcc, or(1, direct_recursion_use_stack.uses_vcc)
-; GCN: .set usage_direct_recursion.uses_flat_scratch, or(1, direct_recursion_use_stack.uses_flat_scratch)
-; GCN: .set usage_direct_recursion.has_dyn_sized_stack, or(0, direct_recursion_use_stack.has_dyn_sized_stack)
-; GCN: .set usage_direct_recursion.has_recursion, or(1, direct_recursion_use_stack.has_recursion)
-; GCN: .set usage_direct_recursion.has_indirect_call, or(0, direct_recursion_use_stack.has_indirect_call)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.num_vgpr, max(32, {{(.L)?}}direct_recursion_use_stack.num_vgpr)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.num_agpr, max(0, {{(.L)?}}direct_recursion_use_stack.num_agpr)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.numbered_sgpr, max(33, {{(.L)?}}direct_recursion_use_stack.numbered_sgpr)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.private_seg_size, 0+max({{(\.L)?}}direct_recursion_use_stack.private_seg_size)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.uses_vcc, or(1, {{(.L)?}}direct_recursion_use_stack.uses_vcc)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.uses_flat_scratch, or(1, {{(.L)?}}direct_recursion_use_stack.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.has_dyn_sized_stack, or(0, {{(.L)?}}direct_recursion_use_stack.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.has_recursion, or(1, {{(.L)?}}direct_recursion_use_stack.has_recursion)
+; GCN: .set {{(\.L)?}}usage_direct_recursion.has_indirect_call, or(0, {{(.L)?}}direct_recursion_use_stack.has_indirect_call)
; GCN: TotalNumSgprs: 42
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2064
@@ -482,28 +483,28 @@ define amdgpu_kernel void @usage_direct_recursion(i32 %n) #0 {
}
; GCN-LABEL: {{^}}multi_stage_recurse2:
-; GCN: .set multi_stage_recurse2.num_vgpr, max(43, multi_stage_recurse1.num_vgpr)
-; GCN: .set multi_stage_recurse2.num_agpr, max(0, multi_stage_recurse1.num_agpr)
-; GCN: .set multi_stage_recurse2.numbered_sgpr, max(34, multi_stage_recurse1.numbered_sgpr)
-; GCN: .set multi_stage_recurse2.private_seg_size, 16+max(multi_stage_recurse1.private_seg_size)
-; GCN: .set multi_stage_recurse2.uses_vcc, or(1, multi_stage_recurse1.uses_vcc)
-; GCN: .set multi_stage_recurse2.uses_flat_scratch, or(0, multi_stage_recurse1.uses_flat_scratch)
-; GCN: .set multi_stage_recurse2.has_dyn_sized_stack, or(0, multi_stage_recurse1.has_dyn_sized_stack)
-; GCN: .set multi_stage_recurse2.has_recursion, or(1, multi_stage_recurse1.has_recursion)
-; GCN: .set multi_stage_recurse2.has_indirect_call, or(0, multi_stage_recurse1.has_indirect_call)
-; GCN: TotalNumSgprs: multi_stage_recurse2.numbered_sgpr+extrasgprs(multi_stage_recurse2.uses_vcc, multi_stage_recurse2.uses_flat_scratch, 1)
-; GCN: NumVgprs: max(43, multi_stage_recurse1.num_vgpr)
-; GCN: ScratchSize: 16+max(multi_stage_recurse1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.num_vgpr, max(43, {{(.L)?}}multi_stage_recurse1.num_vgpr)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.num_agpr, max(0, {{(.L)?}}multi_stage_recurse1.num_agpr)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.numbered_sgpr, max(34, {{(.L)?}}multi_stage_recurse1.numbered_sgpr)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.private_seg_size, 16+max({{(\.L)?}}multi_stage_recurse1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse1.uses_vcc)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.uses_flat_scratch, or(0, {{(.L)?}}multi_stage_recurse1.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse1.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.has_recursion, or(1, {{(.L)?}}multi_stage_recurse1.has_recursion)
+; GCN: .set {{(\.L)?}}multi_stage_recurse2.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse1.has_indirect_call)
+; GCN: TotalNumSgprs: {{(\.L)?}}multi_stage_recurse2.numbered_sgpr+extrasgprs({{(\.L)?}}multi_stage_recurse2.uses_vcc, {{(.L)?}}multi_stage_recurse2.uses_flat_scratch, 1)
+; GCN: NumVgprs: max(43, {{(\.L)?}}multi_stage_recurse1.num_vgpr)
+; GCN: ScratchSize: 16+max({{(\.L)?}}multi_stage_recurse1.private_seg_size)
; GCN-LABEL: {{^}}multi_stage_recurse1:
-; GCN: .set multi_stage_recurse1.num_vgpr, max(48, 43)
-; GCN: .set multi_stage_recurse1.num_agpr, max(0, 0)
-; GCN: .set multi_stage_recurse1.numbered_sgpr, max(34, 34)
-; GCN: .set multi_stage_recurse1.private_seg_size, 16
-; GCN: .set multi_stage_recurse1.uses_vcc, 1
-; GCN: .set multi_stage_recurse1.uses_flat_scratch, 0
-; GCN: .set multi_stage_recurse1.has_dyn_sized_stack, 0
-; GCN: .set multi_stage_recurse1.has_recursion, 1
-; GCN: .set multi_stage_recurse1.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.num_vgpr, max(48, 43)
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.num_agpr, max(0, 0)
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.numbered_sgpr, max(34, 34)
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.private_seg_size, 16
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.uses_vcc, 1
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.has_recursion, 1
+; GCN: .set {{(\.L)?}}multi_stage_recurse1.has_indirect_call, 0
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 48
; GCN: ScratchSize: 16
@@ -519,15 +520,15 @@ define void @multi_stage_recurse2(i32 %val) #2 {
}
; GCN-LABEL: {{^}}usage_multi_stage_recurse:
-; GCN: .set usage_multi_stage_recurse.num_vgpr, max(32, multi_stage_recurse1.num_vgpr)
-; GCN: .set usage_multi_stage_recurse.num_agpr, max(0, multi_stage_recurse1.num_agpr)
-; GCN: .set usage_multi_stage_recurse.numbered_sgpr, max(33, multi_stage_recurse1.numbered_sgpr)
-; GCN: .set usage_multi_stage_recurse.private_seg_size, 0+max(multi_stage_recurse1.private_seg_size)
-; GCN: .set usage_multi_stage_recurse.uses_vcc, or(1, multi_stage_recurse1.uses_vcc)
-; GCN: .set usage_multi_stage_recurse.uses_flat_scratch, or(1, multi_stage_recurse1.uses_flat_scratch)
-; GCN: .set usage_multi_stage_recurse.has_dyn_sized_stack, or(0, multi_stage_recurse1.has_dyn_sized_stack)
-; GCN: .set usage_multi_stage_recurse.has_recursion, or(1, multi_stage_recurse1.has_recursion)
-; GCN: .set usage_multi_stage_recurse.has_indirect_call, or(0, multi_stage_recurse1.has_indirect_call)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.num_vgpr, max(32, {{(.L)?}}multi_stage_recurse1.num_vgpr)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.num_agpr, max(0, {{(.L)?}}multi_stage_recurse1.num_agpr)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.numbered_sgpr, max(33, {{(.L)?}}multi_stage_recurse1.numbered_sgpr)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.private_seg_size, 0+max({{(\.L)?}}multi_stage_recurse1.private_seg_size)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse1.uses_vcc)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.uses_flat_scratch, or(1, {{(.L)?}}multi_stage_recurse1.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse1.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.has_recursion, or(1, {{(.L)?}}multi_stage_recurse1.has_recursion)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse1.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 48
; GCN: ScratchSize: 16
@@ -537,28 +538,28 @@ define amdgpu_kernel void @usage_multi_stage_recurse(i32 %n) #0 {
}
; GCN-LABEL: {{^}}multi_stage_recurse_noattr2:
-; GCN: .set multi_stage_recurse_noattr2.num_vgpr, max(41, multi_stage_recurse_noattr1.num_vgpr)
-; GCN: .set multi_stage_recurse_noattr2.num_agpr, max(0, multi_stage_recurse_noattr1.num_agpr)
-; GCN: .set multi_stage_recurse_noattr2.numbered_sgpr, max(54, multi_stage_recurse_noattr1.numbered_sgpr)
-; GCN: .set multi_stage_recurse_noattr2.private_seg_size, 16+max(multi_stage_recurse_noattr1.private_seg_size)
-; GCN: .set multi_stage_recurse_noattr2.uses_vcc, or(1, multi_stage_recurse_noattr1.uses_vcc)
-; GCN: .set multi_stage_recurse_noattr2.uses_flat_scratch, or(0, multi_stage_recurse_noattr1.uses_flat_scratch)
-; GCN: .set multi_stage_recurse_noattr2.has_dyn_sized_stack, or(0, multi_stage_recurse_noattr1.has_dyn_sized_stack)
-; GCN: .set multi_stage_recurse_noattr2.has_recursion, or(0, multi_stage_recurse_noattr1.has_recursion)
-; GCN: .set multi_stage_recurse_noattr2.has_indirect_call, or(0, multi_stage_recurse_noattr1.has_indirect_call)
-; GCN: TotalNumSgprs: multi_stage_recurse_noattr2.numbered_sgpr+extrasgprs(multi_stage_recurse_noattr2.uses_vcc, multi_stage_recurse_noattr2.uses_flat_scratch, 1)
-; GCN: NumVgprs: max(41, multi_stage_recurse_noattr1.num_vgpr)
-; GCN: ScratchSize: 16+max(multi_stage_recurse_noattr1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.num_vgpr, max(41, {{(.L)?}}multi_stage_recurse_noattr1.num_vgpr)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.num_agpr, max(0, {{(.L)?}}multi_stage_recurse_noattr1.num_agpr)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.numbered_sgpr, max(54, {{(.L)?}}multi_stage_recurse_noattr1.numbered_sgpr)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.private_seg_size, 16+max({{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse_noattr1.uses_vcc)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.uses_flat_scratch, or(0, {{(.L)?}}multi_stage_recurse_noattr1.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.has_recursion, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_recursion)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_indirect_call)
+; GCN: TotalNumSgprs: {{(\.L)?}}multi_stage_recurse_noattr2.numbered_sgpr+extrasgprs({{(\.L)?}}multi_stage_recurse_noattr2.uses_vcc, {{(.L)?}}multi_stage_recurse_noattr2.uses_flat_scratch, 1)
+; GCN: NumVgprs: max(41, {{(\.L)?}}multi_stage_recurse_noattr1.num_vgpr)
+; GCN: ScratchSize: 16+max({{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size)
; GCN-LABEL: {{^}}multi_stage_recurse_noattr1:
-; GCN: .set multi_stage_recurse_noattr1.num_vgpr, max(41, 41)
-; GCN: .set multi_stage_recurse_noattr1.num_agpr, max(0, 0)
-; GCN: .set multi_stage_recurse_noattr1.numbered_sgpr, max(57, 54)
-; GCN: .set multi_stage_recurse_noattr1.private_seg_size, 16
-; GCN: .set multi_stage_recurse_noattr1.uses_vcc, 1
-; GCN: .set multi_stage_recurse_noattr1.uses_flat_scratch, 0
-; GCN: .set multi_stage_recurse_noattr1.has_dyn_sized_stack, 0
-; GCN: .set multi_stage_recurse_noattr1.has_recursion, 0
-; GCN: .set multi_stage_recurse_noattr1.has_indirect_call, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.num_vgpr, max(41, 41)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.num_agpr, max(0, 0)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.numbered_sgpr, max(57, 54)
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size, 16
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.uses_vcc, 1
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.uses_flat_scratch, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.has_dyn_sized_stack, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.has_recursion, 0
+; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.has_indirect_call, 0
; GCN: TotalNumSgprs: 61
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -574,15 +575,15 @@ define void @multi_stage_recurse_noattr2(i32 %val) #0 {
}
; GCN-LABEL: {{^}}usage_multi_stage_recurse_noattrs:
-; GCN: .set usage_multi_stage_recurse_noattrs.num_vgpr, max(32, multi_stage_recurse_noattr1.num_vgpr)
-; GCN: .set usage_multi_stage_recurse_noattrs.num_agpr, max(0, multi_stage_recurse_noattr1.num_agpr)
-; GCN: .set usage_multi_stage_recurse_noattrs.numbered_sgpr, max(33, multi_stage_recurse_noattr1.numbered_sgpr)
-; GCN: .set usage_multi_stage_recurse_noattrs.private_seg_size, 0+max(multi_stage_recurse_noattr1.private_seg_size)
-; GCN: .set usage_multi_stage_recurse_noattrs.uses_vcc, or(1, multi_stage_recurse_noattr1.uses_vcc)
-; GCN: .set usage_multi_stage_recurse_noattrs.uses_flat_scratch, or(1, multi_stage_recurse_noattr1.uses_flat_scratch)
-; GCN: .set usage_multi_stage_recurse_noattrs.has_dyn_sized_stack, or(0, multi_stage_recurse_noattr1.has_dyn_sized_stack)
-; GCN: .set usage_multi_stage_recurse_noattrs.has_recursion, or(0, multi_stage_recurse_noattr1.has_recursion)
-; GCN: .set usage_multi_stage_recurse_noattrs.has_indirect_call, or(0, multi_stage_recurse_noattr1.has_indirect_call)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.num_vgpr, max(32, {{(.L)?}}multi_stage_recurse_noattr1.num_vgpr)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.num_agpr, max(0, {{(.L)?}}multi_stage_recurse_noattr1.num_agpr)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.numbered_sgpr, max(33, {{(.L)?}}multi_stage_recurse_noattr1.numbered_sgpr)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.private_seg_size, 0+max({{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse_noattr1.uses_vcc)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.uses_flat_scratch, or(1, {{(.L)?}}multi_stage_recurse_noattr1.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.has_recursion, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_recursion)
+; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_indirect_call)
; GCN: TotalNumSgprs: 63
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -592,15 +593,15 @@ define amdgpu_kernel void @usage_multi_stage_recurse_noattrs(i32 %n) #0 {
}
; GCN-LABEL: {{^}}multi_call_with_multi_stage_recurse:
-; GCN: .set multi_call_with_multi_stage_recurse.num_vgpr, max(41, use_stack0.num_vgpr, use_stack1.num_vgpr, multi_stage_recurse1.num_vgpr)
-; GCN: .set multi_call_with_multi_stage_recurse.num_agpr, max(0, use_stack0.num_agpr, use_stack1.num_agpr, multi_stage_recurse1.num_agpr)
-; GCN: .set multi_call_with_multi_stage_recurse.numbered_sgpr, max(53, use_stack0.numbered_sgpr, use_stack1.numbered_sgpr, multi_stage_recurse1.numbered_sgpr)
-; GCN: .set multi_call_with_multi_stage_recurse.private_seg_size, 0+max(use_stack0.private_seg_size, use_stack1.private_seg_size, multi_stage_recurse1.private_seg_size)
-; GCN: .set multi_call_with_multi_stage_recurse.uses_vcc, or(1, use_stack0.uses_vcc, use_stack1.uses_vcc, multi_stage_recurse1.uses_vcc)
-; GCN: .set multi_call_with_multi_stage_recurse.uses_flat_scratch, or(1, use_stack0.uses_flat_scratch, use_stack1.uses_flat_scratch, multi_stage_recurse1.uses_flat_scratch)
-; GCN: .set multi_call_with_multi_stage_recurse.has_dyn_sized_stack, or(0, use_stack0.has_dyn_sized_stack, use_stack1.has_dyn_sized_stack, multi_stage_recurse1.has_dyn_sized_stack)
-; GCN: .set multi_call_with_multi_stage_recurse.has_recursion, or(1, use_stack0.has_recursion, use_stack1.has_recursion, multi_stage_recurse1.has_recursion)
-; GCN: .set multi_call_with_multi_stage_recurse.has_indirect_call, or(0, use_stack0.has_indirect_call, use_stack1.has_indirect_call, multi_stage_recurse1.has_indirect_call)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.num_vgpr, max(41, {{(.L)?}}use_stack0.num_vgpr, {{(.L)?}}use_stack1.num_vgpr, {{(\.L)?}}multi_stage_recurse1.num_vgpr)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.num_agpr, max(0, {{(.L)?}}use_stack0.num_agpr, {{(.L)?}}use_stack1.num_agpr, {{(\.L)?}}multi_stage_recurse1.num_agpr)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.numbered_sgpr, max(53, {{(.L)?}}use_stack0.numbered_sgpr, {{(.L)?}}use_stack1.numbered_sgpr, {{(\.L)?}}multi_stage_recurse1.numbered_sgpr)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size, {{(\.L)?}}multi_stage_recurse1.private_seg_size)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.uses_vcc, or(1, {{(.L)?}}use_stack0.uses_vcc, {{(.L)?}}use_stack1.uses_vcc, {{(\.L)?}}multi_stage_recurse1.uses_vcc)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.uses_flat_scratch, or(1, {{(.L)?}}use_stack0.uses_flat_scratch, {{(.L)?}}use_stack1.uses_flat_scratch, {{(\.L)?}}multi_stage_recurse1.uses_flat_scratch)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.has_dyn_sized_stack, or(0, {{(.L)?}}use_stack0.has_dyn_sized_stack, {{(.L)?}}use_stack1.has_dyn_sized_stack, {{(\.L)?}}multi_stage_recurse1.has_dyn_sized_stack)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.has_recursion, or(1, {{(.L)?}}use_stack0.has_recursion, {{(.L)?}}use_stack1.has_recursion, {{(\.L)?}}multi_stage_recurse1.has_recursion)
+; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.has_indirect_call, or(0, {{(.L)?}}use_stack0.has_indirect_call, {{(.L)?}}use_stack1.has_indirect_call, {{(\.L)?}}multi_stage_recurse1.has_indirect_call)
; GCN: TotalNumSgprs: 59
; GCN: NumVgprs: 48
; GCN: ScratchSize: 2052
@@ -613,17 +614,17 @@ define amdgpu_kernel void @multi_call_with_multi_stage_recurse(i32 %n) #0 {
; Make sure there's no assert when a sgpr96 is used.
; GCN-LABEL: {{^}}count_use_sgpr96_external_call
-; GCN: .set count_use_sgpr96_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set count_use_sgpr96_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set count_use_sgpr96_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set count_use_sgpr96_external_call.private_seg_size, 0
-; GCN: .set count_use_sgpr96_external_call.uses_vcc, 1
-; GCN: .set count_use_sgpr96_external_call.uses_flat_scratch, 1
-; GCN: .set count_use_sgpr96_external_call.has_dyn_sized_stack, 1
-; GCN: .set count_use_sgpr96_external_call.has_recursion, 0
-; GCN: .set count_use_sgpr96_external_call.has_indirect_call, 1
-; GCN: TotalNumSgprs: count_use_sgpr96_external_call.numbered_sgpr+6
-; GCN: NumVgprs: count_use_sgpr96_external_call.num_vgpr
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.private_seg_size, 0
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.uses_vcc, 1
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.has_recursion, 0
+; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}count_use_sgpr96_external_call.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}count_use_sgpr96_external_call.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @count_use_sgpr96_external_call() {
entry:
@@ -634,17 +635,17 @@ entry:
; Make sure there's no assert when a sgpr160 is used.
; GCN-LABEL: {{^}}count_use_sgpr160_external_call
-; GCN: .set count_use_sgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set count_use_sgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set count_use_sgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set count_use_sgpr160_external_call.private_seg_size, 0
-; GCN: .set count_use_sgpr160_external_call.uses_vcc, 1
-; GCN: .set count_use_sgpr160_external_call.uses_flat_scratch, 1
-; GCN: .set count_use_sgpr160_external_call.has_dyn_sized_stack, 1
-; GCN: .set count_use_sgpr160_external_call.has_recursion, 0
-; GCN: .set count_use_sgpr160_external_call.has_indirect_call, 1
-; GCN: TotalNumSgprs: count_use_sgpr160_external_call.numbered_sgpr+6
-; GCN: NumVgprs: count_use_sgpr160_external_call.num_vgpr
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.private_seg_size, 0
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.uses_vcc, 1
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.has_recursion, 0
+; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}count_use_sgpr160_external_call.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}count_use_sgpr160_external_call.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @count_use_sgpr160_external_call() {
entry:
@@ -655,17 +656,17 @@ entry:
; Make sure there's no assert when a vgpr160 is used.
; GCN-LABEL: {{^}}count_use_vgpr160_external_call
-; GCN: .set count_use_vgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set count_use_vgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set count_use_vgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set count_use_vgpr160_external_call.private_seg_size, 0
-; GCN: .set count_use_vgpr160_external_call.uses_vcc, 1
-; GCN: .set count_use_vgpr160_external_call.uses_flat_scratch, 1
-; GCN: .set count_use_vgpr160_external_call.has_dyn_sized_stack, 1
-; GCN: .set count_use_vgpr160_external_call.has_recursion, 0
-; GCN: .set count_use_vgpr160_external_call.has_indirect_call, 1
-; GCN: TotalNumSgprs: count_use_vgpr160_external_call.numbered_sgpr+6
-; GCN: NumVgprs: count_use_vgpr160_external_call.num_vgpr
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.private_seg_size, 0
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.uses_vcc, 1
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.uses_flat_scratch, 1
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.has_dyn_sized_stack, 1
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.has_recursion, 0
+; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.has_indirect_call, 1
+; GCN: TotalNumSgprs: {{(\.L)?}}count_use_vgpr160_external_call.numbered_sgpr+6
+; GCN: NumVgprs: {{(\.L)?}}count_use_vgpr160_external_call.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @count_use_vgpr160_external_call() {
entry:
@@ -676,7 +677,7 @@ entry:
; Test that amdgcn.device.init correctly references amdgpu.max_num_named_barrier
; GCN-LABEL: {{^}}amdgcn.device.init:
-; GCN: .set amdgcn.device.init.num_named_barrier, max(0, amdgpu.max_num_named_barrier)
+; GCN: .set {{(\.L)?}}amdgcn.device.init.num_named_barrier, max(0, amdgpu.max_num_named_barrier)
@llvm.global_ctors = appending addrspace(1) global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @ctor_func, ptr null }]
diff --git a/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll b/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
index 60bbf4646ee03..87a906e700975 100644
--- a/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
+++ b/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; Previously, this would hit an assertion on incompatible comparison between
; APInts due to BitWidth differences. This was due to assignment of DenseMap
diff --git a/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll b/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll
index 7a810d0067c17..918e2fd741d53 100644
--- a/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll
+++ b/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; CHECK-LABEL: {{^}}qux
; CHECK: .set qux.num_vgpr, 13
diff --git a/llvm/test/CodeGen/AMDGPU/recursion.ll b/llvm/test/CodeGen/AMDGPU/recursion.ll
index 9a2ec9cd53835..97c4cccfcf4d9 100644
--- a/llvm/test/CodeGen/AMDGPU/recursion.ll
+++ b/llvm/test/CodeGen/AMDGPU/recursion.ll
@@ -1,6 +1,6 @@
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 | FileCheck %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 | FileCheck %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
; CHECK-LABEL: {{^}}recursive:
; CHECK: .set recursive.private_seg_size, 16+max(16384)
diff --git a/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll b/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll
index a41a06592f62f..c3eb3d4602d50 100644
--- a/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll
+++ b/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; Recursion: foo -> bar -> baz -> qux -> foo
diff --git a/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll b/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
index afb77ed190896..755d59040896f 100644
--- a/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
+++ b/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -pass-remarks-output=%t -pass-remarks-analysis=kernel-resource-usage -filetype=null %s 2>&1 | FileCheck -check-prefix=STDERR %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -amdgpu-localize-resource-symbols=false -pass-remarks-output=%t -pass-remarks-analysis=kernel-resource-usage -filetype=null %s 2>&1 | FileCheck -check-prefix=STDERR %s
; RUN: FileCheck -check-prefix=REMARK %s < %t
; STDERR: remark: foo.cl:27:0: Function Name: test_kernel
diff --git a/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll b/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll
index 566eb1e14dc02..1711fe6934b36 100644
--- a/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll
+++ b/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll
@@ -1,6 +1,6 @@
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN,ALL %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN,ALL %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
; Make sure there's no assertion when trying to report the resource
; usage for a function which becomes dead during codegen.
diff --git a/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll b/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
index 9f3dfb01282bc..e8a5ebbf9f5ac 100644
--- a/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
+++ b/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
@@ -1,5 +1,5 @@
; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-exec-sync,amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=SOUT %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 -amdgpu-localize-resource-symbols=false -verify-machineinstrs -o - %s | FileCheck -check-prefixes=SOUT %s
%class.ExpAmdWorkgroupWaveBarrier = type { target("amdgcn.named.barrier", 0) }
diff --git a/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll b/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll
index bb0ec0d3ad3f8..5ef9fce3a67fd 100644
--- a/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll
+++ b/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
; CHECK-LABEL: __unnamed_1:
; CHECK: .set __unnamed_1.num_vgpr, 0
>From aa7574c401c81f18774864eff154d4668ce6da8d Mon Sep 17 00:00:00 2001
From: Janek van Oirschot <janek.vanoirschot at amd.com>
Date: Tue, 31 Mar 2026 15:15:04 +0100
Subject: [PATCH 2/3] Always localise
---
llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 50 +-
.../Target/AMDGPU/AMDGPUMCResourceInfo.cpp | 46 +-
llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h | 4 +-
.../CodeGen/AMDGPU/agpr-register-count.ll | 32 +-
.../amdpal-metadata-agpr-register-count.ll | 8 +-
...-amdgpu-flat-work-group-size-vgpr-limit.ll | 76 +-
.../AMDGPU/call-alias-register-usage-agpr.ll | 16 +-
.../AMDGPU/call-alias-register-usage0.ll | 8 +-
.../AMDGPU/call-alias-register-usage1.ll | 12 +-
.../AMDGPU/call-alias-register-usage2.ll | 12 +-
.../AMDGPU/call-alias-register-usage3.ll | 12 +-
.../AMDGPU/call-graph-register-usage.ll | 44 +-
llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll | 12 +-
.../dvgpr_sym_fail_too_many_block_size_16.ll | 4 +-
...pr_sym_fail_too_many_block_size_16_anon.ll | 4 +-
.../CodeGen/AMDGPU/function-resource-usage.ll | 674 +++++++++---------
...-knownbits-assign-crash-gh-issue-110930.ll | 380 +++++-----
.../multi-call-resource-usage-mcexpr.ll | 92 +--
llvm/test/CodeGen/AMDGPU/recursion.ll | 38 +-
.../AMDGPU/recursive-resource-usage-mcexpr.ll | 164 ++---
.../AMDGPU/resource-optimization-remarks.ll | 18 +-
.../AMDGPU/resource-usage-dead-function.ll | 10 +-
.../test/CodeGen/AMDGPU/s-barrier-lowering.ll | 10 +-
.../AMDGPU/unnamed-function-resource-info.ll | 56 +-
24 files changed, 880 insertions(+), 902 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
index 8bb45cd1ae618..72cb11202c221 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -391,7 +391,6 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
using RIK = MCResourceInfo::ResourceInfoKind;
const GCNSubtarget &STM = TM.getSubtarget<GCNSubtarget>(F);
MCSymbol *FnSym = TM.getSymbol(&F);
- bool IsLocal = F.hasLocalLinkage();
auto TryGetMCExprValue = [](const MCExpr *Value, uint64_t &Res) -> bool {
int64_t Val;
@@ -405,7 +404,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
const uint64_t MaxScratchPerWorkitem =
STM.getMaxWaveScratchSize() / STM.getWavefrontSize();
MCSymbol *ScratchSizeSymbol = RI.getSymbol(
- FnSym->getName(), RIK::RIK_PrivateSegSize, OutContext, IsLocal);
+ FnSym->getName(), RIK::RIK_PrivateSegSize, OutContext);
uint64_t ScratchSize;
if (ScratchSizeSymbol->isVariable() &&
TryGetMCExprValue(ScratchSizeSymbol->getVariableValue(), ScratchSize) &&
@@ -418,7 +417,7 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
// Validate addressable scalar registers (i.e., prior to added implicit
// SGPRs).
MCSymbol *NumSGPRSymbol =
- RI.getSymbol(FnSym->getName(), RIK::RIK_NumSGPR, OutContext, IsLocal);
+ RI.getSymbol(FnSym->getName(), RIK::RIK_NumSGPR, OutContext);
if (STM.getGeneration() >= AMDGPUSubtarget::VOLCANIC_ISLANDS &&
!STM.hasSGPRInitBug()) {
unsigned MaxAddressableNumSGPRs = STM.getAddressableNumSGPRs();
@@ -435,9 +434,9 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
}
MCSymbol *VCCUsedSymbol =
- RI.getSymbol(FnSym->getName(), RIK::RIK_UsesVCC, OutContext, IsLocal);
+ RI.getSymbol(FnSym->getName(), RIK::RIK_UsesVCC, OutContext);
MCSymbol *FlatUsedSymbol = RI.getSymbol(
- FnSym->getName(), RIK::RIK_UsesFlatScratch, OutContext, IsLocal);
+ FnSym->getName(), RIK::RIK_UsesFlatScratch, OutContext);
uint64_t VCCUsed, FlatUsed, NumSgpr;
if (NumSGPRSymbol->isVariable() && VCCUsedSymbol->isVariable() &&
@@ -464,9 +463,9 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
}
MCSymbol *NumVgprSymbol =
- RI.getSymbol(FnSym->getName(), RIK::RIK_NumVGPR, OutContext, IsLocal);
+ RI.getSymbol(FnSym->getName(), RIK::RIK_NumVGPR, OutContext);
MCSymbol *NumAgprSymbol =
- RI.getSymbol(FnSym->getName(), RIK::RIK_NumAGPR, OutContext, IsLocal);
+ RI.getSymbol(FnSym->getName(), RIK::RIK_NumAGPR, OutContext);
uint64_t NumVgpr, NumAgpr;
MachineModuleInfo &MMI =
@@ -693,7 +692,6 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
const GCNSubtarget &STM = MF.getSubtarget<GCNSubtarget>();
MCContext &Context = getObjFileLowering().getContext();
- bool IsLocal = MF.getFunction().hasLocalLinkage();
// FIXME: This should be an explicit check for Mesa.
if (!STM.isAmdHsaOS() && !STM.isAmdPalOS()) {
MCSectionELF *ConfigSection =
@@ -737,26 +735,22 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
{
using RIK = MCResourceInfo::ResourceInfoKind;
getTargetStreamer()->EmitMCResourceInfo(
- RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumVGPR, OutContext,
- IsLocal),
- RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumAGPR, OutContext,
- IsLocal),
- RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumSGPR, OutContext,
- IsLocal),
+ RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumVGPR, OutContext),
+ RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumAGPR, OutContext),
+ RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumSGPR, OutContext),
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumNamedBarrier,
- OutContext, IsLocal),
+ OutContext),
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_PrivateSegSize,
- OutContext, IsLocal),
- RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_UsesVCC, OutContext,
- IsLocal),
+ OutContext),
+ RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_UsesVCC, OutContext),
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_UsesFlatScratch,
- OutContext, IsLocal),
+ OutContext),
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_HasDynSizedStack,
- OutContext, IsLocal),
- RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_HasRecursion, OutContext,
- IsLocal),
+ OutContext),
+ RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_HasRecursion,
+ OutContext),
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_HasIndirectCall,
- OutContext, IsLocal));
+ OutContext));
}
// Emit _dvgpr$ symbol when appropriate.
@@ -772,12 +766,11 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
OutStreamer->emitRawComment(" Function info:", false);
emitCommonFunctionComments(
- RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumVGPR, OutContext,
- IsLocal)
+ RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumVGPR, OutContext)
->getVariableValue(),
STM.hasMAIInsts()
? RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumAGPR,
- OutContext, IsLocal)
+ OutContext)
->getVariableValue()
: nullptr,
RI.createTotalNumVGPRs(MF, Ctx),
@@ -786,7 +779,7 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
MF.getSubtarget<GCNSubtarget>().getTargetID().isXnackOnOrAny(),
Ctx),
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_PrivateSegSize,
- OutContext, IsLocal)
+ OutContext)
->getVariableValue(),
CurrentProgramInfo.getFunctionCodeSize(MF), MFI);
return false;
@@ -1003,7 +996,6 @@ static const MCExpr *computeAccumOffset(const MCExpr *NumVGPR, MCContext &Ctx) {
void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
const MachineFunction &MF) {
const GCNSubtarget &STM = MF.getSubtarget<GCNSubtarget>();
- bool IsLocal = MF.getFunction().hasLocalLinkage();
MCContext &Ctx = MF.getContext();
auto CreateExpr = [&Ctx](int64_t Value) {
@@ -1022,7 +1014,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
auto GetSymRefExpr =
[&](MCResourceInfo::ResourceInfoKind RIK) -> const MCExpr * {
MCSymbol *Sym =
- RI.getSymbol(CurrentFnSym->getName(), RIK, OutContext, IsLocal);
+ RI.getSymbol(CurrentFnSym->getName(), RIK, OutContext);
return MCSymbolRefExpr::create(Sym, Ctx);
};
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
index b923a6e64bfe3..e15a4a1b0e7f6 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
@@ -18,23 +18,16 @@
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSymbol.h"
-#include "llvm/Support/CommandLine.h"
#include "llvm/Target/TargetMachine.h"
#define DEBUG_TYPE "amdgpu-mc-resource-usage"
using namespace llvm;
-static cl::opt<bool> LocalizeResourceSymbols(
- "amdgpu-localize-resource-symbols", cl::Hidden,
- cl::desc("Localize all resource information symbols."), cl::init(true));
-
MCSymbol *MCResourceInfo::getSymbol(StringRef FuncName, ResourceInfoKind RIK,
- MCContext &OutContext, bool IsLocal) {
- auto GOCS = [FuncName, &OutContext, IsLocal](StringRef Suffix) {
- StringRef Prefix = LocalizeResourceSymbols || IsLocal
- ? OutContext.getAsmInfo()->getInternalSymbolPrefix()
- : "";
+ MCContext &OutContext) {
+ auto GOCS = [FuncName, &OutContext](StringRef Suffix) {
+ StringRef Prefix = OutContext.getAsmInfo()->getInternalSymbolPrefix();
return OutContext.getOrCreateSymbol(Twine(Prefix) + FuncName +
Twine(Suffix));
};
@@ -65,8 +58,8 @@ MCSymbol *MCResourceInfo::getSymbol(StringRef FuncName, ResourceInfoKind RIK,
const MCExpr *MCResourceInfo::getSymRefExpr(StringRef FuncName,
ResourceInfoKind RIK,
- MCContext &Ctx, bool IsLocal) {
- return MCSymbolRefExpr::create(getSymbol(FuncName, RIK, Ctx, IsLocal), Ctx);
+ MCContext &Ctx) {
+ return MCSymbolRefExpr::create(getSymbol(FuncName, RIK, Ctx), Ctx);
}
void MCResourceInfo::assignMaxRegs(MCContext &OutContext) {
@@ -196,12 +189,11 @@ void MCResourceInfo::assignResourceInfoExpr(
const MachineFunction &MF, const SmallVectorImpl<const Function *> &Callees,
MCContext &OutContext) {
const TargetMachine &TM = MF.getTarget();
- bool IsLocal = MF.getFunction().hasLocalLinkage();
MCSymbol *FnSym = TM.getSymbol(&MF.getFunction());
const MCConstantExpr *LocalConstExpr =
MCConstantExpr::create(LocalValue, OutContext);
const MCExpr *SymVal = LocalConstExpr;
- MCSymbol *Sym = getSymbol(FnSym->getName(), RIK, OutContext, IsLocal);
+ MCSymbol *Sym = getSymbol(FnSym->getName(), RIK, OutContext);
LLVM_DEBUG(dbgs() << "MCResUse: " << Sym->getName() << ": Adding "
<< LocalValue << " as function local usage\n");
if (!Callees.empty()) {
@@ -213,10 +205,9 @@ void MCResourceInfo::assignResourceInfoExpr(
if (!Seen.insert(Callee).second)
continue;
- bool IsCalleeLocal = Callee->hasLocalLinkage();
MCSymbol *CalleeFnSym = TM.getSymbol(&Callee->getFunction());
MCSymbol *CalleeValSym =
- getSymbol(CalleeFnSym->getName(), RIK, OutContext, IsCalleeLocal);
+ getSymbol(CalleeFnSym->getName(), RIK, OutContext);
// Avoid constructing recursive definitions by detecting whether `Sym` is
// found transitively within any of its `CalleeValSym`.
@@ -262,7 +253,6 @@ void MCResourceInfo::gatherResourceInfo(
MCSymbol *MaxVGPRSym = getMaxVGPRSymbol(OutContext);
MCSymbol *MaxAGPRSym = getMaxAGPRSymbol(OutContext);
MCSymbol *MaxSGPRSym = getMaxSGPRSymbol(OutContext);
- bool IsLocal = MF.getFunction().hasLocalLinkage();
MCSymbol *MaxNamedBarrierSym = getMaxNamedBarrierSymbol(OutContext);
if (!AMDGPU::isEntryFunctionCC(MF.getFunction().getCallingConv())) {
@@ -295,7 +285,7 @@ void MCResourceInfo::gatherResourceInfo(
} else {
const MCExpr *SymRef = MCSymbolRefExpr::create(MaxSym, OutContext);
MCSymbol *LocalNumSym =
- getSymbol(FnSym->getName(), RIK, OutContext, IsLocal);
+ getSymbol(FnSym->getName(), RIK, OutContext);
const MCExpr *MaxWithLocal = AMDGPUMCExpr::createMax(
{MCConstantExpr::create(numRegs, OutContext), SymRef}, OutContext);
LocalNumSym->setVariableValue(MaxWithLocal);
@@ -315,7 +305,7 @@ void MCResourceInfo::gatherResourceInfo(
// + max(FRI.Callees, FRI.CalleeSegmentSize)
SmallVector<const MCExpr *, 8> ArgExprs;
MCSymbol *Sym =
- getSymbol(FnSym->getName(), RIK_PrivateSegSize, OutContext, IsLocal);
+ getSymbol(FnSym->getName(), RIK_PrivateSegSize, OutContext);
if (FRI.CalleeSegmentSize) {
LLVM_DEBUG(dbgs() << "MCResUse: " << Sym->getName() << ": Adding "
<< FRI.CalleeSegmentSize
@@ -330,11 +320,9 @@ void MCResourceInfo::gatherResourceInfo(
if (!Seen.insert(Callee).second)
continue;
if (!Callee->isDeclaration()) {
- bool IsCalleeLocal = Callee->hasLocalLinkage();
MCSymbol *CalleeFnSym = TM.getSymbol(&Callee->getFunction());
MCSymbol *CalleeValSym =
- getSymbol(CalleeFnSym->getName(), RIK_PrivateSegSize, OutContext,
- IsCalleeLocal);
+ getSymbol(CalleeFnSym->getName(), RIK_PrivateSegSize, OutContext);
// Avoid constructing recursive definitions by detecting whether `Sym`
// is found transitively within any of its `CalleeValSym`.
@@ -362,7 +350,7 @@ void MCResourceInfo::gatherResourceInfo(
}
auto SetToLocal = [&](int64_t LocalValue, ResourceInfoKind RIK) {
- MCSymbol *Sym = getSymbol(FnSym->getName(), RIK, OutContext, IsLocal);
+ MCSymbol *Sym = getSymbol(FnSym->getName(), RIK, OutContext);
LLVM_DEBUG(
dbgs() << "MCResUse: " << Sym->getName() << ": Adding " << LocalValue
<< ", no further propagation as indirect callee found within\n");
@@ -397,10 +385,9 @@ const MCExpr *MCResourceInfo::createTotalNumVGPRs(const MachineFunction &MF,
MCContext &Ctx) {
const TargetMachine &TM = MF.getTarget();
MCSymbol *FnSym = TM.getSymbol(&MF.getFunction());
- bool IsLocal = MF.getFunction().hasLocalLinkage();
return AMDGPUMCExpr::createTotalNumVGPR(
- getSymRefExpr(FnSym->getName(), RIK_NumAGPR, Ctx, IsLocal),
- getSymRefExpr(FnSym->getName(), RIK_NumVGPR, Ctx, IsLocal), Ctx);
+ getSymRefExpr(FnSym->getName(), RIK_NumAGPR, Ctx),
+ getSymRefExpr(FnSym->getName(), RIK_NumVGPR, Ctx), Ctx);
}
const MCExpr *MCResourceInfo::createTotalNumSGPRs(const MachineFunction &MF,
@@ -408,12 +395,11 @@ const MCExpr *MCResourceInfo::createTotalNumSGPRs(const MachineFunction &MF,
MCContext &Ctx) {
const TargetMachine &TM = MF.getTarget();
MCSymbol *FnSym = TM.getSymbol(&MF.getFunction());
- bool IsLocal = MF.getFunction().hasLocalLinkage();
return MCBinaryExpr::createAdd(
- getSymRefExpr(FnSym->getName(), RIK_NumSGPR, Ctx, IsLocal),
+ getSymRefExpr(FnSym->getName(), RIK_NumSGPR, Ctx),
AMDGPUMCExpr::createExtraSGPRs(
- getSymRefExpr(FnSym->getName(), RIK_UsesVCC, Ctx, IsLocal),
- getSymRefExpr(FnSym->getName(), RIK_UsesFlatScratch, Ctx, IsLocal),
+ getSymRefExpr(FnSym->getName(), RIK_UsesVCC, Ctx),
+ getSymRefExpr(FnSym->getName(), RIK_UsesFlatScratch, Ctx),
hasXnack, Ctx),
Ctx);
}
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h
index b6055166698b3..5c1f59636446c 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h
@@ -82,9 +82,9 @@ class MCResourceInfo {
}
MCSymbol *getSymbol(StringRef FuncName, ResourceInfoKind RIK,
- MCContext &OutContext, bool IsLocal);
+ MCContext &OutContext);
const MCExpr *getSymRefExpr(StringRef FuncName, ResourceInfoKind RIK,
- MCContext &Ctx, bool IsLocal);
+ MCContext &Ctx);
void reset();
diff --git a/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll b/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
index e142ddd2abea4..dffde8d25c5f6 100644
--- a/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
+++ b/llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=amdgcn--amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx908 < %s | FileCheck -check-prefixes=GCN,GFX908 %s
-; RUN: llc -mtriple=amdgcn--amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx90a < %s | FileCheck -check-prefixes=GCN,GFX90A %s
+; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx908 < %s | FileCheck -check-prefixes=GCN,GFX908 %s
+; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=GCN,GFX90A %s
; GCN-LABEL: {{^}}kernel_32_agprs:
; GFX908: .amdhsa_next_free_vgpr 32
@@ -154,20 +154,20 @@ bb:
declare void @undef_func()
; GCN-LABEL: {{^}}kernel_call_undef_func:
-; GCN: .amdhsa_next_free_vgpr max(totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr), 1, 0)
-; GFX90A: .amdhsa_accum_offset (((((alignto(max(1, kernel_call_undef_func.num_vgpr), 4)/4)-1)&~65536)&63)+1)*4
-; GCN: .set kernel_call_undef_func.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set kernel_call_undef_func.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: NumVgprs: kernel_call_undef_func.num_vgpr
-; GCN: NumAgprs: kernel_call_undef_func.num_agpr
-; GCN: TotalNumVgprs: totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr)
-; GFX908: VGPRBlocks: (alignto(max(max(totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr), 1, 0), 1), 4)/4)-1
-; GFX90A: VGPRBlocks: (alignto(max(max(totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr), 1, 0), 1), 8)/8)-1
-; GCN: NumVGPRsForWavesPerEU: max(totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr), 1, 0)
-; GFX90A: AccumOffset: ((alignto(max(1, kernel_call_undef_func.num_vgpr), 4)/4)-1+1)*4
-; GFX908: Occupancy: occupancy(10, 4, 256, 8, 10, max(kernel_call_undef_func.numbered_sgpr+extrasgprs(kernel_call_undef_func.uses_vcc, kernel_call_undef_func.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr), 1, 0))
-; GFX90A: Occupancy: occupancy(8, 8, 512, 8, 8, max(kernel_call_undef_func.numbered_sgpr+extrasgprs(kernel_call_undef_func.uses_vcc, kernel_call_undef_func.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(kernel_call_undef_func.num_agpr, kernel_call_undef_func.num_vgpr), 1, 0))
-; GFX90A: COMPUTE_PGM_RSRC3_GFX90A:ACCUM_OFFSET: (((alignto(max(1, kernel_call_undef_func.num_vgpr), 4)/4)-1)&~65536)&63
+; GCN: .amdhsa_next_free_vgpr max(totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr), 1, 0)
+; GFX90A: .amdhsa_accum_offset (((((alignto(max(1, .Lkernel_call_undef_func.num_vgpr), 4)/4)-1)&~65536)&63)+1)*4
+; GCN: .set .Lkernel_call_undef_func.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set .Lkernel_call_undef_func.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: NumVgprs: .Lkernel_call_undef_func.num_vgpr
+; GCN: NumAgprs: .Lkernel_call_undef_func.num_agpr
+; GCN: TotalNumVgprs: totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr)
+; GFX908: VGPRBlocks: (alignto(max(max(totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr), 1, 0), 1), 4)/4)-1
+; GFX90A: VGPRBlocks: (alignto(max(max(totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr), 1, 0), 1), 8)/8)-1
+; GCN: NumVGPRsForWavesPerEU: max(totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr), 1, 0)
+; GFX90A: AccumOffset: ((alignto(max(1, .Lkernel_call_undef_func.num_vgpr), 4)/4)-1+1)*4
+; GFX908: Occupancy: occupancy(10, 4, 256, 8, 10, max(.Lkernel_call_undef_func.numbered_sgpr+extrasgprs(.Lkernel_call_undef_func.uses_vcc, .Lkernel_call_undef_func.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr), 1, 0))
+; GFX90A: Occupancy: occupancy(8, 8, 512, 8, 8, max(.Lkernel_call_undef_func.numbered_sgpr+extrasgprs(.Lkernel_call_undef_func.uses_vcc, .Lkernel_call_undef_func.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(.Lkernel_call_undef_func.num_agpr, .Lkernel_call_undef_func.num_vgpr), 1, 0))
+; GFX90A: COMPUTE_PGM_RSRC3_GFX90A:ACCUM_OFFSET: (((alignto(max(1, .Lkernel_call_undef_func.num_vgpr), 4)/4)-1)&~65536)&63
define amdgpu_kernel void @kernel_call_undef_func() #0 {
bb:
call void @undef_func()
diff --git a/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll b/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
index b1340298555a1..b05c65e73d734 100644
--- a/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
+++ b/llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=amdgcn--amdpal -amdgpu-localize-resource-symbols=false -mcpu=gfx90a < %s | FileCheck -check-prefixes=CHECK,GFX90A %s
-; RUN: llc -mtriple=amdgcn--amdpal -amdgpu-localize-resource-symbols=false -mcpu=gfx908 < %s | FileCheck -check-prefixes=CHECK,GFX908 %s
+; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx90a < %s | FileCheck -check-prefixes=CHECK,GFX90A %s
+; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx908 < %s | FileCheck -check-prefixes=CHECK,GFX908 %s
; COM: Adapted from agpr-register-count.ll
; COM: GFX900 and below should not have .agpr_count present in the metadata
@@ -60,8 +60,8 @@ bb:
declare void @undef_func()
; CHECK: .type kernel_call_undef_func
-; CHECK: .set kernel_call_undef_func.num_agpr, max(0, amdgpu.max_num_agpr)
-; CHECK: NumAgprs: kernel_call_undef_func.num_agpr
+; CHECK: .set .Lkernel_call_undef_func.num_agpr, max(0, amdgpu.max_num_agpr)
+; CHECK: NumAgprs: .Lkernel_call_undef_func.num_agpr
; CHECK: .set amdgpu.max_num_agpr, 32
define amdgpu_kernel void @kernel_call_undef_func() #0 {
bb:
diff --git a/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll b/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
index c36475b31446d..57784651591b8 100644
--- a/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
+++ b/llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
@@ -1,15 +1,15 @@
; -enable-misched=false makes the register usage more predictable
; -regalloc=fast just makes the test run faster
-; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX9
-; RUN: llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX90A
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE64
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-localize-resource-symbols=false -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE64
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE64
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE32
-; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-localize-resource-symbols=false -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX9
+; RUN: llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX90A
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10WGP-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX10CU-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11WGP-WAVE64
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+cumode -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE32
+; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+cumode,+wavefrontsize64 -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast -wwm-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX11CU-WAVE64
define internal void @use256vgprs() {
%v0 = call i32 asm sideeffect "; def $0", "=v"()
@@ -547,20 +547,20 @@ define amdgpu_kernel void @f256() #256 {
attributes #256 = { nounwind "amdgpu-flat-work-group-size"="256,256" }
; GCN-LABEL: {{^}}f512:
-; GFX9: .set f512.num_vgpr, max(128, amdgpu.max_num_vgpr)
-; GFX90A: .set f512.num_vgpr, max(128, amdgpu.max_num_vgpr)
-; GFX90A: .set f512.num_agpr, max(128, amdgpu.max_num_agpr)
-; GFX10WGP-WAVE32: .set f512.num_vgpr, max(256, amdgpu.max_num_vgpr)
-; GFX10WGP-WAVE64: .set f512.num_vgpr, max(256, amdgpu.max_num_vgpr)
-; GFX10CU-WAVE32: .set f512.num_vgpr, max(128, amdgpu.max_num_vgpr)
-; GFX10CU-WAVE64: .set f512.num_vgpr, max(128, amdgpu.max_num_vgpr)
-; GFX11WGP-WAVE32: .set f512.num_vgpr, max(256, amdgpu.max_num_vgpr)
-; GFX11WGP-WAVE64: .set f512.num_vgpr, max(256, amdgpu.max_num_vgpr)
-; GFX11CU-WAVE32: .set f512.num_vgpr, max(192, amdgpu.max_num_vgpr)
-; GFX11CU-WAVE64: .set f512.num_vgpr, max(192, amdgpu.max_num_vgpr)
-; GCN: NumVgprs: f512.num_vgpr
-; GFX90A: NumAgprs: f512.num_agpr
-; GFX90A: TotalNumVgprs: totalnumvgprs(f512.num_agpr, f512.num_vgpr)
+; GFX9: .set .Lf512.num_vgpr, max(128, amdgpu.max_num_vgpr)
+; GFX90A: .set .Lf512.num_vgpr, max(128, amdgpu.max_num_vgpr)
+; GFX90A: .set .Lf512.num_agpr, max(128, amdgpu.max_num_agpr)
+; GFX10WGP-WAVE32: .set .Lf512.num_vgpr, max(256, amdgpu.max_num_vgpr)
+; GFX10WGP-WAVE64: .set .Lf512.num_vgpr, max(256, amdgpu.max_num_vgpr)
+; GFX10CU-WAVE32: .set .Lf512.num_vgpr, max(128, amdgpu.max_num_vgpr)
+; GFX10CU-WAVE64: .set .Lf512.num_vgpr, max(128, amdgpu.max_num_vgpr)
+; GFX11WGP-WAVE32: .set .Lf512.num_vgpr, max(256, amdgpu.max_num_vgpr)
+; GFX11WGP-WAVE64: .set .Lf512.num_vgpr, max(256, amdgpu.max_num_vgpr)
+; GFX11CU-WAVE32: .set .Lf512.num_vgpr, max(192, amdgpu.max_num_vgpr)
+; GFX11CU-WAVE64: .set .Lf512.num_vgpr, max(192, amdgpu.max_num_vgpr)
+; GCN: NumVgprs: .Lf512.num_vgpr
+; GFX90A: NumAgprs: .Lf512.num_agpr
+; GFX90A: TotalNumVgprs: totalnumvgprs(.Lf512.num_agpr, .Lf512.num_vgpr)
define amdgpu_kernel void @f512() #512 {
call void @foo()
call void @use256vgprs()
@@ -569,20 +569,20 @@ define amdgpu_kernel void @f512() #512 {
attributes #512 = { nounwind "amdgpu-flat-work-group-size"="512,512" }
; GCN-LABEL: {{^}}f1024:
-; GFX9: .set f1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
-; GFX90A: .set f1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
-; GFX90A: .set f1024.num_agpr, max(64, amdgpu.max_num_agpr)
-; GFX10WGP-WAVE32: .set f1024.num_vgpr, max(128, amdgpu.max_num_vgpr)
-; GFX10WGP-WAVE64: .set f1024.num_vgpr, max(128, amdgpu.max_num_vgpr)
-; GFX10CU-WAVE32: .set f1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
-; GFX10CU-WAVE64: .set f1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
-; GFX11WGP-WAVE32: .set f1024.num_vgpr, max(192, amdgpu.max_num_vgpr)
-; GFX11WGP-WAVE64: .set f1024.num_vgpr, max(192, amdgpu.max_num_vgpr)
-; GFX11CU-WAVE32: .set f1024.num_vgpr, max(96, amdgpu.max_num_vgpr)
-; GFX11CU-WAVE64: .set f1024.num_vgpr, max(96, amdgpu.max_num_vgpr)
-; GCN: NumVgprs: f1024.num_vgpr
-; GFX90A: NumAgprs: f1024.num_agpr
-; GFX90A: TotalNumVgprs: totalnumvgprs(f1024.num_agpr, f1024.num_vgpr)
+; GFX9: .set .Lf1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
+; GFX90A: .set .Lf1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
+; GFX90A: .set .Lf1024.num_agpr, max(64, amdgpu.max_num_agpr)
+; GFX10WGP-WAVE32: .set .Lf1024.num_vgpr, max(128, amdgpu.max_num_vgpr)
+; GFX10WGP-WAVE64: .set .Lf1024.num_vgpr, max(128, amdgpu.max_num_vgpr)
+; GFX10CU-WAVE32: .set .Lf1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
+; GFX10CU-WAVE64: .set .Lf1024.num_vgpr, max(64, amdgpu.max_num_vgpr)
+; GFX11WGP-WAVE32: .set .Lf1024.num_vgpr, max(192, amdgpu.max_num_vgpr)
+; GFX11WGP-WAVE64: .set .Lf1024.num_vgpr, max(192, amdgpu.max_num_vgpr)
+; GFX11CU-WAVE32: .set .Lf1024.num_vgpr, max(96, amdgpu.max_num_vgpr)
+; GFX11CU-WAVE64: .set .Lf1024.num_vgpr, max(96, amdgpu.max_num_vgpr)
+; GCN: NumVgprs: .Lf1024.num_vgpr
+; GFX90A: NumAgprs: .Lf1024.num_agpr
+; GFX90A: TotalNumVgprs: totalnumvgprs(.Lf1024.num_agpr, .Lf1024.num_vgpr)
define amdgpu_kernel void @f1024() #1024 {
call void @foo()
call void @use256vgprs()
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll
index 1d8f5b2acd6d4..ce9f65eee2c3b 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage-agpr.ll
@@ -1,5 +1,5 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefix=ALL %s
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefixes=ALL,GFX90A %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 < %s | FileCheck -check-prefix=ALL %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=ALL,GFX90A %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
@@ -8,13 +8,13 @@
@alias = hidden alias void (), ptr @aliasee_default
; ALL-LABEL: {{^}}kernel:
-; ALL: .amdhsa_next_free_vgpr max(totalnumvgprs(kernel.num_agpr, kernel.num_vgpr), 1, 0)
-; ALL-NEXT: .amdhsa_next_free_sgpr max(kernel.numbered_sgpr+extrasgprs(kernel.uses_vcc, kernel.uses_flat_scratch, 1), 1, 0)-extrasgprs(kernel.uses_vcc, kernel.uses_flat_scratch, 1)
-; GFX90A-NEXT: .amdhsa_accum_offset (((((alignto(max(1, kernel.num_vgpr), 4)/4)-1)&~65536)&63)+1)*4
+; ALL: .amdhsa_next_free_vgpr max(totalnumvgprs(.Lkernel.num_agpr, .Lkernel.num_vgpr), 1, 0)
+; ALL-NEXT: .amdhsa_next_free_sgpr max(.Lkernel.numbered_sgpr+extrasgprs(.Lkernel.uses_vcc, .Lkernel.uses_flat_scratch, 1), 1, 0)-extrasgprs(.Lkernel.uses_vcc, .Lkernel.uses_flat_scratch, 1)
+; GFX90A-NEXT: .amdhsa_accum_offset (((((alignto(max(1, .Lkernel.num_vgpr), 4)/4)-1)&~65536)&63)+1)*4
-; ALL: .set kernel.num_vgpr, max(41, .Laliasee_default.num_vgpr)
-; ALL-NEXT: .set kernel.num_agpr, max(0, .Laliasee_default.num_agpr)
-; ALL-NEXT: .set kernel.numbered_sgpr, max(33, .Laliasee_default.numbered_sgpr)
+; ALL: .set .Lkernel.num_vgpr, max(41, .Laliasee_default.num_vgpr)
+; ALL-NEXT: .set .Lkernel.num_agpr, max(0, .Laliasee_default.num_agpr)
+; ALL-NEXT: .set .Lkernel.numbered_sgpr, max(33, .Laliasee_default.numbered_sgpr)
define amdgpu_kernel void @kernel() #0 {
bb:
call void @alias() #2
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll
index 2c2034f0c210c..b61e7d90d87bf 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage0.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
@@ -7,9 +7,9 @@
@alias0 = hidden alias void (), ptr @aliasee_default_vgpr64_sgpr102
; CHECK-LABEL: {{^}}kernel0:
-; CHECK: .set kernel0.num_vgpr, max(41, .Laliasee_default_vgpr64_sgpr102.num_vgpr)
-; CHECK-NEXT: .set kernel0.num_agpr, max(0, .Laliasee_default_vgpr64_sgpr102.num_agpr)
-; CHECK-NEXT: .set kernel0.numbered_sgpr, max(33, .Laliasee_default_vgpr64_sgpr102.numbered_sgpr)
+; CHECK: .set .Lkernel0.num_vgpr, max(41, .Laliasee_default_vgpr64_sgpr102.num_vgpr)
+; CHECK-NEXT: .set .Lkernel0.num_agpr, max(0, .Laliasee_default_vgpr64_sgpr102.num_agpr)
+; CHECK-NEXT: .set .Lkernel0.numbered_sgpr, max(33, .Laliasee_default_vgpr64_sgpr102.numbered_sgpr)
define amdgpu_kernel void @kernel0() #0 {
bb:
call void @alias0() #2
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll
index 2f33a0fbc9aaa..fe45043deaa0b 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage1.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
@@ -9,12 +9,12 @@
; The parent kernel has a higher VGPR usage than the possible callees.
; CHECK-LABEL: {{^}}kernel1:
-; CHECK: .amdhsa_next_free_vgpr max(totalnumvgprs(kernel1.num_agpr, kernel1.num_vgpr), 1, 0)
-; CHECK-NEXT: .amdhsa_next_free_sgpr max(kernel1.numbered_sgpr+extrasgprs(kernel1.uses_vcc, kernel1.uses_flat_scratch, 1), 1, 0)-extrasgprs(kernel1.uses_vcc, kernel1.uses_flat_scratch, 1)
+; CHECK: .amdhsa_next_free_vgpr max(totalnumvgprs(.Lkernel1.num_agpr, .Lkernel1.num_vgpr), 1, 0)
+; CHECK-NEXT: .amdhsa_next_free_sgpr max(.Lkernel1.numbered_sgpr+extrasgprs(.Lkernel1.uses_vcc, .Lkernel1.uses_flat_scratch, 1), 1, 0)-extrasgprs(.Lkernel1.uses_vcc, .Lkernel1.uses_flat_scratch, 1)
-; CHECK: .set kernel1.num_vgpr, max(42, .Laliasee_vgpr32_sgpr76.num_vgpr)
-; CHECK-NEXT: .set kernel1.num_agpr, max(0, .Laliasee_vgpr32_sgpr76.num_agpr)
-; CHECK-NEXT: .set kernel1.numbered_sgpr, max(33, .Laliasee_vgpr32_sgpr76.numbered_sgpr)
+; CHECK: .set .Lkernel1.num_vgpr, max(42, .Laliasee_vgpr32_sgpr76.num_vgpr)
+; CHECK-NEXT: .set .Lkernel1.num_agpr, max(0, .Laliasee_vgpr32_sgpr76.num_agpr)
+; CHECK-NEXT: .set .Lkernel1.numbered_sgpr, max(33, .Laliasee_vgpr32_sgpr76.numbered_sgpr)
define amdgpu_kernel void @kernel1() #0 {
bb:
call void asm sideeffect "; clobber v40 ", "~{v40}"()
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll
index 50fd29ef2ff6d..0dc2780ae0444 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage2.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
@@ -7,12 +7,12 @@
@alias2 = hidden alias void (), ptr @aliasee_vgpr64_sgpr102
; CHECK-LABEL: {{^}}kernel2:
-; CHECK: .amdhsa_next_free_vgpr max(totalnumvgprs(kernel2.num_agpr, kernel2.num_vgpr), 1, 0)
-; CHECK-NEXT: .amdhsa_next_free_sgpr max(kernel2.numbered_sgpr+extrasgprs(kernel2.uses_vcc, kernel2.uses_flat_scratch, 1), 1, 0)-extrasgprs(kernel2.uses_vcc, kernel2.uses_flat_scratch, 1)
+; CHECK: .amdhsa_next_free_vgpr max(totalnumvgprs(.Lkernel2.num_agpr, .Lkernel2.num_vgpr), 1, 0)
+; CHECK-NEXT: .amdhsa_next_free_sgpr max(.Lkernel2.numbered_sgpr+extrasgprs(.Lkernel2.uses_vcc, .Lkernel2.uses_flat_scratch, 1), 1, 0)-extrasgprs(.Lkernel2.uses_vcc, .Lkernel2.uses_flat_scratch, 1)
-; CHECK: .set kernel2.num_vgpr, max(41, .Laliasee_vgpr64_sgpr102.num_vgpr)
-; CHECK-NEXT: .set kernel2.num_agpr, max(0, .Laliasee_vgpr64_sgpr102.num_agpr)
-; CHECK-NEXT: .set kernel2.numbered_sgpr, max(33, .Laliasee_vgpr64_sgpr102.numbered_sgpr)
+; CHECK: .set .Lkernel2.num_vgpr, max(41, .Laliasee_vgpr64_sgpr102.num_vgpr)
+; CHECK-NEXT: .set .Lkernel2.num_agpr, max(0, .Laliasee_vgpr64_sgpr102.num_agpr)
+; CHECK-NEXT: .set .Lkernel2.numbered_sgpr, max(33, .Laliasee_vgpr64_sgpr102.numbered_sgpr)
define amdgpu_kernel void @kernel2() #0 {
bb:
call void @alias2() #2
diff --git a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll
index 3d99f02339536..1ea9e7f2f8fee 100644
--- a/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-alias-register-usage3.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -O0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck %s
; CallGraphAnalysis, which CodeGenSCC order depends on, does not look
; through aliases. If GlobalOpt is never run, we do not see direct
@@ -7,12 +7,12 @@
@alias3 = hidden alias void (), ptr @aliasee_vgpr256_sgpr102
; CHECK-LABEL: {{^}}kernel3:
-; CHECK: .amdhsa_next_free_vgpr max(totalnumvgprs(kernel3.num_agpr, kernel3.num_vgpr), 1, 0)
-; CHECK-NEXT: .amdhsa_next_free_sgpr max(kernel3.numbered_sgpr+extrasgprs(kernel3.uses_vcc, kernel3.uses_flat_scratch, 1), 1, 0)-extrasgprs(kernel3.uses_vcc, kernel3.uses_flat_scratch, 1)
+; CHECK: .amdhsa_next_free_vgpr max(totalnumvgprs(.Lkernel3.num_agpr, .Lkernel3.num_vgpr), 1, 0)
+; CHECK-NEXT: .amdhsa_next_free_sgpr max(.Lkernel3.numbered_sgpr+extrasgprs(.Lkernel3.uses_vcc, .Lkernel3.uses_flat_scratch, 1), 1, 0)-extrasgprs(.Lkernel3.uses_vcc, .Lkernel3.uses_flat_scratch, 1)
-; CHECK: .set kernel3.num_vgpr, max(41, .Laliasee_vgpr256_sgpr102.num_vgpr)
-; CHECK-NEXT: .set kernel3.num_agpr, max(0, .Laliasee_vgpr256_sgpr102.num_agpr)
-; CHECK-NEXT: .set kernel3.numbered_sgpr, max(33, .Laliasee_vgpr256_sgpr102.numbered_sgpr)
+; CHECK: .set .Lkernel3.num_vgpr, max(41, .Laliasee_vgpr256_sgpr102.num_vgpr)
+; CHECK-NEXT: .set .Lkernel3.num_agpr, max(0, .Laliasee_vgpr256_sgpr102.num_agpr)
+; CHECK-NEXT: .set .Lkernel3.numbered_sgpr, max(33, .Laliasee_vgpr256_sgpr102.numbered_sgpr)
define amdgpu_kernel void @kernel3() #0 {
bb:
call void @alias3() #2
diff --git a/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll b/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
index 9f0f0125b4cc8..9c08d5d093204 100644
--- a/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
+++ b/llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
@@ -1,13 +1,13 @@
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN,CI %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -enable-ipra=0 | FileCheck -check-prefixes=GCN-V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-NOBUG %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=iceland -enable-ipra=0 | FileCheck -check-prefixes=GCN,VI,VI-BUG %s
; Make sure to run a GPU with the SGPR allocation bug.
@@ -239,11 +239,11 @@ define amdgpu_kernel void @usage_direct_recursion(i32 %n) #0 {
; Make sure there's no assert when a sgpr96 is used.
; GCN-LABEL: {{^}}count_use_sgpr96_external_call
; GCN: ; sgpr96 s[{{[0-9]+}}:{{[0-9]+}}]
-; GCN: .set count_use_sgpr96_external_call.num_vgpr, max(0, amdgpu.max_num_vgpr)
-; GCN: .set count_use_sgpr96_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; CI: TotalNumSgprs: count_use_sgpr96_external_call.numbered_sgpr+4
+; GCN: .set .Lcount_use_sgpr96_external_call.num_vgpr, max(0, amdgpu.max_num_vgpr)
+; GCN: .set .Lcount_use_sgpr96_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; CI: TotalNumSgprs: .Lcount_use_sgpr96_external_call.numbered_sgpr+4
; VI-BUG: TotalNumSgprs: 96
-; GCN: NumVgprs: count_use_sgpr96_external_call.num_vgpr
+; GCN: NumVgprs: .Lcount_use_sgpr96_external_call.num_vgpr
define amdgpu_kernel void @count_use_sgpr96_external_call() {
entry:
tail call void asm sideeffect "; sgpr96 $0", "s"(<3 x i32> <i32 10, i32 11, i32 12>) #1
@@ -254,11 +254,11 @@ entry:
; Make sure there's no assert when a sgpr160 is used.
; GCN-LABEL: {{^}}count_use_sgpr160_external_call
; GCN: ; sgpr160 s[{{[0-9]+}}:{{[0-9]+}}]
-; GCN: .set count_use_sgpr160_external_call.num_vgpr, max(0, amdgpu.max_num_vgpr)
-; GCN: .set count_use_sgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; CI: TotalNumSgprs: count_use_sgpr160_external_call.numbered_sgpr+4
+; GCN: .set .Lcount_use_sgpr160_external_call.num_vgpr, max(0, amdgpu.max_num_vgpr)
+; GCN: .set .Lcount_use_sgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; CI: TotalNumSgprs: .Lcount_use_sgpr160_external_call.numbered_sgpr+4
; VI-BUG: TotalNumSgprs: 96
-; GCN: NumVgprs: count_use_sgpr160_external_call.num_vgpr
+; GCN: NumVgprs: .Lcount_use_sgpr160_external_call.num_vgpr
define amdgpu_kernel void @count_use_sgpr160_external_call() {
entry:
tail call void asm sideeffect "; sgpr160 $0", "s"(<5 x i32> <i32 10, i32 11, i32 12, i32 13, i32 14>) #1
@@ -269,11 +269,11 @@ entry:
; Make sure there's no assert when a vgpr160 is used.
; GCN-LABEL: {{^}}count_use_vgpr160_external_call
; GCN: ; vgpr160 v[{{[0-9]+}}:{{[0-9]+}}]
-; GCN: .set count_use_vgpr160_external_call.num_vgpr, max(5, amdgpu.max_num_vgpr)
-; GCN: .set count_use_vgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; CI: TotalNumSgprs: count_use_vgpr160_external_call.numbered_sgpr+4
+; GCN: .set .Lcount_use_vgpr160_external_call.num_vgpr, max(5, amdgpu.max_num_vgpr)
+; GCN: .set .Lcount_use_vgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; CI: TotalNumSgprs: .Lcount_use_vgpr160_external_call.numbered_sgpr+4
; VI-BUG: TotalNumSgprs: 96
-; GCN: NumVgprs: count_use_vgpr160_external_call.num_vgpr
+; GCN: NumVgprs: .Lcount_use_vgpr160_external_call.num_vgpr
define amdgpu_kernel void @count_use_vgpr160_external_call() {
entry:
tail call void asm sideeffect "; vgpr160 $0", "v"(<5 x i32> <i32 10, i32 11, i32 12, i32 13, i32 14>) #1
diff --git a/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll b/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll
index fca125d57ce1d..2be7dc3ae7ac4 100644
--- a/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll
+++ b/llvm/test/CodeGen/AMDGPU/dvgpr_sym.ll
@@ -1,6 +1,6 @@
; Test generation of _dvgpr$ symbol for an amdgpu_cs_chain function with dynamic vgprs.
-; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefixes=DVGPR %s
+; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 < %s | FileCheck -check-prefixes=DVGPR %s
; Function with 0 VGPRs, which counts as 1 block.
;
@@ -14,7 +14,7 @@ define amdgpu_cs_chain void @func0() #0 {
; Function with 21 VGPRs, which is 2 blocks.
;
; DVGPR-LABEL: func21:
-; DVGPR: .set func21.num_vgpr, 21
+; DVGPR: .set .Lfunc21.num_vgpr, 21
; DVGPR: .set _dvgpr$func21, func21+8
;
define amdgpu_cs_chain void @func21(<13 x float> %arg) #0 {
@@ -25,7 +25,7 @@ define amdgpu_cs_chain void @func21(<13 x float> %arg) #0 {
; Anonymous function with 87 VGPRs, which is 6 blocks.
;
; DVGPR: [[FUNC87:__unnamed[^:]*]]:
-; DVGPR: .set [[FUNC87]].num_vgpr, 87
+; DVGPR: .set .L[[FUNC87]].num_vgpr, 87
; DVGPR: .set _dvgpr$[[FUNC87]], [[FUNC87]]+40
;
define amdgpu_cs_chain void @0(<79 x float> %arg) #0 {
@@ -36,7 +36,7 @@ define amdgpu_cs_chain void @0(<79 x float> %arg) #0 {
; Function with 128 VGPRs, which is 8 blocks.
;
; DVGPR-LABEL: func128:
-; DVGPR: .set func128.num_vgpr, 128
+; DVGPR: .set .Lfunc128.num_vgpr, 128
; DVGPR: .set _dvgpr$func128, func128+56
;
define amdgpu_cs_chain void @func128(<120 x float> %arg) #0 {
@@ -47,7 +47,7 @@ define amdgpu_cs_chain void @func128(<120 x float> %arg) #0 {
; Function with 79 VGPRs, which is 3 blocks with a block size of 32.
;
; DVGPR-LABEL: func79:
-; DVGPR: .set func79.num_vgpr, 79
+; DVGPR: .set .Lfunc79.num_vgpr, 79
; DVGPR: .set _dvgpr$func79, func79+16
;
define amdgpu_cs_chain void @func79(<71 x float> %arg) #1 {
@@ -58,7 +58,7 @@ define amdgpu_cs_chain void @func79(<71 x float> %arg) #1 {
; Function with 225 VGPRs, which is 8 blocks with a block size of 32.
;
; DVGPR-LABEL: func225:
-; DVGPR: .set func225.num_vgpr, 225
+; DVGPR: .set .Lfunc225.num_vgpr, 225
; DVGPR: .set _dvgpr$func225, func225+56
;
define amdgpu_cs_chain void @func225(<217 x float> %arg) #1 {
diff --git a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
index 782fc61efd84f..4bd173c6eb885 100644
--- a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
+++ b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16.ll
@@ -1,10 +1,10 @@
; Test failure to generate the _dvgpr$ symbol for an amdgpu_cs_chain function with dynamic vgprs.
-; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -amdgpu-localize-resource-symbols=false < %s 2>&1 | FileCheck -check-prefixes=ERR %s
+; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 < %s 2>&1 | FileCheck -check-prefixes=ERR %s
; Function with 129 VGPRs, which is too many with a block size of 16.
;
-; ERR-DAG: .set func129.num_vgpr, 129
+; ERR-DAG: .set .Lfunc129.num_vgpr, 129
; ERR-DAG: too many DVGPR blocks for _dvgpr$ symbol for 'func129'
;
define amdgpu_cs_chain void @func129(<121 x float> %arg) #0 {
diff --git a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
index ab2c9ce630fc7..773fec2e68287 100644
--- a/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
+++ b/llvm/test/CodeGen/AMDGPU/dvgpr_sym_fail_too_many_block_size_16_anon.ll
@@ -1,10 +1,10 @@
; Test failure to generate the _dvgpr$ symbol for an anonymous amdgpu_cs_chain function with dynamic vgprs.
-; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 -amdgpu-localize-resource-symbols=false < %s 2>&1 | FileCheck -check-prefixes=ERR %s
+; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx1200 < %s 2>&1 | FileCheck -check-prefixes=ERR %s
; Anonymous function with 129 VGPRs, which is too many with a block size of 16.
;
-; ERR-DAG: .set __unnamed_1.num_vgpr, 129
+; ERR-DAG: .set .L__unnamed_1.num_vgpr, 129
; ERR-DAG: too many DVGPR blocks for _dvgpr$ symbol for '__unnamed_1'
;
define amdgpu_cs_chain void @0(<121 x float> %arg) #0 {
diff --git a/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll b/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
index a7094e79eba81..2c9778e1db5e5 100644
--- a/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
+++ b/llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
@@ -1,18 +1,18 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -enable-ipra=0 -amdgpu-localize-resource-symbols=false < %s | FileCheck -check-prefix=GCN %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -enable-ipra=0 < %s | FileCheck -check-prefix=GCN %s
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -enable-ipra=0 < %s | FileCheck -check-prefix=GCN %s
; Functions that don't make calls should have constants as its resource usage as no resource information has to be propagated.
; GCN-LABEL: {{^}}use_vcc:
-; GCN: .set {{(\.L)?}}use_vcc.num_vgpr, 0
-; GCN: .set {{(\.L)?}}use_vcc.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_vcc.numbered_sgpr, 32
-; GCN: .set {{(\.L)?}}use_vcc.private_seg_size, 0
-; GCN: .set {{(\.L)?}}use_vcc.uses_vcc, 1
-; GCN: .set {{(\.L)?}}use_vcc.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}use_vcc.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_vcc.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_vcc.has_indirect_call, 0
+; GCN: .set .Luse_vcc.num_vgpr, 0
+; GCN: .set .Luse_vcc.num_agpr, 0
+; GCN: .set .Luse_vcc.numbered_sgpr, 32
+; GCN: .set .Luse_vcc.private_seg_size, 0
+; GCN: .set .Luse_vcc.uses_vcc, 1
+; GCN: .set .Luse_vcc.uses_flat_scratch, 0
+; GCN: .set .Luse_vcc.has_dyn_sized_stack, 0
+; GCN: .set .Luse_vcc.has_recursion, 0
+; GCN: .set .Luse_vcc.has_indirect_call, 0
; GCN: TotalNumSgprs: 36
; GCN: NumVgprs: 0
; GCN: ScratchSize: 0
@@ -22,15 +22,15 @@ define void @use_vcc() #1 {
}
; GCN-LABEL: {{^}}indirect_use_vcc:
-; GCN: .set {{(\.L)?}}indirect_use_vcc.num_vgpr, max(41, {{(\.L)?}}use_vcc.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.num_agpr, max(0, {{(\.L)?}}use_vcc.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.numbered_sgpr, max(34, {{(\.L)?}}use_vcc.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.private_seg_size, 16+max({{(\.L)?}}use_vcc.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.uses_vcc, or(1, {{(\.L)?}}use_vcc.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.uses_flat_scratch, or(0, {{(\.L)?}}use_vcc.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.has_dyn_sized_stack, or(0, {{(\.L)?}}use_vcc.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.has_recursion, or(0, {{(\.L)?}}use_vcc.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_use_vcc.has_indirect_call, or(0, {{(\.L)?}}use_vcc.has_indirect_call)
+; GCN: .set .Lindirect_use_vcc.num_vgpr, max(41, .Luse_vcc.num_vgpr)
+; GCN: .set .Lindirect_use_vcc.num_agpr, max(0, .Luse_vcc.num_agpr)
+; GCN: .set .Lindirect_use_vcc.numbered_sgpr, max(34, .Luse_vcc.numbered_sgpr)
+; GCN: .set .Lindirect_use_vcc.private_seg_size, 16+max(.Luse_vcc.private_seg_size)
+; GCN: .set .Lindirect_use_vcc.uses_vcc, or(1, .Luse_vcc.uses_vcc)
+; GCN: .set .Lindirect_use_vcc.uses_flat_scratch, or(0, .Luse_vcc.uses_flat_scratch)
+; GCN: .set .Lindirect_use_vcc.has_dyn_sized_stack, or(0, .Luse_vcc.has_dyn_sized_stack)
+; GCN: .set .Lindirect_use_vcc.has_recursion, or(0, .Luse_vcc.has_recursion)
+; GCN: .set .Lindirect_use_vcc.has_indirect_call, or(0, .Luse_vcc.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -40,15 +40,15 @@ define void @indirect_use_vcc() #1 {
}
; GCN-LABEL: {{^}}indirect_2level_use_vcc_kernel:
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.num_vgpr, max(32, {{(\.L)?}}indirect_use_vcc.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.num_agpr, max(0, {{(\.L)?}}indirect_use_vcc.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.numbered_sgpr, max(33, {{(\.L)?}}indirect_use_vcc.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.private_seg_size, 0+max({{(\.L)?}}indirect_use_vcc.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.uses_vcc, or(1, {{(\.L)?}}indirect_use_vcc.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.uses_flat_scratch, or(1, {{(\.L)?}}indirect_use_vcc.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.has_dyn_sized_stack, or(0, {{(\.L)?}}indirect_use_vcc.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.has_recursion, or(0, {{(\.L)?}}indirect_use_vcc.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_2level_use_vcc_kernel.has_indirect_call, or(0, {{(\.L)?}}indirect_use_vcc.has_indirect_call)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.num_vgpr, max(32, .Lindirect_use_vcc.num_vgpr)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.num_agpr, max(0, .Lindirect_use_vcc.num_agpr)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.numbered_sgpr, max(33, .Lindirect_use_vcc.numbered_sgpr)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.private_seg_size, 0+max(.Lindirect_use_vcc.private_seg_size)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.uses_vcc, or(1, .Lindirect_use_vcc.uses_vcc)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.uses_flat_scratch, or(1, .Lindirect_use_vcc.uses_flat_scratch)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.has_dyn_sized_stack, or(0, .Lindirect_use_vcc.has_dyn_sized_stack)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.has_recursion, or(0, .Lindirect_use_vcc.has_recursion)
+; GCN: .set .Lindirect_2level_use_vcc_kernel.has_indirect_call, or(0, .Lindirect_use_vcc.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -58,15 +58,15 @@ define amdgpu_kernel void @indirect_2level_use_vcc_kernel(ptr addrspace(1) %out)
}
; GCN-LABEL: {{^}}use_flat_scratch:
-; GCN: .set {{(\.L)?}}use_flat_scratch.num_vgpr, 0
-; GCN: .set {{(\.L)?}}use_flat_scratch.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_flat_scratch.numbered_sgpr, 32
-; GCN: .set {{(\.L)?}}use_flat_scratch.private_seg_size, 0
-; GCN: .set {{(\.L)?}}use_flat_scratch.uses_vcc, 0
-; GCN: .set {{(\.L)?}}use_flat_scratch.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}use_flat_scratch.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_flat_scratch.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_flat_scratch.has_indirect_call, 0
+; GCN: .set .Luse_flat_scratch.num_vgpr, 0
+; GCN: .set .Luse_flat_scratch.num_agpr, 0
+; GCN: .set .Luse_flat_scratch.numbered_sgpr, 32
+; GCN: .set .Luse_flat_scratch.private_seg_size, 0
+; GCN: .set .Luse_flat_scratch.uses_vcc, 0
+; GCN: .set .Luse_flat_scratch.uses_flat_scratch, 1
+; GCN: .set .Luse_flat_scratch.has_dyn_sized_stack, 0
+; GCN: .set .Luse_flat_scratch.has_recursion, 0
+; GCN: .set .Luse_flat_scratch.has_indirect_call, 0
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 0
; GCN: ScratchSize: 0
@@ -76,15 +76,15 @@ define void @use_flat_scratch() #1 {
}
; GCN-LABEL: {{^}}indirect_use_flat_scratch:
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.num_vgpr, max(41, {{(.L)?}}use_flat_scratch.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.num_agpr, max(0, {{(.L)?}}use_flat_scratch.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.numbered_sgpr, max(34, {{(.L)?}}use_flat_scratch.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.private_seg_size, 16+max({{(\.L)?}}use_flat_scratch.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.uses_vcc, or(1, {{(.L)?}}use_flat_scratch.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.uses_flat_scratch, or(0, {{(.L)?}}use_flat_scratch.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.has_dyn_sized_stack, or(0, {{(.L)?}}use_flat_scratch.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.has_recursion, or(0, {{(.L)?}}use_flat_scratch.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_use_flat_scratch.has_indirect_call, or(0, {{(.L)?}}use_flat_scratch.has_indirect_call)
+; GCN: .set .Lindirect_use_flat_scratch.num_vgpr, max(41, .Luse_flat_scratch.num_vgpr)
+; GCN: .set .Lindirect_use_flat_scratch.num_agpr, max(0, .Luse_flat_scratch.num_agpr)
+; GCN: .set .Lindirect_use_flat_scratch.numbered_sgpr, max(34, .Luse_flat_scratch.numbered_sgpr)
+; GCN: .set .Lindirect_use_flat_scratch.private_seg_size, 16+max(.Luse_flat_scratch.private_seg_size)
+; GCN: .set .Lindirect_use_flat_scratch.uses_vcc, or(1, .Luse_flat_scratch.uses_vcc)
+; GCN: .set .Lindirect_use_flat_scratch.uses_flat_scratch, or(0, .Luse_flat_scratch.uses_flat_scratch)
+; GCN: .set .Lindirect_use_flat_scratch.has_dyn_sized_stack, or(0, .Luse_flat_scratch.has_dyn_sized_stack)
+; GCN: .set .Lindirect_use_flat_scratch.has_recursion, or(0, .Luse_flat_scratch.has_recursion)
+; GCN: .set .Lindirect_use_flat_scratch.has_indirect_call, or(0, .Luse_flat_scratch.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -94,15 +94,15 @@ define void @indirect_use_flat_scratch() #1 {
}
; GCN-LABEL: {{^}}indirect_2level_use_flat_scratch_kernel:
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.num_vgpr, max(32, {{(.L)?}}indirect_use_flat_scratch.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.num_agpr, max(0, {{(.L)?}}indirect_use_flat_scratch.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.numbered_sgpr, max(33, {{(.L)?}}indirect_use_flat_scratch.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.private_seg_size, 0+max({{(\.L)?}}indirect_use_flat_scratch.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.uses_vcc, or(1, {{(.L)?}}indirect_use_flat_scratch.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_flat_scratch.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_flat_scratch.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.has_recursion, or(0, {{(.L)?}}indirect_use_flat_scratch.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_2level_use_flat_scratch_kernel.has_indirect_call, or(0, {{(.L)?}}indirect_use_flat_scratch.has_indirect_call)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.num_vgpr, max(32, .Lindirect_use_flat_scratch.num_vgpr)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.num_agpr, max(0, .Lindirect_use_flat_scratch.num_agpr)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.numbered_sgpr, max(33, .Lindirect_use_flat_scratch.numbered_sgpr)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.private_seg_size, 0+max(.Lindirect_use_flat_scratch.private_seg_size)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.uses_vcc, or(1, .Lindirect_use_flat_scratch.uses_vcc)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.uses_flat_scratch, or(1, .Lindirect_use_flat_scratch.uses_flat_scratch)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.has_dyn_sized_stack, or(0, .Lindirect_use_flat_scratch.has_dyn_sized_stack)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.has_recursion, or(0, .Lindirect_use_flat_scratch.has_recursion)
+; GCN: .set .Lindirect_2level_use_flat_scratch_kernel.has_indirect_call, or(0, .Lindirect_use_flat_scratch.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -112,15 +112,15 @@ define amdgpu_kernel void @indirect_2level_use_flat_scratch_kernel(ptr addrspace
}
; GCN-LABEL: {{^}}use_10_vgpr:
-; GCN: .set {{(\.L)?}}use_10_vgpr.num_vgpr, 10
-; GCN: .set {{(\.L)?}}use_10_vgpr.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_10_vgpr.numbered_sgpr, 32
-; GCN: .set {{(\.L)?}}use_10_vgpr.private_seg_size, 0
-; GCN: .set {{(\.L)?}}use_10_vgpr.uses_vcc, 0
-; GCN: .set {{(\.L)?}}use_10_vgpr.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}use_10_vgpr.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_10_vgpr.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_10_vgpr.has_indirect_call, 0
+; GCN: .set .Luse_10_vgpr.num_vgpr, 10
+; GCN: .set .Luse_10_vgpr.num_agpr, 0
+; GCN: .set .Luse_10_vgpr.numbered_sgpr, 32
+; GCN: .set .Luse_10_vgpr.private_seg_size, 0
+; GCN: .set .Luse_10_vgpr.uses_vcc, 0
+; GCN: .set .Luse_10_vgpr.uses_flat_scratch, 0
+; GCN: .set .Luse_10_vgpr.has_dyn_sized_stack, 0
+; GCN: .set .Luse_10_vgpr.has_recursion, 0
+; GCN: .set .Luse_10_vgpr.has_indirect_call, 0
; GCN: TotalNumSgprs: 36
; GCN: NumVgprs: 10
; GCN: ScratchSize: 0
@@ -131,15 +131,15 @@ define void @use_10_vgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_use_10_vgpr:
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.num_vgpr, max(41, {{(.L)?}}use_10_vgpr.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.num_agpr, max(0, {{(.L)?}}use_10_vgpr.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.numbered_sgpr, max(34, {{(.L)?}}use_10_vgpr.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.private_seg_size, 16+max({{(\.L)?}}use_10_vgpr.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.uses_vcc, or(1, {{(.L)?}}use_10_vgpr.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.uses_flat_scratch, or(0, {{(.L)?}}use_10_vgpr.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.has_dyn_sized_stack, or(0, {{(.L)?}}use_10_vgpr.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.has_recursion, or(0, {{(.L)?}}use_10_vgpr.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_use_10_vgpr.has_indirect_call, or(0, {{(.L)?}}use_10_vgpr.has_indirect_call)
+; GCN: .set .Lindirect_use_10_vgpr.num_vgpr, max(41, .Luse_10_vgpr.num_vgpr)
+; GCN: .set .Lindirect_use_10_vgpr.num_agpr, max(0, .Luse_10_vgpr.num_agpr)
+; GCN: .set .Lindirect_use_10_vgpr.numbered_sgpr, max(34, .Luse_10_vgpr.numbered_sgpr)
+; GCN: .set .Lindirect_use_10_vgpr.private_seg_size, 16+max(.Luse_10_vgpr.private_seg_size)
+; GCN: .set .Lindirect_use_10_vgpr.uses_vcc, or(1, .Luse_10_vgpr.uses_vcc)
+; GCN: .set .Lindirect_use_10_vgpr.uses_flat_scratch, or(0, .Luse_10_vgpr.uses_flat_scratch)
+; GCN: .set .Lindirect_use_10_vgpr.has_dyn_sized_stack, or(0, .Luse_10_vgpr.has_dyn_sized_stack)
+; GCN: .set .Lindirect_use_10_vgpr.has_recursion, or(0, .Luse_10_vgpr.has_recursion)
+; GCN: .set .Lindirect_use_10_vgpr.has_indirect_call, or(0, .Luse_10_vgpr.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -149,15 +149,15 @@ define void @indirect_use_10_vgpr() #0 {
}
; GCN-LABEL: {{^}}indirect_2_level_use_10_vgpr:
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.num_vgpr, max(32, {{(.L)?}}indirect_use_10_vgpr.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.num_agpr, max(0, {{(.L)?}}indirect_use_10_vgpr.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.numbered_sgpr, max(33, {{(.L)?}}indirect_use_10_vgpr.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.private_seg_size, 0+max({{(\.L)?}}indirect_use_10_vgpr.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.uses_vcc, or(1, {{(.L)?}}indirect_use_10_vgpr.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_10_vgpr.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_10_vgpr.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.has_recursion, or(0, {{(.L)?}}indirect_use_10_vgpr.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_10_vgpr.has_indirect_call, or(0, {{(.L)?}}indirect_use_10_vgpr.has_indirect_call)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.num_vgpr, max(32, .Lindirect_use_10_vgpr.num_vgpr)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.num_agpr, max(0, .Lindirect_use_10_vgpr.num_agpr)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.numbered_sgpr, max(33, .Lindirect_use_10_vgpr.numbered_sgpr)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.private_seg_size, 0+max(.Lindirect_use_10_vgpr.private_seg_size)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.uses_vcc, or(1, .Lindirect_use_10_vgpr.uses_vcc)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.uses_flat_scratch, or(1, .Lindirect_use_10_vgpr.uses_flat_scratch)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.has_dyn_sized_stack, or(0, .Lindirect_use_10_vgpr.has_dyn_sized_stack)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.has_recursion, or(0, .Lindirect_use_10_vgpr.has_recursion)
+; GCN: .set .Lindirect_2_level_use_10_vgpr.has_indirect_call, or(0, .Lindirect_use_10_vgpr.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -167,15 +167,15 @@ define amdgpu_kernel void @indirect_2_level_use_10_vgpr() #0 {
}
; GCN-LABEL: {{^}}use_50_vgpr:
-; GCN: .set {{(\.L)?}}use_50_vgpr.num_vgpr, 50
-; GCN: .set {{(\.L)?}}use_50_vgpr.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_50_vgpr.numbered_sgpr, 32
-; GCN: .set {{(\.L)?}}use_50_vgpr.private_seg_size, 0
-; GCN: .set {{(\.L)?}}use_50_vgpr.uses_vcc, 0
-; GCN: .set {{(\.L)?}}use_50_vgpr.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}use_50_vgpr.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_50_vgpr.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_50_vgpr.has_indirect_call, 0
+; GCN: .set .Luse_50_vgpr.num_vgpr, 50
+; GCN: .set .Luse_50_vgpr.num_agpr, 0
+; GCN: .set .Luse_50_vgpr.numbered_sgpr, 32
+; GCN: .set .Luse_50_vgpr.private_seg_size, 0
+; GCN: .set .Luse_50_vgpr.uses_vcc, 0
+; GCN: .set .Luse_50_vgpr.uses_flat_scratch, 0
+; GCN: .set .Luse_50_vgpr.has_dyn_sized_stack, 0
+; GCN: .set .Luse_50_vgpr.has_recursion, 0
+; GCN: .set .Luse_50_vgpr.has_indirect_call, 0
; GCN: TotalNumSgprs: 36
; GCN: NumVgprs: 50
; GCN: ScratchSize: 0
@@ -185,15 +185,15 @@ define void @use_50_vgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_use_50_vgpr:
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.num_vgpr, max(41, {{(.L)?}}use_50_vgpr.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.num_agpr, max(0, {{(.L)?}}use_50_vgpr.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.numbered_sgpr, max(34, {{(.L)?}}use_50_vgpr.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.private_seg_size, 16+max({{(\.L)?}}use_50_vgpr.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.uses_vcc, or(1, {{(.L)?}}use_50_vgpr.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.uses_flat_scratch, or(0, {{(.L)?}}use_50_vgpr.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.has_dyn_sized_stack, or(0, {{(.L)?}}use_50_vgpr.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.has_recursion, or(0, {{(.L)?}}use_50_vgpr.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_use_50_vgpr.has_indirect_call, or(0, {{(.L)?}}use_50_vgpr.has_indirect_call)
+; GCN: .set .Lindirect_use_50_vgpr.num_vgpr, max(41, .Luse_50_vgpr.num_vgpr)
+; GCN: .set .Lindirect_use_50_vgpr.num_agpr, max(0, .Luse_50_vgpr.num_agpr)
+; GCN: .set .Lindirect_use_50_vgpr.numbered_sgpr, max(34, .Luse_50_vgpr.numbered_sgpr)
+; GCN: .set .Lindirect_use_50_vgpr.private_seg_size, 16+max(.Luse_50_vgpr.private_seg_size)
+; GCN: .set .Lindirect_use_50_vgpr.uses_vcc, or(1, .Luse_50_vgpr.uses_vcc)
+; GCN: .set .Lindirect_use_50_vgpr.uses_flat_scratch, or(0, .Luse_50_vgpr.uses_flat_scratch)
+; GCN: .set .Lindirect_use_50_vgpr.has_dyn_sized_stack, or(0, .Luse_50_vgpr.has_dyn_sized_stack)
+; GCN: .set .Lindirect_use_50_vgpr.has_recursion, or(0, .Luse_50_vgpr.has_recursion)
+; GCN: .set .Lindirect_use_50_vgpr.has_indirect_call, or(0, .Luse_50_vgpr.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 50
; GCN: ScratchSize: 16
@@ -203,15 +203,15 @@ define void @indirect_use_50_vgpr() #0 {
}
; GCN-LABEL: {{^}}use_80_sgpr:
-; GCN: .set {{(\.L)?}}use_80_sgpr.num_vgpr, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.numbered_sgpr, 80
-; GCN: .set {{(\.L)?}}use_80_sgpr.private_seg_size, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.uses_vcc, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_80_sgpr.has_indirect_call, 0
+; GCN: .set .Luse_80_sgpr.num_vgpr, 0
+; GCN: .set .Luse_80_sgpr.num_agpr, 0
+; GCN: .set .Luse_80_sgpr.numbered_sgpr, 80
+; GCN: .set .Luse_80_sgpr.private_seg_size, 0
+; GCN: .set .Luse_80_sgpr.uses_vcc, 0
+; GCN: .set .Luse_80_sgpr.uses_flat_scratch, 0
+; GCN: .set .Luse_80_sgpr.has_dyn_sized_stack, 0
+; GCN: .set .Luse_80_sgpr.has_recursion, 0
+; GCN: .set .Luse_80_sgpr.has_indirect_call, 0
; GCN: TotalNumSgprs: 84
; GCN: NumVgprs: 0
; GCN: ScratchSize: 0
@@ -221,15 +221,15 @@ define void @use_80_sgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_use_80_sgpr:
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.num_vgpr, max(41, {{(.L)?}}use_80_sgpr.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.num_agpr, max(0, {{(.L)?}}use_80_sgpr.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.numbered_sgpr, max(34, {{(.L)?}}use_80_sgpr.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.private_seg_size, 16+max({{(\.L)?}}use_80_sgpr.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.uses_vcc, or(1, {{(.L)?}}use_80_sgpr.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.uses_flat_scratch, or(0, {{(.L)?}}use_80_sgpr.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.has_dyn_sized_stack, or(0, {{(.L)?}}use_80_sgpr.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.has_recursion, or(0, {{(.L)?}}use_80_sgpr.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_use_80_sgpr.has_indirect_call, or(0, {{(.L)?}}use_80_sgpr.has_indirect_call)
+; GCN: .set .Lindirect_use_80_sgpr.num_vgpr, max(41, .Luse_80_sgpr.num_vgpr)
+; GCN: .set .Lindirect_use_80_sgpr.num_agpr, max(0, .Luse_80_sgpr.num_agpr)
+; GCN: .set .Lindirect_use_80_sgpr.numbered_sgpr, max(34, .Luse_80_sgpr.numbered_sgpr)
+; GCN: .set .Lindirect_use_80_sgpr.private_seg_size, 16+max(.Luse_80_sgpr.private_seg_size)
+; GCN: .set .Lindirect_use_80_sgpr.uses_vcc, or(1, .Luse_80_sgpr.uses_vcc)
+; GCN: .set .Lindirect_use_80_sgpr.uses_flat_scratch, or(0, .Luse_80_sgpr.uses_flat_scratch)
+; GCN: .set .Lindirect_use_80_sgpr.has_dyn_sized_stack, or(0, .Luse_80_sgpr.has_dyn_sized_stack)
+; GCN: .set .Lindirect_use_80_sgpr.has_recursion, or(0, .Luse_80_sgpr.has_recursion)
+; GCN: .set .Lindirect_use_80_sgpr.has_indirect_call, or(0, .Luse_80_sgpr.has_indirect_call)
; GCN: TotalNumSgprs: 84
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -239,15 +239,15 @@ define void @indirect_use_80_sgpr() #1 {
}
; GCN-LABEL: {{^}}indirect_2_level_use_80_sgpr:
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.num_vgpr, max(32, {{(.L)?}}indirect_use_80_sgpr.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.num_agpr, max(0, {{(.L)?}}indirect_use_80_sgpr.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.numbered_sgpr, max(33, {{(.L)?}}indirect_use_80_sgpr.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.private_seg_size, 0+max({{(\.L)?}}indirect_use_80_sgpr.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.uses_vcc, or(1, {{(.L)?}}indirect_use_80_sgpr.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_80_sgpr.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_80_sgpr.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.has_recursion, or(0, {{(.L)?}}indirect_use_80_sgpr.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_80_sgpr.has_indirect_call, or(0, {{(.L)?}}indirect_use_80_sgpr.has_indirect_call)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.num_vgpr, max(32, .Lindirect_use_80_sgpr.num_vgpr)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.num_agpr, max(0, .Lindirect_use_80_sgpr.num_agpr)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.numbered_sgpr, max(33, .Lindirect_use_80_sgpr.numbered_sgpr)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.private_seg_size, 0+max(.Lindirect_use_80_sgpr.private_seg_size)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.uses_vcc, or(1, .Lindirect_use_80_sgpr.uses_vcc)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.uses_flat_scratch, or(1, .Lindirect_use_80_sgpr.uses_flat_scratch)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.has_dyn_sized_stack, or(0, .Lindirect_use_80_sgpr.has_dyn_sized_stack)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.has_recursion, or(0, .Lindirect_use_80_sgpr.has_recursion)
+; GCN: .set .Lindirect_2_level_use_80_sgpr.has_indirect_call, or(0, .Lindirect_use_80_sgpr.has_indirect_call)
; GCN: TotalNumSgprs: 86
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -257,15 +257,15 @@ define amdgpu_kernel void @indirect_2_level_use_80_sgpr() #0 {
}
; GCN-LABEL: {{^}}use_stack0:
-; GCN: .set {{(\.L)?}}use_stack0.num_vgpr, 1
-; GCN: .set {{(\.L)?}}use_stack0.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_stack0.numbered_sgpr, 33
-; GCN: .set {{(\.L)?}}use_stack0.private_seg_size, 2052
-; GCN: .set {{(\.L)?}}use_stack0.uses_vcc, 0
-; GCN: .set {{(\.L)?}}use_stack0.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}use_stack0.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_stack0.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_stack0.has_indirect_call, 0
+; GCN: .set .Luse_stack0.num_vgpr, 1
+; GCN: .set .Luse_stack0.num_agpr, 0
+; GCN: .set .Luse_stack0.numbered_sgpr, 33
+; GCN: .set .Luse_stack0.private_seg_size, 2052
+; GCN: .set .Luse_stack0.uses_vcc, 0
+; GCN: .set .Luse_stack0.uses_flat_scratch, 0
+; GCN: .set .Luse_stack0.has_dyn_sized_stack, 0
+; GCN: .set .Luse_stack0.has_recursion, 0
+; GCN: .set .Luse_stack0.has_indirect_call, 0
; GCN: TotalNumSgprs: 37
; GCN: NumVgprs: 1
; GCN: ScratchSize: 2052
@@ -276,15 +276,15 @@ define void @use_stack0() #1 {
}
; GCN-LABEL: {{^}}use_stack1:
-; GCN: .set {{(\.L)?}}use_stack1.num_vgpr, 1
-; GCN: .set {{(\.L)?}}use_stack1.num_agpr, 0
-; GCN: .set {{(\.L)?}}use_stack1.numbered_sgpr, 33
-; GCN: .set {{(\.L)?}}use_stack1.private_seg_size, 404
-; GCN: .set {{(\.L)?}}use_stack1.uses_vcc, 0
-; GCN: .set {{(\.L)?}}use_stack1.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}use_stack1.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}use_stack1.has_recursion, 0
-; GCN: .set {{(\.L)?}}use_stack1.has_indirect_call, 0
+; GCN: .set .Luse_stack1.num_vgpr, 1
+; GCN: .set .Luse_stack1.num_agpr, 0
+; GCN: .set .Luse_stack1.numbered_sgpr, 33
+; GCN: .set .Luse_stack1.private_seg_size, 404
+; GCN: .set .Luse_stack1.uses_vcc, 0
+; GCN: .set .Luse_stack1.uses_flat_scratch, 0
+; GCN: .set .Luse_stack1.has_dyn_sized_stack, 0
+; GCN: .set .Luse_stack1.has_recursion, 0
+; GCN: .set .Luse_stack1.has_indirect_call, 0
; GCN: TotalNumSgprs: 37
; GCN: NumVgprs: 1
; GCN: ScratchSize: 404
@@ -295,15 +295,15 @@ define void @use_stack1() #1 {
}
; GCN-LABEL: {{^}}indirect_use_stack:
-; GCN: .set {{(\.L)?}}indirect_use_stack.num_vgpr, max(41, {{(.L)?}}use_stack0.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_use_stack.num_agpr, max(0, {{(.L)?}}use_stack0.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_use_stack.numbered_sgpr, max(34, {{(.L)?}}use_stack0.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_use_stack.private_seg_size, 80+max({{(\.L)?}}use_stack0.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_use_stack.uses_vcc, or(1, {{(.L)?}}use_stack0.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_use_stack.uses_flat_scratch, or(0, {{(.L)?}}use_stack0.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_use_stack.has_dyn_sized_stack, or(0, {{(.L)?}}use_stack0.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_use_stack.has_recursion, or(0, {{(.L)?}}use_stack0.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_use_stack.has_indirect_call, or(0, {{(.L)?}}use_stack0.has_indirect_call)
+; GCN: .set .Lindirect_use_stack.num_vgpr, max(41, .Luse_stack0.num_vgpr)
+; GCN: .set .Lindirect_use_stack.num_agpr, max(0, .Luse_stack0.num_agpr)
+; GCN: .set .Lindirect_use_stack.numbered_sgpr, max(34, .Luse_stack0.numbered_sgpr)
+; GCN: .set .Lindirect_use_stack.private_seg_size, 80+max(.Luse_stack0.private_seg_size)
+; GCN: .set .Lindirect_use_stack.uses_vcc, or(1, .Luse_stack0.uses_vcc)
+; GCN: .set .Lindirect_use_stack.uses_flat_scratch, or(0, .Luse_stack0.uses_flat_scratch)
+; GCN: .set .Lindirect_use_stack.has_dyn_sized_stack, or(0, .Luse_stack0.has_dyn_sized_stack)
+; GCN: .set .Lindirect_use_stack.has_recursion, or(0, .Luse_stack0.has_recursion)
+; GCN: .set .Lindirect_use_stack.has_indirect_call, or(0, .Luse_stack0.has_indirect_call)
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2132
@@ -315,15 +315,15 @@ define void @indirect_use_stack() #1 {
}
; GCN-LABEL: {{^}}indirect_2_level_use_stack:
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.num_vgpr, max(32, {{(.L)?}}indirect_use_stack.num_vgpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.num_agpr, max(0, {{(.L)?}}indirect_use_stack.num_agpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.numbered_sgpr, max(33, {{(.L)?}}indirect_use_stack.numbered_sgpr)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.private_seg_size, 0+max({{(\.L)?}}indirect_use_stack.private_seg_size)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.uses_vcc, or(1, {{(.L)?}}indirect_use_stack.uses_vcc)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.uses_flat_scratch, or(1, {{(.L)?}}indirect_use_stack.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.has_dyn_sized_stack, or(0, {{(.L)?}}indirect_use_stack.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.has_recursion, or(0, {{(.L)?}}indirect_use_stack.has_recursion)
-; GCN: .set {{(\.L)?}}indirect_2_level_use_stack.has_indirect_call, or(0, {{(.L)?}}indirect_use_stack.has_indirect_call)
+; GCN: .set .Lindirect_2_level_use_stack.num_vgpr, max(32, .Lindirect_use_stack.num_vgpr)
+; GCN: .set .Lindirect_2_level_use_stack.num_agpr, max(0, .Lindirect_use_stack.num_agpr)
+; GCN: .set .Lindirect_2_level_use_stack.numbered_sgpr, max(33, .Lindirect_use_stack.numbered_sgpr)
+; GCN: .set .Lindirect_2_level_use_stack.private_seg_size, 0+max(.Lindirect_use_stack.private_seg_size)
+; GCN: .set .Lindirect_2_level_use_stack.uses_vcc, or(1, .Lindirect_use_stack.uses_vcc)
+; GCN: .set .Lindirect_2_level_use_stack.uses_flat_scratch, or(1, .Lindirect_use_stack.uses_flat_scratch)
+; GCN: .set .Lindirect_2_level_use_stack.has_dyn_sized_stack, or(0, .Lindirect_use_stack.has_dyn_sized_stack)
+; GCN: .set .Lindirect_2_level_use_stack.has_recursion, or(0, .Lindirect_use_stack.has_recursion)
+; GCN: .set .Lindirect_2_level_use_stack.has_indirect_call, or(0, .Lindirect_use_stack.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2132
@@ -335,15 +335,15 @@ define amdgpu_kernel void @indirect_2_level_use_stack() #0 {
; Should be maximum of callee usage
; GCN-LABEL: {{^}}multi_call_use_use_stack:
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.num_vgpr, max(41, {{(.L)?}}use_stack0.num_vgpr, {{(.L)?}}use_stack1.num_vgpr)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.num_agpr, max(0, {{(.L)?}}use_stack0.num_agpr, {{(.L)?}}use_stack1.num_agpr)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.numbered_sgpr, max(52, {{(.L)?}}use_stack0.numbered_sgpr, {{(.L)?}}use_stack1.numbered_sgpr)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.uses_vcc, or(1, {{(.L)?}}use_stack0.uses_vcc, {{(.L)?}}use_stack1.uses_vcc)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.uses_flat_scratch, or(1, {{(.L)?}}use_stack0.uses_flat_scratch, {{(.L)?}}use_stack1.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.has_dyn_sized_stack, or(0, {{(.L)?}}use_stack0.has_dyn_sized_stack, {{(.L)?}}use_stack1.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.has_recursion, or(0, {{(.L)?}}use_stack0.has_recursion, {{(.L)?}}use_stack1.has_recursion)
-; GCN: .set {{(\.L)?}}multi_call_use_use_stack.has_indirect_call, or(0, {{(.L)?}}use_stack0.has_indirect_call, {{(.L)?}}use_stack1.has_indirect_call)
+; GCN: .set .Lmulti_call_use_use_stack.num_vgpr, max(41, .Luse_stack0.num_vgpr, .Luse_stack1.num_vgpr)
+; GCN: .set .Lmulti_call_use_use_stack.num_agpr, max(0, .Luse_stack0.num_agpr, .Luse_stack1.num_agpr)
+; GCN: .set .Lmulti_call_use_use_stack.numbered_sgpr, max(52, .Luse_stack0.numbered_sgpr, .Luse_stack1.numbered_sgpr)
+; GCN: .set .Lmulti_call_use_use_stack.private_seg_size, 0+max(.Luse_stack0.private_seg_size, .Luse_stack1.private_seg_size)
+; GCN: .set .Lmulti_call_use_use_stack.uses_vcc, or(1, .Luse_stack0.uses_vcc, .Luse_stack1.uses_vcc)
+; GCN: .set .Lmulti_call_use_use_stack.uses_flat_scratch, or(1, .Luse_stack0.uses_flat_scratch, .Luse_stack1.uses_flat_scratch)
+; GCN: .set .Lmulti_call_use_use_stack.has_dyn_sized_stack, or(0, .Luse_stack0.has_dyn_sized_stack, .Luse_stack1.has_dyn_sized_stack)
+; GCN: .set .Lmulti_call_use_use_stack.has_recursion, or(0, .Luse_stack0.has_recursion, .Luse_stack1.has_recursion)
+; GCN: .set .Lmulti_call_use_use_stack.has_indirect_call, or(0, .Luse_stack0.has_indirect_call, .Luse_stack1.has_indirect_call)
; GCN: TotalNumSgprs: 58
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2052
@@ -356,17 +356,17 @@ define amdgpu_kernel void @multi_call_use_use_stack() #0 {
declare void @external() #0
; GCN-LABEL: {{^}}multi_call_with_external:
-; GCN: .set {{(\.L)?}}multi_call_with_external.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}multi_call_with_external.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}multi_call_with_external.numbered_sgpr, max(52, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}multi_call_with_external.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size)
-; GCN: .set {{(\.L)?}}multi_call_with_external.uses_vcc, 1
-; GCN: .set {{(\.L)?}}multi_call_with_external.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}multi_call_with_external.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}multi_call_with_external.has_recursion, 0
-; GCN: .set {{(\.L)?}}multi_call_with_external.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}multi_call_with_external.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}multi_call_with_external.num_vgpr
+; GCN: .set .Lmulti_call_with_external.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; GCN: .set .Lmulti_call_with_external.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lmulti_call_with_external.numbered_sgpr, max(52, amdgpu.max_num_sgpr)
+; GCN: .set .Lmulti_call_with_external.private_seg_size, 0+max(.Luse_stack0.private_seg_size, .Luse_stack1.private_seg_size)
+; GCN: .set .Lmulti_call_with_external.uses_vcc, 1
+; GCN: .set .Lmulti_call_with_external.uses_flat_scratch, 1
+; GCN: .set .Lmulti_call_with_external.has_dyn_sized_stack, 1
+; GCN: .set .Lmulti_call_with_external.has_recursion, 0
+; GCN: .set .Lmulti_call_with_external.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lmulti_call_with_external.numbered_sgpr+6
+; GCN: NumVgprs: .Lmulti_call_with_external.num_vgpr
; GCN: ScratchSize: 2052
define amdgpu_kernel void @multi_call_with_external() #0 {
call void @use_stack0()
@@ -376,17 +376,17 @@ define amdgpu_kernel void @multi_call_with_external() #0 {
}
; GCN-LABEL: {{^}}multi_call_with_external_and_duplicates:
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.numbered_sgpr, max(54, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size)
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.uses_vcc, 1
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.has_recursion, 0
-; GCN: .set {{(\.L)?}}multi_call_with_external_and_duplicates.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}multi_call_with_external_and_duplicates.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}multi_call_with_external_and_duplicates.num_vgpr
+; GCN: .set .Lmulti_call_with_external_and_duplicates.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; GCN: .set .Lmulti_call_with_external_and_duplicates.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lmulti_call_with_external_and_duplicates.numbered_sgpr, max(54, amdgpu.max_num_sgpr)
+; GCN: .set .Lmulti_call_with_external_and_duplicates.private_seg_size, 0+max(.Luse_stack0.private_seg_size, .Luse_stack1.private_seg_size)
+; GCN: .set .Lmulti_call_with_external_and_duplicates.uses_vcc, 1
+; GCN: .set .Lmulti_call_with_external_and_duplicates.uses_flat_scratch, 1
+; GCN: .set .Lmulti_call_with_external_and_duplicates.has_dyn_sized_stack, 1
+; GCN: .set .Lmulti_call_with_external_and_duplicates.has_recursion, 0
+; GCN: .set .Lmulti_call_with_external_and_duplicates.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lmulti_call_with_external_and_duplicates.numbered_sgpr+6
+; GCN: NumVgprs: .Lmulti_call_with_external_and_duplicates.num_vgpr
; GCN: ScratchSize: 2052
define amdgpu_kernel void @multi_call_with_external_and_duplicates() #0 {
call void @use_stack0()
@@ -399,17 +399,17 @@ define amdgpu_kernel void @multi_call_with_external_and_duplicates() #0 {
}
; GCN-LABEL: {{^}}usage_external:
-; GCN: .set {{(\.L)?}}usage_external.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}usage_external.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}usage_external.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}usage_external.private_seg_size, 0
-; GCN: .set {{(\.L)?}}usage_external.uses_vcc, 1
-; GCN: .set {{(\.L)?}}usage_external.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}usage_external.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}usage_external.has_recursion, 0
-; GCN: .set {{(\.L)?}}usage_external.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}usage_external.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}usage_external.num_vgpr
+; GCN: .set .Lusage_external.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set .Lusage_external.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lusage_external.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set .Lusage_external.private_seg_size, 0
+; GCN: .set .Lusage_external.uses_vcc, 1
+; GCN: .set .Lusage_external.uses_flat_scratch, 1
+; GCN: .set .Lusage_external.has_dyn_sized_stack, 1
+; GCN: .set .Lusage_external.has_recursion, 0
+; GCN: .set .Lusage_external.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lusage_external.numbered_sgpr+6
+; GCN: NumVgprs: .Lusage_external.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @usage_external() #0 {
call void @external()
@@ -419,17 +419,17 @@ define amdgpu_kernel void @usage_external() #0 {
declare void @external_recurse() #2
; GCN-LABEL: {{^}}usage_external_recurse:
-; GCN: .set {{(\.L)?}}usage_external_recurse.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}usage_external_recurse.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}usage_external_recurse.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}usage_external_recurse.private_seg_size, 0
-; GCN: .set {{(\.L)?}}usage_external_recurse.uses_vcc, 1
-; GCN: .set {{(\.L)?}}usage_external_recurse.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}usage_external_recurse.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}usage_external_recurse.has_recursion, 1
-; GCN: .set {{(\.L)?}}usage_external_recurse.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}usage_external_recurse.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}usage_external_recurse.num_vgpr
+; GCN: .set .Lusage_external_recurse.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set .Lusage_external_recurse.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lusage_external_recurse.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set .Lusage_external_recurse.private_seg_size, 0
+; GCN: .set .Lusage_external_recurse.uses_vcc, 1
+; GCN: .set .Lusage_external_recurse.uses_flat_scratch, 1
+; GCN: .set .Lusage_external_recurse.has_dyn_sized_stack, 1
+; GCN: .set .Lusage_external_recurse.has_recursion, 1
+; GCN: .set .Lusage_external_recurse.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lusage_external_recurse.numbered_sgpr+6
+; GCN: NumVgprs: .Lusage_external_recurse.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @usage_external_recurse() #0 {
call void @external_recurse()
@@ -437,15 +437,15 @@ define amdgpu_kernel void @usage_external_recurse() #0 {
}
; GCN-LABEL: {{^}}direct_recursion_use_stack:
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.num_vgpr, 41
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.num_agpr, 0
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.numbered_sgpr, 36
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.private_seg_size, 2064
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.uses_vcc, 1
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.has_recursion, 1
-; GCN: .set {{(\.L)?}}direct_recursion_use_stack.has_indirect_call, 0
+; GCN: .set .Ldirect_recursion_use_stack.num_vgpr, 41
+; GCN: .set .Ldirect_recursion_use_stack.num_agpr, 0
+; GCN: .set .Ldirect_recursion_use_stack.numbered_sgpr, 36
+; GCN: .set .Ldirect_recursion_use_stack.private_seg_size, 2064
+; GCN: .set .Ldirect_recursion_use_stack.uses_vcc, 1
+; GCN: .set .Ldirect_recursion_use_stack.uses_flat_scratch, 0
+; GCN: .set .Ldirect_recursion_use_stack.has_dyn_sized_stack, 0
+; GCN: .set .Ldirect_recursion_use_stack.has_recursion, 1
+; GCN: .set .Ldirect_recursion_use_stack.has_indirect_call, 0
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2064
@@ -465,15 +465,15 @@ ret:
}
; GCN-LABEL: {{^}}usage_direct_recursion:
-; GCN: .set {{(\.L)?}}usage_direct_recursion.num_vgpr, max(32, {{(.L)?}}direct_recursion_use_stack.num_vgpr)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.num_agpr, max(0, {{(.L)?}}direct_recursion_use_stack.num_agpr)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.numbered_sgpr, max(33, {{(.L)?}}direct_recursion_use_stack.numbered_sgpr)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.private_seg_size, 0+max({{(\.L)?}}direct_recursion_use_stack.private_seg_size)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.uses_vcc, or(1, {{(.L)?}}direct_recursion_use_stack.uses_vcc)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.uses_flat_scratch, or(1, {{(.L)?}}direct_recursion_use_stack.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.has_dyn_sized_stack, or(0, {{(.L)?}}direct_recursion_use_stack.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.has_recursion, or(1, {{(.L)?}}direct_recursion_use_stack.has_recursion)
-; GCN: .set {{(\.L)?}}usage_direct_recursion.has_indirect_call, or(0, {{(.L)?}}direct_recursion_use_stack.has_indirect_call)
+; GCN: .set .Lusage_direct_recursion.num_vgpr, max(32, .Ldirect_recursion_use_stack.num_vgpr)
+; GCN: .set .Lusage_direct_recursion.num_agpr, max(0, .Ldirect_recursion_use_stack.num_agpr)
+; GCN: .set .Lusage_direct_recursion.numbered_sgpr, max(33, .Ldirect_recursion_use_stack.numbered_sgpr)
+; GCN: .set .Lusage_direct_recursion.private_seg_size, 0+max(.Ldirect_recursion_use_stack.private_seg_size)
+; GCN: .set .Lusage_direct_recursion.uses_vcc, or(1, .Ldirect_recursion_use_stack.uses_vcc)
+; GCN: .set .Lusage_direct_recursion.uses_flat_scratch, or(1, .Ldirect_recursion_use_stack.uses_flat_scratch)
+; GCN: .set .Lusage_direct_recursion.has_dyn_sized_stack, or(0, .Ldirect_recursion_use_stack.has_dyn_sized_stack)
+; GCN: .set .Lusage_direct_recursion.has_recursion, or(1, .Ldirect_recursion_use_stack.has_recursion)
+; GCN: .set .Lusage_direct_recursion.has_indirect_call, or(0, .Ldirect_recursion_use_stack.has_indirect_call)
; GCN: TotalNumSgprs: 42
; GCN: NumVgprs: 41
; GCN: ScratchSize: 2064
@@ -483,28 +483,28 @@ define amdgpu_kernel void @usage_direct_recursion(i32 %n) #0 {
}
; GCN-LABEL: {{^}}multi_stage_recurse2:
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.num_vgpr, max(43, {{(.L)?}}multi_stage_recurse1.num_vgpr)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.num_agpr, max(0, {{(.L)?}}multi_stage_recurse1.num_agpr)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.numbered_sgpr, max(34, {{(.L)?}}multi_stage_recurse1.numbered_sgpr)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.private_seg_size, 16+max({{(\.L)?}}multi_stage_recurse1.private_seg_size)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse1.uses_vcc)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.uses_flat_scratch, or(0, {{(.L)?}}multi_stage_recurse1.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse1.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.has_recursion, or(1, {{(.L)?}}multi_stage_recurse1.has_recursion)
-; GCN: .set {{(\.L)?}}multi_stage_recurse2.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse1.has_indirect_call)
-; GCN: TotalNumSgprs: {{(\.L)?}}multi_stage_recurse2.numbered_sgpr+extrasgprs({{(\.L)?}}multi_stage_recurse2.uses_vcc, {{(.L)?}}multi_stage_recurse2.uses_flat_scratch, 1)
-; GCN: NumVgprs: max(43, {{(\.L)?}}multi_stage_recurse1.num_vgpr)
-; GCN: ScratchSize: 16+max({{(\.L)?}}multi_stage_recurse1.private_seg_size)
+; GCN: .set .Lmulti_stage_recurse2.num_vgpr, max(43, .Lmulti_stage_recurse1.num_vgpr)
+; GCN: .set .Lmulti_stage_recurse2.num_agpr, max(0, .Lmulti_stage_recurse1.num_agpr)
+; GCN: .set .Lmulti_stage_recurse2.numbered_sgpr, max(34, .Lmulti_stage_recurse1.numbered_sgpr)
+; GCN: .set .Lmulti_stage_recurse2.private_seg_size, 16+max(.Lmulti_stage_recurse1.private_seg_size)
+; GCN: .set .Lmulti_stage_recurse2.uses_vcc, or(1, .Lmulti_stage_recurse1.uses_vcc)
+; GCN: .set .Lmulti_stage_recurse2.uses_flat_scratch, or(0, .Lmulti_stage_recurse1.uses_flat_scratch)
+; GCN: .set .Lmulti_stage_recurse2.has_dyn_sized_stack, or(0, .Lmulti_stage_recurse1.has_dyn_sized_stack)
+; GCN: .set .Lmulti_stage_recurse2.has_recursion, or(1, .Lmulti_stage_recurse1.has_recursion)
+; GCN: .set .Lmulti_stage_recurse2.has_indirect_call, or(0, .Lmulti_stage_recurse1.has_indirect_call)
+; GCN: TotalNumSgprs: .Lmulti_stage_recurse2.numbered_sgpr+extrasgprs(.Lmulti_stage_recurse2.uses_vcc, .Lmulti_stage_recurse2.uses_flat_scratch, 1)
+; GCN: NumVgprs: max(43, .Lmulti_stage_recurse1.num_vgpr)
+; GCN: ScratchSize: 16+max(.Lmulti_stage_recurse1.private_seg_size)
; GCN-LABEL: {{^}}multi_stage_recurse1:
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.num_vgpr, max(48, 43)
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.num_agpr, max(0, 0)
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.numbered_sgpr, max(34, 34)
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.private_seg_size, 16
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.uses_vcc, 1
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.has_recursion, 1
-; GCN: .set {{(\.L)?}}multi_stage_recurse1.has_indirect_call, 0
+; GCN: .set .Lmulti_stage_recurse1.num_vgpr, max(48, 43)
+; GCN: .set .Lmulti_stage_recurse1.num_agpr, max(0, 0)
+; GCN: .set .Lmulti_stage_recurse1.numbered_sgpr, max(34, 34)
+; GCN: .set .Lmulti_stage_recurse1.private_seg_size, 16
+; GCN: .set .Lmulti_stage_recurse1.uses_vcc, 1
+; GCN: .set .Lmulti_stage_recurse1.uses_flat_scratch, 0
+; GCN: .set .Lmulti_stage_recurse1.has_dyn_sized_stack, 0
+; GCN: .set .Lmulti_stage_recurse1.has_recursion, 1
+; GCN: .set .Lmulti_stage_recurse1.has_indirect_call, 0
; GCN: TotalNumSgprs: 38
; GCN: NumVgprs: 48
; GCN: ScratchSize: 16
@@ -520,15 +520,15 @@ define void @multi_stage_recurse2(i32 %val) #2 {
}
; GCN-LABEL: {{^}}usage_multi_stage_recurse:
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.num_vgpr, max(32, {{(.L)?}}multi_stage_recurse1.num_vgpr)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.num_agpr, max(0, {{(.L)?}}multi_stage_recurse1.num_agpr)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.numbered_sgpr, max(33, {{(.L)?}}multi_stage_recurse1.numbered_sgpr)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.private_seg_size, 0+max({{(\.L)?}}multi_stage_recurse1.private_seg_size)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse1.uses_vcc)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.uses_flat_scratch, or(1, {{(.L)?}}multi_stage_recurse1.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse1.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.has_recursion, or(1, {{(.L)?}}multi_stage_recurse1.has_recursion)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse1.has_indirect_call)
+; GCN: .set .Lusage_multi_stage_recurse.num_vgpr, max(32, .Lmulti_stage_recurse1.num_vgpr)
+; GCN: .set .Lusage_multi_stage_recurse.num_agpr, max(0, .Lmulti_stage_recurse1.num_agpr)
+; GCN: .set .Lusage_multi_stage_recurse.numbered_sgpr, max(33, .Lmulti_stage_recurse1.numbered_sgpr)
+; GCN: .set .Lusage_multi_stage_recurse.private_seg_size, 0+max(.Lmulti_stage_recurse1.private_seg_size)
+; GCN: .set .Lusage_multi_stage_recurse.uses_vcc, or(1, .Lmulti_stage_recurse1.uses_vcc)
+; GCN: .set .Lusage_multi_stage_recurse.uses_flat_scratch, or(1, .Lmulti_stage_recurse1.uses_flat_scratch)
+; GCN: .set .Lusage_multi_stage_recurse.has_dyn_sized_stack, or(0, .Lmulti_stage_recurse1.has_dyn_sized_stack)
+; GCN: .set .Lusage_multi_stage_recurse.has_recursion, or(1, .Lmulti_stage_recurse1.has_recursion)
+; GCN: .set .Lusage_multi_stage_recurse.has_indirect_call, or(0, .Lmulti_stage_recurse1.has_indirect_call)
; GCN: TotalNumSgprs: 40
; GCN: NumVgprs: 48
; GCN: ScratchSize: 16
@@ -538,28 +538,28 @@ define amdgpu_kernel void @usage_multi_stage_recurse(i32 %n) #0 {
}
; GCN-LABEL: {{^}}multi_stage_recurse_noattr2:
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.num_vgpr, max(41, {{(.L)?}}multi_stage_recurse_noattr1.num_vgpr)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.num_agpr, max(0, {{(.L)?}}multi_stage_recurse_noattr1.num_agpr)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.numbered_sgpr, max(54, {{(.L)?}}multi_stage_recurse_noattr1.numbered_sgpr)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.private_seg_size, 16+max({{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse_noattr1.uses_vcc)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.uses_flat_scratch, or(0, {{(.L)?}}multi_stage_recurse_noattr1.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.has_recursion, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_recursion)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr2.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_indirect_call)
-; GCN: TotalNumSgprs: {{(\.L)?}}multi_stage_recurse_noattr2.numbered_sgpr+extrasgprs({{(\.L)?}}multi_stage_recurse_noattr2.uses_vcc, {{(.L)?}}multi_stage_recurse_noattr2.uses_flat_scratch, 1)
-; GCN: NumVgprs: max(41, {{(\.L)?}}multi_stage_recurse_noattr1.num_vgpr)
-; GCN: ScratchSize: 16+max({{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size)
+; GCN: .set .Lmulti_stage_recurse_noattr2.num_vgpr, max(41, .Lmulti_stage_recurse_noattr1.num_vgpr)
+; GCN: .set .Lmulti_stage_recurse_noattr2.num_agpr, max(0, .Lmulti_stage_recurse_noattr1.num_agpr)
+; GCN: .set .Lmulti_stage_recurse_noattr2.numbered_sgpr, max(54, .Lmulti_stage_recurse_noattr1.numbered_sgpr)
+; GCN: .set .Lmulti_stage_recurse_noattr2.private_seg_size, 16+max(.Lmulti_stage_recurse_noattr1.private_seg_size)
+; GCN: .set .Lmulti_stage_recurse_noattr2.uses_vcc, or(1, .Lmulti_stage_recurse_noattr1.uses_vcc)
+; GCN: .set .Lmulti_stage_recurse_noattr2.uses_flat_scratch, or(0, .Lmulti_stage_recurse_noattr1.uses_flat_scratch)
+; GCN: .set .Lmulti_stage_recurse_noattr2.has_dyn_sized_stack, or(0, .Lmulti_stage_recurse_noattr1.has_dyn_sized_stack)
+; GCN: .set .Lmulti_stage_recurse_noattr2.has_recursion, or(0, .Lmulti_stage_recurse_noattr1.has_recursion)
+; GCN: .set .Lmulti_stage_recurse_noattr2.has_indirect_call, or(0, .Lmulti_stage_recurse_noattr1.has_indirect_call)
+; GCN: TotalNumSgprs: .Lmulti_stage_recurse_noattr2.numbered_sgpr+extrasgprs(.Lmulti_stage_recurse_noattr2.uses_vcc, .Lmulti_stage_recurse_noattr2.uses_flat_scratch, 1)
+; GCN: NumVgprs: max(41, .Lmulti_stage_recurse_noattr1.num_vgpr)
+; GCN: ScratchSize: 16+max(.Lmulti_stage_recurse_noattr1.private_seg_size)
; GCN-LABEL: {{^}}multi_stage_recurse_noattr1:
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.num_vgpr, max(41, 41)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.num_agpr, max(0, 0)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.numbered_sgpr, max(57, 54)
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size, 16
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.uses_vcc, 1
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.uses_flat_scratch, 0
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.has_dyn_sized_stack, 0
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.has_recursion, 0
-; GCN: .set {{(\.L)?}}multi_stage_recurse_noattr1.has_indirect_call, 0
+; GCN: .set .Lmulti_stage_recurse_noattr1.num_vgpr, max(41, 41)
+; GCN: .set .Lmulti_stage_recurse_noattr1.num_agpr, max(0, 0)
+; GCN: .set .Lmulti_stage_recurse_noattr1.numbered_sgpr, max(57, 54)
+; GCN: .set .Lmulti_stage_recurse_noattr1.private_seg_size, 16
+; GCN: .set .Lmulti_stage_recurse_noattr1.uses_vcc, 1
+; GCN: .set .Lmulti_stage_recurse_noattr1.uses_flat_scratch, 0
+; GCN: .set .Lmulti_stage_recurse_noattr1.has_dyn_sized_stack, 0
+; GCN: .set .Lmulti_stage_recurse_noattr1.has_recursion, 0
+; GCN: .set .Lmulti_stage_recurse_noattr1.has_indirect_call, 0
; GCN: TotalNumSgprs: 61
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -575,15 +575,15 @@ define void @multi_stage_recurse_noattr2(i32 %val) #0 {
}
; GCN-LABEL: {{^}}usage_multi_stage_recurse_noattrs:
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.num_vgpr, max(32, {{(.L)?}}multi_stage_recurse_noattr1.num_vgpr)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.num_agpr, max(0, {{(.L)?}}multi_stage_recurse_noattr1.num_agpr)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.numbered_sgpr, max(33, {{(.L)?}}multi_stage_recurse_noattr1.numbered_sgpr)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.private_seg_size, 0+max({{(\.L)?}}multi_stage_recurse_noattr1.private_seg_size)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.uses_vcc, or(1, {{(.L)?}}multi_stage_recurse_noattr1.uses_vcc)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.uses_flat_scratch, or(1, {{(.L)?}}multi_stage_recurse_noattr1.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.has_dyn_sized_stack, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.has_recursion, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_recursion)
-; GCN: .set {{(\.L)?}}usage_multi_stage_recurse_noattrs.has_indirect_call, or(0, {{(.L)?}}multi_stage_recurse_noattr1.has_indirect_call)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.num_vgpr, max(32, .Lmulti_stage_recurse_noattr1.num_vgpr)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.num_agpr, max(0, .Lmulti_stage_recurse_noattr1.num_agpr)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.numbered_sgpr, max(33, .Lmulti_stage_recurse_noattr1.numbered_sgpr)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.private_seg_size, 0+max(.Lmulti_stage_recurse_noattr1.private_seg_size)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.uses_vcc, or(1, .Lmulti_stage_recurse_noattr1.uses_vcc)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.uses_flat_scratch, or(1, .Lmulti_stage_recurse_noattr1.uses_flat_scratch)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.has_dyn_sized_stack, or(0, .Lmulti_stage_recurse_noattr1.has_dyn_sized_stack)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.has_recursion, or(0, .Lmulti_stage_recurse_noattr1.has_recursion)
+; GCN: .set .Lusage_multi_stage_recurse_noattrs.has_indirect_call, or(0, .Lmulti_stage_recurse_noattr1.has_indirect_call)
; GCN: TotalNumSgprs: 63
; GCN: NumVgprs: 41
; GCN: ScratchSize: 16
@@ -593,15 +593,15 @@ define amdgpu_kernel void @usage_multi_stage_recurse_noattrs(i32 %n) #0 {
}
; GCN-LABEL: {{^}}multi_call_with_multi_stage_recurse:
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.num_vgpr, max(41, {{(.L)?}}use_stack0.num_vgpr, {{(.L)?}}use_stack1.num_vgpr, {{(\.L)?}}multi_stage_recurse1.num_vgpr)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.num_agpr, max(0, {{(.L)?}}use_stack0.num_agpr, {{(.L)?}}use_stack1.num_agpr, {{(\.L)?}}multi_stage_recurse1.num_agpr)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.numbered_sgpr, max(53, {{(.L)?}}use_stack0.numbered_sgpr, {{(.L)?}}use_stack1.numbered_sgpr, {{(\.L)?}}multi_stage_recurse1.numbered_sgpr)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.private_seg_size, 0+max({{(\.L)?}}use_stack0.private_seg_size, {{(.L)?}}use_stack1.private_seg_size, {{(\.L)?}}multi_stage_recurse1.private_seg_size)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.uses_vcc, or(1, {{(.L)?}}use_stack0.uses_vcc, {{(.L)?}}use_stack1.uses_vcc, {{(\.L)?}}multi_stage_recurse1.uses_vcc)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.uses_flat_scratch, or(1, {{(.L)?}}use_stack0.uses_flat_scratch, {{(.L)?}}use_stack1.uses_flat_scratch, {{(\.L)?}}multi_stage_recurse1.uses_flat_scratch)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.has_dyn_sized_stack, or(0, {{(.L)?}}use_stack0.has_dyn_sized_stack, {{(.L)?}}use_stack1.has_dyn_sized_stack, {{(\.L)?}}multi_stage_recurse1.has_dyn_sized_stack)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.has_recursion, or(1, {{(.L)?}}use_stack0.has_recursion, {{(.L)?}}use_stack1.has_recursion, {{(\.L)?}}multi_stage_recurse1.has_recursion)
-; GCN: .set {{(\.L)?}}multi_call_with_multi_stage_recurse.has_indirect_call, or(0, {{(.L)?}}use_stack0.has_indirect_call, {{(.L)?}}use_stack1.has_indirect_call, {{(\.L)?}}multi_stage_recurse1.has_indirect_call)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.num_vgpr, max(41, .Luse_stack0.num_vgpr, .Luse_stack1.num_vgpr, .Lmulti_stage_recurse1.num_vgpr)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.num_agpr, max(0, .Luse_stack0.num_agpr, .Luse_stack1.num_agpr, .Lmulti_stage_recurse1.num_agpr)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.numbered_sgpr, max(53, .Luse_stack0.numbered_sgpr, .Luse_stack1.numbered_sgpr, .Lmulti_stage_recurse1.numbered_sgpr)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.private_seg_size, 0+max(.Luse_stack0.private_seg_size, .Luse_stack1.private_seg_size, .Lmulti_stage_recurse1.private_seg_size)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.uses_vcc, or(1, .Luse_stack0.uses_vcc, .Luse_stack1.uses_vcc, .Lmulti_stage_recurse1.uses_vcc)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.uses_flat_scratch, or(1, .Luse_stack0.uses_flat_scratch, .Luse_stack1.uses_flat_scratch, .Lmulti_stage_recurse1.uses_flat_scratch)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.has_dyn_sized_stack, or(0, .Luse_stack0.has_dyn_sized_stack, .Luse_stack1.has_dyn_sized_stack, .Lmulti_stage_recurse1.has_dyn_sized_stack)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.has_recursion, or(1, .Luse_stack0.has_recursion, .Luse_stack1.has_recursion, .Lmulti_stage_recurse1.has_recursion)
+; GCN: .set .Lmulti_call_with_multi_stage_recurse.has_indirect_call, or(0, .Luse_stack0.has_indirect_call, .Luse_stack1.has_indirect_call, .Lmulti_stage_recurse1.has_indirect_call)
; GCN: TotalNumSgprs: 59
; GCN: NumVgprs: 48
; GCN: ScratchSize: 2052
@@ -614,17 +614,17 @@ define amdgpu_kernel void @multi_call_with_multi_stage_recurse(i32 %n) #0 {
; Make sure there's no assert when a sgpr96 is used.
; GCN-LABEL: {{^}}count_use_sgpr96_external_call
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.private_seg_size, 0
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.uses_vcc, 1
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.has_recursion, 0
-; GCN: .set {{(\.L)?}}count_use_sgpr96_external_call.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}count_use_sgpr96_external_call.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}count_use_sgpr96_external_call.num_vgpr
+; GCN: .set .Lcount_use_sgpr96_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set .Lcount_use_sgpr96_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lcount_use_sgpr96_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set .Lcount_use_sgpr96_external_call.private_seg_size, 0
+; GCN: .set .Lcount_use_sgpr96_external_call.uses_vcc, 1
+; GCN: .set .Lcount_use_sgpr96_external_call.uses_flat_scratch, 1
+; GCN: .set .Lcount_use_sgpr96_external_call.has_dyn_sized_stack, 1
+; GCN: .set .Lcount_use_sgpr96_external_call.has_recursion, 0
+; GCN: .set .Lcount_use_sgpr96_external_call.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lcount_use_sgpr96_external_call.numbered_sgpr+6
+; GCN: NumVgprs: .Lcount_use_sgpr96_external_call.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @count_use_sgpr96_external_call() {
entry:
@@ -635,17 +635,17 @@ entry:
; Make sure there's no assert when a sgpr160 is used.
; GCN-LABEL: {{^}}count_use_sgpr160_external_call
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.private_seg_size, 0
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.uses_vcc, 1
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.has_recursion, 0
-; GCN: .set {{(\.L)?}}count_use_sgpr160_external_call.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}count_use_sgpr160_external_call.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}count_use_sgpr160_external_call.num_vgpr
+; GCN: .set .Lcount_use_sgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set .Lcount_use_sgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lcount_use_sgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set .Lcount_use_sgpr160_external_call.private_seg_size, 0
+; GCN: .set .Lcount_use_sgpr160_external_call.uses_vcc, 1
+; GCN: .set .Lcount_use_sgpr160_external_call.uses_flat_scratch, 1
+; GCN: .set .Lcount_use_sgpr160_external_call.has_dyn_sized_stack, 1
+; GCN: .set .Lcount_use_sgpr160_external_call.has_recursion, 0
+; GCN: .set .Lcount_use_sgpr160_external_call.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lcount_use_sgpr160_external_call.numbered_sgpr+6
+; GCN: NumVgprs: .Lcount_use_sgpr160_external_call.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @count_use_sgpr160_external_call() {
entry:
@@ -656,17 +656,17 @@ entry:
; Make sure there's no assert when a vgpr160 is used.
; GCN-LABEL: {{^}}count_use_vgpr160_external_call
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.private_seg_size, 0
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.uses_vcc, 1
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.uses_flat_scratch, 1
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.has_dyn_sized_stack, 1
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.has_recursion, 0
-; GCN: .set {{(\.L)?}}count_use_vgpr160_external_call.has_indirect_call, 1
-; GCN: TotalNumSgprs: {{(\.L)?}}count_use_vgpr160_external_call.numbered_sgpr+6
-; GCN: NumVgprs: {{(\.L)?}}count_use_vgpr160_external_call.num_vgpr
+; GCN: .set .Lcount_use_vgpr160_external_call.num_vgpr, max(32, amdgpu.max_num_vgpr)
+; GCN: .set .Lcount_use_vgpr160_external_call.num_agpr, max(0, amdgpu.max_num_agpr)
+; GCN: .set .Lcount_use_vgpr160_external_call.numbered_sgpr, max(33, amdgpu.max_num_sgpr)
+; GCN: .set .Lcount_use_vgpr160_external_call.private_seg_size, 0
+; GCN: .set .Lcount_use_vgpr160_external_call.uses_vcc, 1
+; GCN: .set .Lcount_use_vgpr160_external_call.uses_flat_scratch, 1
+; GCN: .set .Lcount_use_vgpr160_external_call.has_dyn_sized_stack, 1
+; GCN: .set .Lcount_use_vgpr160_external_call.has_recursion, 0
+; GCN: .set .Lcount_use_vgpr160_external_call.has_indirect_call, 1
+; GCN: TotalNumSgprs: .Lcount_use_vgpr160_external_call.numbered_sgpr+6
+; GCN: NumVgprs: .Lcount_use_vgpr160_external_call.num_vgpr
; GCN: ScratchSize: 0
define amdgpu_kernel void @count_use_vgpr160_external_call() {
entry:
@@ -677,7 +677,7 @@ entry:
; Test that amdgcn.device.init correctly references amdgpu.max_num_named_barrier
; GCN-LABEL: {{^}}amdgcn.device.init:
-; GCN: .set {{(\.L)?}}amdgcn.device.init.num_named_barrier, max(0, amdgpu.max_num_named_barrier)
+; GCN: .set .Lamdgcn.device.init.num_named_barrier, max(0, amdgpu.max_num_named_barrier)
@llvm.global_ctors = appending addrspace(1) global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @ctor_func, ptr null }]
diff --git a/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll b/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
index 87a906e700975..cd9a18571815e 100644
--- a/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
+++ b/llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck %s
; Previously, this would hit an assertion on incompatible comparison between
; APInts due to BitWidth differences. This was due to assignment of DenseMap
@@ -6,15 +6,15 @@
; use-after-free if the assignment operator invokes a DenseMap growth.
; CHECK-LABEL: I_Quit:
-; CHECK: .set I_Quit.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; CHECK: .set I_Quit.num_agpr, max(0, amdgpu.max_num_agpr)
-; CHECK: .set I_Quit.numbered_sgpr, max(56, amdgpu.max_num_sgpr)
-; CHECK: .set I_Quit.private_seg_size, 16
-; CHECK: .set I_Quit.uses_vcc, 1
-; CHECK: .set I_Quit.uses_flat_scratch, 1
-; CHECK: .set I_Quit.has_dyn_sized_stack, 1
-; CHECK: .set I_Quit.has_recursion, 1
-; CHECK: .set I_Quit.has_indirect_call, 1
+; CHECK: .set .LI_Quit.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; CHECK: .set .LI_Quit.num_agpr, max(0, amdgpu.max_num_agpr)
+; CHECK: .set .LI_Quit.numbered_sgpr, max(56, amdgpu.max_num_sgpr)
+; CHECK: .set .LI_Quit.private_seg_size, 16
+; CHECK: .set .LI_Quit.uses_vcc, 1
+; CHECK: .set .LI_Quit.uses_flat_scratch, 1
+; CHECK: .set .LI_Quit.has_dyn_sized_stack, 1
+; CHECK: .set .LI_Quit.has_recursion, 1
+; CHECK: .set .LI_Quit.has_indirect_call, 1
define void @I_Quit() {
%fptr = load ptr, ptr null, align 8
tail call void %fptr()
@@ -22,71 +22,71 @@ define void @I_Quit() {
}
; CHECK-LABEL: P_RemoveMobj:
-; CHECK: .set P_RemoveMobj.num_vgpr, 0
-; CHECK: .set P_RemoveMobj.num_agpr, 0
-; CHECK: .set P_RemoveMobj.numbered_sgpr, 32
-; CHECK: .set P_RemoveMobj.private_seg_size, 0
-; CHECK: .set P_RemoveMobj.uses_vcc, 0
-; CHECK: .set P_RemoveMobj.uses_flat_scratch, 0
-; CHECK: .set P_RemoveMobj.has_dyn_sized_stack, 0
-; CHECK: .set P_RemoveMobj.has_recursion, 0
-; CHECK: .set P_RemoveMobj.has_indirect_call, 0
+; CHECK: .set .LP_RemoveMobj.num_vgpr, 0
+; CHECK: .set .LP_RemoveMobj.num_agpr, 0
+; CHECK: .set .LP_RemoveMobj.numbered_sgpr, 32
+; CHECK: .set .LP_RemoveMobj.private_seg_size, 0
+; CHECK: .set .LP_RemoveMobj.uses_vcc, 0
+; CHECK: .set .LP_RemoveMobj.uses_flat_scratch, 0
+; CHECK: .set .LP_RemoveMobj.has_dyn_sized_stack, 0
+; CHECK: .set .LP_RemoveMobj.has_recursion, 0
+; CHECK: .set .LP_RemoveMobj.has_indirect_call, 0
define void @P_RemoveMobj() {
ret void
}
; CHECK-LABEL: P_SpawnMobj:
-; CHECK: .set P_SpawnMobj.num_vgpr, 0
-; CHECK: .set P_SpawnMobj.num_agpr, 0
-; CHECK: .set P_SpawnMobj.numbered_sgpr, 32
-; CHECK: .set P_SpawnMobj.private_seg_size, 0
-; CHECK: .set P_SpawnMobj.uses_vcc, 0
-; CHECK: .set P_SpawnMobj.uses_flat_scratch, 0
-; CHECK: .set P_SpawnMobj.has_dyn_sized_stack, 0
-; CHECK: .set P_SpawnMobj.has_recursion, 0
-; CHECK: .set P_SpawnMobj.has_indirect_call, 0
+; CHECK: .set .LP_SpawnMobj.num_vgpr, 0
+; CHECK: .set .LP_SpawnMobj.num_agpr, 0
+; CHECK: .set .LP_SpawnMobj.numbered_sgpr, 32
+; CHECK: .set .LP_SpawnMobj.private_seg_size, 0
+; CHECK: .set .LP_SpawnMobj.uses_vcc, 0
+; CHECK: .set .LP_SpawnMobj.uses_flat_scratch, 0
+; CHECK: .set .LP_SpawnMobj.has_dyn_sized_stack, 0
+; CHECK: .set .LP_SpawnMobj.has_recursion, 0
+; CHECK: .set .LP_SpawnMobj.has_indirect_call, 0
define void @P_SpawnMobj() {
ret void
}
; CHECK-LABEL: G_PlayerReborn:
-; CHECK: .set G_PlayerReborn.num_vgpr, 0
-; CHECK: .set G_PlayerReborn.num_agpr, 0
-; CHECK: .set G_PlayerReborn.numbered_sgpr, 32
-; CHECK: .set G_PlayerReborn.private_seg_size, 0
-; CHECK: .set G_PlayerReborn.uses_vcc, 0
-; CHECK: .set G_PlayerReborn.uses_flat_scratch, 0
-; CHECK: .set G_PlayerReborn.has_dyn_sized_stack, 0
-; CHECK: .set G_PlayerReborn.has_recursion, 0
-; CHECK: .set G_PlayerReborn.has_indirect_call, 0
+; CHECK: .set .LG_PlayerReborn.num_vgpr, 0
+; CHECK: .set .LG_PlayerReborn.num_agpr, 0
+; CHECK: .set .LG_PlayerReborn.numbered_sgpr, 32
+; CHECK: .set .LG_PlayerReborn.private_seg_size, 0
+; CHECK: .set .LG_PlayerReborn.uses_vcc, 0
+; CHECK: .set .LG_PlayerReborn.uses_flat_scratch, 0
+; CHECK: .set .LG_PlayerReborn.has_dyn_sized_stack, 0
+; CHECK: .set .LG_PlayerReborn.has_recursion, 0
+; CHECK: .set .LG_PlayerReborn.has_indirect_call, 0
define void @G_PlayerReborn() {
ret void
}
; CHECK-LABEL: P_SetThingPosition:
-; CHECK: .set P_SetThingPosition.num_vgpr, 0
-; CHECK: .set P_SetThingPosition.num_agpr, 0
-; CHECK: .set P_SetThingPosition.numbered_sgpr, 32
-; CHECK: .set P_SetThingPosition.private_seg_size, 0
-; CHECK: .set P_SetThingPosition.uses_vcc, 0
-; CHECK: .set P_SetThingPosition.uses_flat_scratch, 0
-; CHECK: .set P_SetThingPosition.has_dyn_sized_stack, 0
-; CHECK: .set P_SetThingPosition.has_recursion, 0
-; CHECK: .set P_SetThingPosition.has_indirect_call, 0
+; CHECK: .set .LP_SetThingPosition.num_vgpr, 0
+; CHECK: .set .LP_SetThingPosition.num_agpr, 0
+; CHECK: .set .LP_SetThingPosition.numbered_sgpr, 32
+; CHECK: .set .LP_SetThingPosition.private_seg_size, 0
+; CHECK: .set .LP_SetThingPosition.uses_vcc, 0
+; CHECK: .set .LP_SetThingPosition.uses_flat_scratch, 0
+; CHECK: .set .LP_SetThingPosition.has_dyn_sized_stack, 0
+; CHECK: .set .LP_SetThingPosition.has_recursion, 0
+; CHECK: .set .LP_SetThingPosition.has_indirect_call, 0
define void @P_SetThingPosition() {
ret void
}
; CHECK-LABEL: P_SetupPsprites:
-; CHECK: .set P_SetupPsprites.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; CHECK: .set P_SetupPsprites.num_agpr, max(0, amdgpu.max_num_agpr)
-; CHECK: .set P_SetupPsprites.numbered_sgpr, max(56, amdgpu.max_num_sgpr)
-; CHECK: .set P_SetupPsprites.private_seg_size, 16
-; CHECK: .set P_SetupPsprites.uses_vcc, 1
-; CHECK: .set P_SetupPsprites.uses_flat_scratch, 1
-; CHECK: .set P_SetupPsprites.has_dyn_sized_stack, 1
-; CHECK: .set P_SetupPsprites.has_recursion, 1
-; CHECK: .set P_SetupPsprites.has_indirect_call, 1
+; CHECK: .set .LP_SetupPsprites.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; CHECK: .set .LP_SetupPsprites.num_agpr, max(0, amdgpu.max_num_agpr)
+; CHECK: .set .LP_SetupPsprites.numbered_sgpr, max(56, amdgpu.max_num_sgpr)
+; CHECK: .set .LP_SetupPsprites.private_seg_size, 16
+; CHECK: .set .LP_SetupPsprites.uses_vcc, 1
+; CHECK: .set .LP_SetupPsprites.uses_flat_scratch, 1
+; CHECK: .set .LP_SetupPsprites.has_dyn_sized_stack, 1
+; CHECK: .set .LP_SetupPsprites.has_recursion, 1
+; CHECK: .set .LP_SetupPsprites.has_indirect_call, 1
define void @P_SetupPsprites(ptr addrspace(1) %i) {
%fptr = load ptr, ptr addrspace(1) %i, align 8
tail call void %fptr()
@@ -94,29 +94,29 @@ define void @P_SetupPsprites(ptr addrspace(1) %i) {
}
; CHECK-LABEL: HU_Start:
-; CHECK: .set HU_Start.num_vgpr, 0
-; CHECK: .set HU_Start.num_agpr, 0
-; CHECK: .set HU_Start.numbered_sgpr, 32
-; CHECK: .set HU_Start.private_seg_size, 0
-; CHECK: .set HU_Start.uses_vcc, 0
-; CHECK: .set HU_Start.uses_flat_scratch, 0
-; CHECK: .set HU_Start.has_dyn_sized_stack, 0
-; CHECK: .set HU_Start.has_recursion, 0
-; CHECK: .set HU_Start.has_indirect_call, 0
+; CHECK: .set .LHU_Start.num_vgpr, 0
+; CHECK: .set .LHU_Start.num_agpr, 0
+; CHECK: .set .LHU_Start.numbered_sgpr, 32
+; CHECK: .set .LHU_Start.private_seg_size, 0
+; CHECK: .set .LHU_Start.uses_vcc, 0
+; CHECK: .set .LHU_Start.uses_flat_scratch, 0
+; CHECK: .set .LHU_Start.has_dyn_sized_stack, 0
+; CHECK: .set .LHU_Start.has_recursion, 0
+; CHECK: .set .LHU_Start.has_indirect_call, 0
define void @HU_Start() {
ret void
}
; CHECK-LABEL: P_SpawnPlayer:
-; CHECK: .set P_SpawnPlayer.num_vgpr, max(43, G_PlayerReborn.num_vgpr, P_SetThingPosition.num_vgpr, P_SetupPsprites.num_vgpr, HU_Start.num_vgpr)
-; CHECK: .set P_SpawnPlayer.num_agpr, max(0, G_PlayerReborn.num_agpr, P_SetThingPosition.num_agpr, P_SetupPsprites.num_agpr, HU_Start.num_agpr)
-; CHECK: .set P_SpawnPlayer.numbered_sgpr, max(84, G_PlayerReborn.numbered_sgpr, P_SetThingPosition.numbered_sgpr, P_SetupPsprites.numbered_sgpr, HU_Start.numbered_sgpr)
-; CHECK: .set P_SpawnPlayer.private_seg_size, 16+max(G_PlayerReborn.private_seg_size, P_SetThingPosition.private_seg_size, P_SetupPsprites.private_seg_size, HU_Start.private_seg_size)
-; CHECK: .set P_SpawnPlayer.uses_vcc, or(1, G_PlayerReborn.uses_vcc, P_SetThingPosition.uses_vcc, P_SetupPsprites.uses_vcc, HU_Start.uses_vcc)
-; CHECK: .set P_SpawnPlayer.uses_flat_scratch, or(0, G_PlayerReborn.uses_flat_scratch, P_SetThingPosition.uses_flat_scratch, P_SetupPsprites.uses_flat_scratch, HU_Start.uses_flat_scratch)
-; CHECK: .set P_SpawnPlayer.has_dyn_sized_stack, or(0, G_PlayerReborn.has_dyn_sized_stack, P_SetThingPosition.has_dyn_sized_stack, P_SetupPsprites.has_dyn_sized_stack, HU_Start.has_dyn_sized_stack)
-; CHECK: .set P_SpawnPlayer.has_recursion, or(1, G_PlayerReborn.has_recursion, P_SetThingPosition.has_recursion, P_SetupPsprites.has_recursion, HU_Start.has_recursion)
-; CHECK: .set P_SpawnPlayer.has_indirect_call, or(0, G_PlayerReborn.has_indirect_call, P_SetThingPosition.has_indirect_call, P_SetupPsprites.has_indirect_call, HU_Start.has_indirect_call)
+; CHECK: .set .LP_SpawnPlayer.num_vgpr, max(43, .LG_PlayerReborn.num_vgpr, .LP_SetThingPosition.num_vgpr, .LP_SetupPsprites.num_vgpr, .LHU_Start.num_vgpr)
+; CHECK: .set .LP_SpawnPlayer.num_agpr, max(0, .LG_PlayerReborn.num_agpr, .LP_SetThingPosition.num_agpr, .LP_SetupPsprites.num_agpr, .LHU_Start.num_agpr)
+; CHECK: .set .LP_SpawnPlayer.numbered_sgpr, max(84, .LG_PlayerReborn.numbered_sgpr, .LP_SetThingPosition.numbered_sgpr, .LP_SetupPsprites.numbered_sgpr, .LHU_Start.numbered_sgpr)
+; CHECK: .set .LP_SpawnPlayer.private_seg_size, 16+max(.LG_PlayerReborn.private_seg_size, .LP_SetThingPosition.private_seg_size, .LP_SetupPsprites.private_seg_size, .LHU_Start.private_seg_size)
+; CHECK: .set .LP_SpawnPlayer.uses_vcc, or(1, .LG_PlayerReborn.uses_vcc, .LP_SetThingPosition.uses_vcc, .LP_SetupPsprites.uses_vcc, .LHU_Start.uses_vcc)
+; CHECK: .set .LP_SpawnPlayer.uses_flat_scratch, or(0, .LG_PlayerReborn.uses_flat_scratch, .LP_SetThingPosition.uses_flat_scratch, .LP_SetupPsprites.uses_flat_scratch, .LHU_Start.uses_flat_scratch)
+; CHECK: .set .LP_SpawnPlayer.has_dyn_sized_stack, or(0, .LG_PlayerReborn.has_dyn_sized_stack, .LP_SetThingPosition.has_dyn_sized_stack, .LP_SetupPsprites.has_dyn_sized_stack, .LHU_Start.has_dyn_sized_stack)
+; CHECK: .set .LP_SpawnPlayer.has_recursion, or(1, .LG_PlayerReborn.has_recursion, .LP_SetThingPosition.has_recursion, .LP_SetupPsprites.has_recursion, .LHU_Start.has_recursion)
+; CHECK: .set .LP_SpawnPlayer.has_indirect_call, or(0, .LG_PlayerReborn.has_indirect_call, .LP_SetThingPosition.has_indirect_call, .LP_SetupPsprites.has_indirect_call, .LHU_Start.has_indirect_call)
define void @P_SpawnPlayer() {
call void @G_PlayerReborn()
call void @P_SetThingPosition()
@@ -126,15 +126,15 @@ define void @P_SpawnPlayer() {
}
; CHECK-LABEL: I_Error:
-; CHECK: .set I_Error.num_vgpr, max(41, amdgpu.max_num_vgpr)
-; CHECK: .set I_Error.num_agpr, max(0, amdgpu.max_num_agpr)
-; CHECK: .set I_Error.numbered_sgpr, max(56, amdgpu.max_num_sgpr)
-; CHECK: .set I_Error.private_seg_size, 16
-; CHECK: .set I_Error.uses_vcc, 1
-; CHECK: .set I_Error.uses_flat_scratch, 1
-; CHECK: .set I_Error.has_dyn_sized_stack, 1
-; CHECK: .set I_Error.has_recursion, 1
-; CHECK: .set I_Error.has_indirect_call, 1
+; CHECK: .set .LI_Error.num_vgpr, max(41, amdgpu.max_num_vgpr)
+; CHECK: .set .LI_Error.num_agpr, max(0, amdgpu.max_num_agpr)
+; CHECK: .set .LI_Error.numbered_sgpr, max(56, amdgpu.max_num_sgpr)
+; CHECK: .set .LI_Error.private_seg_size, 16
+; CHECK: .set .LI_Error.uses_vcc, 1
+; CHECK: .set .LI_Error.uses_flat_scratch, 1
+; CHECK: .set .LI_Error.has_dyn_sized_stack, 1
+; CHECK: .set .LI_Error.has_recursion, 1
+; CHECK: .set .LI_Error.has_indirect_call, 1
define void @I_Error(...) {
%fptr = load ptr, ptr null, align 8
call void %fptr()
@@ -142,15 +142,15 @@ define void @I_Error(...) {
}
; CHECK-LABEL: G_DoReborn:
-; CHECK: .set G_DoReborn.num_vgpr, max(44, P_RemoveMobj.num_vgpr, P_SpawnMobj.num_vgpr, P_SpawnPlayer.num_vgpr, I_Error.num_vgpr)
-; CHECK: .set G_DoReborn.num_agpr, max(0, P_RemoveMobj.num_agpr, P_SpawnMobj.num_agpr, P_SpawnPlayer.num_agpr, I_Error.num_agpr)
-; CHECK: .set G_DoReborn.numbered_sgpr, max(104, P_RemoveMobj.numbered_sgpr, P_SpawnMobj.numbered_sgpr, P_SpawnPlayer.numbered_sgpr, I_Error.numbered_sgpr)
-; CHECK: .set G_DoReborn.private_seg_size, 32+max(P_RemoveMobj.private_seg_size, P_SpawnMobj.private_seg_size, P_SpawnPlayer.private_seg_size, I_Error.private_seg_size)
-; CHECK: .set G_DoReborn.uses_vcc, or(1, P_RemoveMobj.uses_vcc, P_SpawnMobj.uses_vcc, P_SpawnPlayer.uses_vcc, I_Error.uses_vcc)
-; CHECK: .set G_DoReborn.uses_flat_scratch, or(0, P_RemoveMobj.uses_flat_scratch, P_SpawnMobj.uses_flat_scratch, P_SpawnPlayer.uses_flat_scratch, I_Error.uses_flat_scratch)
-; CHECK: .set G_DoReborn.has_dyn_sized_stack, or(0, P_RemoveMobj.has_dyn_sized_stack, P_SpawnMobj.has_dyn_sized_stack, P_SpawnPlayer.has_dyn_sized_stack, I_Error.has_dyn_sized_stack)
-; CHECK: .set G_DoReborn.has_recursion, or(1, P_RemoveMobj.has_recursion, P_SpawnMobj.has_recursion, P_SpawnPlayer.has_recursion, I_Error.has_recursion)
-; CHECK: .set G_DoReborn.has_indirect_call, or(0, P_RemoveMobj.has_indirect_call, P_SpawnMobj.has_indirect_call, P_SpawnPlayer.has_indirect_call, I_Error.has_indirect_call)
+; CHECK: .set .LG_DoReborn.num_vgpr, max(44, .LP_RemoveMobj.num_vgpr, .LP_SpawnMobj.num_vgpr, .LP_SpawnPlayer.num_vgpr, .LI_Error.num_vgpr)
+; CHECK: .set .LG_DoReborn.num_agpr, max(0, .LP_RemoveMobj.num_agpr, .LP_SpawnMobj.num_agpr, .LP_SpawnPlayer.num_agpr, .LI_Error.num_agpr)
+; CHECK: .set .LG_DoReborn.numbered_sgpr, max(104, .LP_RemoveMobj.numbered_sgpr, .LP_SpawnMobj.numbered_sgpr, .LP_SpawnPlayer.numbered_sgpr, .LI_Error.numbered_sgpr)
+; CHECK: .set .LG_DoReborn.private_seg_size, 32+max(.LP_RemoveMobj.private_seg_size, .LP_SpawnMobj.private_seg_size, .LP_SpawnPlayer.private_seg_size, .LI_Error.private_seg_size)
+; CHECK: .set .LG_DoReborn.uses_vcc, or(1, .LP_RemoveMobj.uses_vcc, .LP_SpawnMobj.uses_vcc, .LP_SpawnPlayer.uses_vcc, .LI_Error.uses_vcc)
+; CHECK: .set .LG_DoReborn.uses_flat_scratch, or(0, .LP_RemoveMobj.uses_flat_scratch, .LP_SpawnMobj.uses_flat_scratch, .LP_SpawnPlayer.uses_flat_scratch, .LI_Error.uses_flat_scratch)
+; CHECK: .set .LG_DoReborn.has_dyn_sized_stack, or(0, .LP_RemoveMobj.has_dyn_sized_stack, .LP_SpawnMobj.has_dyn_sized_stack, .LP_SpawnPlayer.has_dyn_sized_stack, .LI_Error.has_dyn_sized_stack)
+; CHECK: .set .LG_DoReborn.has_recursion, or(1, .LP_RemoveMobj.has_recursion, .LP_SpawnMobj.has_recursion, .LP_SpawnPlayer.has_recursion, .LI_Error.has_recursion)
+; CHECK: .set .LG_DoReborn.has_indirect_call, or(0, .LP_RemoveMobj.has_indirect_call, .LP_SpawnMobj.has_indirect_call, .LP_SpawnPlayer.has_indirect_call, .LI_Error.has_indirect_call)
define void @G_DoReborn() {
call void @P_RemoveMobj()
call void @P_SpawnMobj()
@@ -160,71 +160,71 @@ define void @G_DoReborn() {
}
; CHECK-LABEL: AM_Stop:
-; CHECK: .set AM_Stop.num_vgpr, 0
-; CHECK: .set AM_Stop.num_agpr, 0
-; CHECK: .set AM_Stop.numbered_sgpr, 32
-; CHECK: .set AM_Stop.private_seg_size, 0
-; CHECK: .set AM_Stop.uses_vcc, 0
-; CHECK: .set AM_Stop.uses_flat_scratch, 0
-; CHECK: .set AM_Stop.has_dyn_sized_stack, 0
-; CHECK: .set AM_Stop.has_recursion, 0
-; CHECK: .set AM_Stop.has_indirect_call, 0
+; CHECK: .set .LAM_Stop.num_vgpr, 0
+; CHECK: .set .LAM_Stop.num_agpr, 0
+; CHECK: .set .LAM_Stop.numbered_sgpr, 32
+; CHECK: .set .LAM_Stop.private_seg_size, 0
+; CHECK: .set .LAM_Stop.uses_vcc, 0
+; CHECK: .set .LAM_Stop.uses_flat_scratch, 0
+; CHECK: .set .LAM_Stop.has_dyn_sized_stack, 0
+; CHECK: .set .LAM_Stop.has_recursion, 0
+; CHECK: .set .LAM_Stop.has_indirect_call, 0
define void @AM_Stop() {
ret void
}
; CHECK-LABEL: D_AdvanceDemo:
-; CHECK: .set D_AdvanceDemo.num_vgpr, 0
-; CHECK: .set D_AdvanceDemo.num_agpr, 0
-; CHECK: .set D_AdvanceDemo.numbered_sgpr, 32
-; CHECK: .set D_AdvanceDemo.private_seg_size, 0
-; CHECK: .set D_AdvanceDemo.uses_vcc, 0
-; CHECK: .set D_AdvanceDemo.uses_flat_scratch, 0
-; CHECK: .set D_AdvanceDemo.has_dyn_sized_stack, 0
-; CHECK: .set D_AdvanceDemo.has_recursion, 0
-; CHECK: .set D_AdvanceDemo.has_indirect_call, 0
+; CHECK: .set .LD_AdvanceDemo.num_vgpr, 0
+; CHECK: .set .LD_AdvanceDemo.num_agpr, 0
+; CHECK: .set .LD_AdvanceDemo.numbered_sgpr, 32
+; CHECK: .set .LD_AdvanceDemo.private_seg_size, 0
+; CHECK: .set .LD_AdvanceDemo.uses_vcc, 0
+; CHECK: .set .LD_AdvanceDemo.uses_flat_scratch, 0
+; CHECK: .set .LD_AdvanceDemo.has_dyn_sized_stack, 0
+; CHECK: .set .LD_AdvanceDemo.has_recursion, 0
+; CHECK: .set .LD_AdvanceDemo.has_indirect_call, 0
define void @D_AdvanceDemo() {
ret void
}
; CHECK-LABEL: F_StartFinale:
-; CHECK: .set F_StartFinale.num_vgpr, 0
-; CHECK: .set F_StartFinale.num_agpr, 0
-; CHECK: .set F_StartFinale.numbered_sgpr, 32
-; CHECK: .set F_StartFinale.private_seg_size, 0
-; CHECK: .set F_StartFinale.uses_vcc, 0
-; CHECK: .set F_StartFinale.uses_flat_scratch, 0
-; CHECK: .set F_StartFinale.has_dyn_sized_stack, 0
-; CHECK: .set F_StartFinale.has_recursion, 0
-; CHECK: .set F_StartFinale.has_indirect_call, 0
+; CHECK: .set .LF_StartFinale.num_vgpr, 0
+; CHECK: .set .LF_StartFinale.num_agpr, 0
+; CHECK: .set .LF_StartFinale.numbered_sgpr, 32
+; CHECK: .set .LF_StartFinale.private_seg_size, 0
+; CHECK: .set .LF_StartFinale.uses_vcc, 0
+; CHECK: .set .LF_StartFinale.uses_flat_scratch, 0
+; CHECK: .set .LF_StartFinale.has_dyn_sized_stack, 0
+; CHECK: .set .LF_StartFinale.has_recursion, 0
+; CHECK: .set .LF_StartFinale.has_indirect_call, 0
define void @F_StartFinale() {
ret void
}
; CHECK-LABEL: F_Ticker:
-; CHECK: .set F_Ticker.num_vgpr, 0
-; CHECK: .set F_Ticker.num_agpr, 0
-; CHECK: .set F_Ticker.numbered_sgpr, 32
-; CHECK: .set F_Ticker.private_seg_size, 0
-; CHECK: .set F_Ticker.uses_vcc, 0
-; CHECK: .set F_Ticker.uses_flat_scratch, 0
-; CHECK: .set F_Ticker.has_dyn_sized_stack, 0
-; CHECK: .set F_Ticker.has_recursion, 0
-; CHECK: .set F_Ticker.has_indirect_call, 0
+; CHECK: .set .LF_Ticker.num_vgpr, 0
+; CHECK: .set .LF_Ticker.num_agpr, 0
+; CHECK: .set .LF_Ticker.numbered_sgpr, 32
+; CHECK: .set .LF_Ticker.private_seg_size, 0
+; CHECK: .set .LF_Ticker.uses_vcc, 0
+; CHECK: .set .LF_Ticker.uses_flat_scratch, 0
+; CHECK: .set .LF_Ticker.has_dyn_sized_stack, 0
+; CHECK: .set .LF_Ticker.has_recursion, 0
+; CHECK: .set .LF_Ticker.has_indirect_call, 0
define void @F_Ticker() {
ret void
}
; CHECK-LABEL: G_CheckDemoStatus:
-; CHECK: .set G_CheckDemoStatus.num_vgpr, max(43, I_Quit.num_vgpr, D_AdvanceDemo.num_vgpr, I_Error.num_vgpr)
-; CHECK: .set G_CheckDemoStatus.num_agpr, max(0, I_Quit.num_agpr, D_AdvanceDemo.num_agpr, I_Error.num_agpr)
-; CHECK: .set G_CheckDemoStatus.numbered_sgpr, max(84, I_Quit.numbered_sgpr, D_AdvanceDemo.numbered_sgpr, I_Error.numbered_sgpr)
-; CHECK: .set G_CheckDemoStatus.private_seg_size, 32+max(I_Quit.private_seg_size, D_AdvanceDemo.private_seg_size, I_Error.private_seg_size)
-; CHECK: .set G_CheckDemoStatus.uses_vcc, or(1, I_Quit.uses_vcc, D_AdvanceDemo.uses_vcc, I_Error.uses_vcc)
-; CHECK: .set G_CheckDemoStatus.uses_flat_scratch, or(0, I_Quit.uses_flat_scratch, D_AdvanceDemo.uses_flat_scratch, I_Error.uses_flat_scratch)
-; CHECK: .set G_CheckDemoStatus.has_dyn_sized_stack, or(0, I_Quit.has_dyn_sized_stack, D_AdvanceDemo.has_dyn_sized_stack, I_Error.has_dyn_sized_stack)
-; CHECK: .set G_CheckDemoStatus.has_recursion, or(1, I_Quit.has_recursion, D_AdvanceDemo.has_recursion, I_Error.has_recursion)
-; CHECK: .set G_CheckDemoStatus.has_indirect_call, or(0, I_Quit.has_indirect_call, D_AdvanceDemo.has_indirect_call, I_Error.has_indirect_call)
+; CHECK: .set .LG_CheckDemoStatus.num_vgpr, max(43, .LI_Quit.num_vgpr, .LD_AdvanceDemo.num_vgpr, .LI_Error.num_vgpr)
+; CHECK: .set .LG_CheckDemoStatus.num_agpr, max(0, .LI_Quit.num_agpr, .LD_AdvanceDemo.num_agpr, .LI_Error.num_agpr)
+; CHECK: .set .LG_CheckDemoStatus.numbered_sgpr, max(84, .LI_Quit.numbered_sgpr, .LD_AdvanceDemo.numbered_sgpr, .LI_Error.numbered_sgpr)
+; CHECK: .set .LG_CheckDemoStatus.private_seg_size, 32+max(.LI_Quit.private_seg_size, .LD_AdvanceDemo.private_seg_size, .LI_Error.private_seg_size)
+; CHECK: .set .LG_CheckDemoStatus.uses_vcc, or(1, .LI_Quit.uses_vcc, .LD_AdvanceDemo.uses_vcc, .LI_Error.uses_vcc)
+; CHECK: .set .LG_CheckDemoStatus.uses_flat_scratch, or(0, .LI_Quit.uses_flat_scratch, .LD_AdvanceDemo.uses_flat_scratch, .LI_Error.uses_flat_scratch)
+; CHECK: .set .LG_CheckDemoStatus.has_dyn_sized_stack, or(0, .LI_Quit.has_dyn_sized_stack, .LD_AdvanceDemo.has_dyn_sized_stack, .LI_Error.has_dyn_sized_stack)
+; CHECK: .set .LG_CheckDemoStatus.has_recursion, or(1, .LI_Quit.has_recursion, .LD_AdvanceDemo.has_recursion, .LI_Error.has_recursion)
+; CHECK: .set .LG_CheckDemoStatus.has_indirect_call, or(0, .LI_Quit.has_indirect_call, .LD_AdvanceDemo.has_indirect_call, .LI_Error.has_indirect_call)
define i32 @G_CheckDemoStatus() {
tail call void @I_Quit()
tail call void @D_AdvanceDemo()
@@ -234,73 +234,73 @@ define i32 @G_CheckDemoStatus() {
; CHECK-LABEL: P_TempSaveGameFile:
-; CHECK: .set P_TempSaveGameFile.num_vgpr, 2
-; CHECK: .set P_TempSaveGameFile.num_agpr, 0
-; CHECK: .set P_TempSaveGameFile.numbered_sgpr, 32
-; CHECK: .set P_TempSaveGameFile.private_seg_size, 0
-; CHECK: .set P_TempSaveGameFile.uses_vcc, 0
-; CHECK: .set P_TempSaveGameFile.uses_flat_scratch, 0
-; CHECK: .set P_TempSaveGameFile.has_dyn_sized_stack, 0
-; CHECK: .set P_TempSaveGameFile.has_recursion, 0
-; CHECK: .set P_TempSaveGameFile.has_indirect_call, 0
+; CHECK: .set .LP_TempSaveGameFile.num_vgpr, 2
+; CHECK: .set .LP_TempSaveGameFile.num_agpr, 0
+; CHECK: .set .LP_TempSaveGameFile.numbered_sgpr, 32
+; CHECK: .set .LP_TempSaveGameFile.private_seg_size, 0
+; CHECK: .set .LP_TempSaveGameFile.uses_vcc, 0
+; CHECK: .set .LP_TempSaveGameFile.uses_flat_scratch, 0
+; CHECK: .set .LP_TempSaveGameFile.has_dyn_sized_stack, 0
+; CHECK: .set .LP_TempSaveGameFile.has_recursion, 0
+; CHECK: .set .LP_TempSaveGameFile.has_indirect_call, 0
define ptr @P_TempSaveGameFile() {
ret ptr null
}
; CHECK-LABEL: P_SaveGameFile:
-; CHECK: .set P_SaveGameFile.num_vgpr, 2
-; CHECK: .set P_SaveGameFile.num_agpr, 0
-; CHECK: .set P_SaveGameFile.numbered_sgpr, 32
-; CHECK: .set P_SaveGameFile.private_seg_size, 0
-; CHECK: .set P_SaveGameFile.uses_vcc, 0
-; CHECK: .set P_SaveGameFile.uses_flat_scratch, 0
-; CHECK: .set P_SaveGameFile.has_dyn_sized_stack, 0
-; CHECK: .set P_SaveGameFile.has_recursion, 0
-; CHECK: .set P_SaveGameFile.has_indirect_call, 0
+; CHECK: .set .LP_SaveGameFile.num_vgpr, 2
+; CHECK: .set .LP_SaveGameFile.num_agpr, 0
+; CHECK: .set .LP_SaveGameFile.numbered_sgpr, 32
+; CHECK: .set .LP_SaveGameFile.private_seg_size, 0
+; CHECK: .set .LP_SaveGameFile.uses_vcc, 0
+; CHECK: .set .LP_SaveGameFile.uses_flat_scratch, 0
+; CHECK: .set .LP_SaveGameFile.has_dyn_sized_stack, 0
+; CHECK: .set .LP_SaveGameFile.has_recursion, 0
+; CHECK: .set .LP_SaveGameFile.has_indirect_call, 0
define ptr @P_SaveGameFile() {
ret ptr null
}
; CHECK-LABEL: R_FlatNumForName:
-; CHECK: .set R_FlatNumForName.num_vgpr, max(42, I_Error.num_vgpr)
-; CHECK: .set R_FlatNumForName.num_agpr, max(0, I_Error.num_agpr)
-; CHECK: .set R_FlatNumForName.numbered_sgpr, max(56, I_Error.numbered_sgpr)
-; CHECK: .set R_FlatNumForName.private_seg_size, 16+max(I_Error.private_seg_size)
-; CHECK: .set R_FlatNumForName.uses_vcc, or(1, I_Error.uses_vcc)
-; CHECK: .set R_FlatNumForName.uses_flat_scratch, or(0, I_Error.uses_flat_scratch)
-; CHECK: .set R_FlatNumForName.has_dyn_sized_stack, or(0, I_Error.has_dyn_sized_stack)
-; CHECK: .set R_FlatNumForName.has_recursion, or(1, I_Error.has_recursion)
-; CHECK: .set R_FlatNumForName.has_indirect_call, or(0, I_Error.has_indirect_call)
+; CHECK: .set .LR_FlatNumForName.num_vgpr, max(42, .LI_Error.num_vgpr)
+; CHECK: .set .LR_FlatNumForName.num_agpr, max(0, .LI_Error.num_agpr)
+; CHECK: .set .LR_FlatNumForName.numbered_sgpr, max(56, .LI_Error.numbered_sgpr)
+; CHECK: .set .LR_FlatNumForName.private_seg_size, 16+max(.LI_Error.private_seg_size)
+; CHECK: .set .LR_FlatNumForName.uses_vcc, or(1, .LI_Error.uses_vcc)
+; CHECK: .set .LR_FlatNumForName.uses_flat_scratch, or(0, .LI_Error.uses_flat_scratch)
+; CHECK: .set .LR_FlatNumForName.has_dyn_sized_stack, or(0, .LI_Error.has_dyn_sized_stack)
+; CHECK: .set .LR_FlatNumForName.has_recursion, or(1, .LI_Error.has_recursion)
+; CHECK: .set .LR_FlatNumForName.has_indirect_call, or(0, .LI_Error.has_indirect_call)
define i32 @R_FlatNumForName() {
call void (...) @I_Error()
unreachable
}
; CHECK-LABEL: R_TextureNumForName:
-; CHECK: .set R_TextureNumForName.num_vgpr, max(42, R_FlatNumForName.num_vgpr)
-; CHECK: .set R_TextureNumForName.num_agpr, max(0, R_FlatNumForName.num_agpr)
-; CHECK: .set R_TextureNumForName.numbered_sgpr, max(56, R_FlatNumForName.numbered_sgpr)
-; CHECK: .set R_TextureNumForName.private_seg_size, 16+max(R_FlatNumForName.private_seg_size)
-; CHECK: .set R_TextureNumForName.uses_vcc, or(1, R_FlatNumForName.uses_vcc)
-; CHECK: .set R_TextureNumForName.uses_flat_scratch, or(0, R_FlatNumForName.uses_flat_scratch)
-; CHECK: .set R_TextureNumForName.has_dyn_sized_stack, or(0, R_FlatNumForName.has_dyn_sized_stack)
-; CHECK: .set R_TextureNumForName.has_recursion, or(1, R_FlatNumForName.has_recursion)
-; CHECK: .set R_TextureNumForName.has_indirect_call, or(0, R_FlatNumForName.has_indirect_call)
+; CHECK: .set .LR_TextureNumForName.num_vgpr, max(42, .LR_FlatNumForName.num_vgpr)
+; CHECK: .set .LR_TextureNumForName.num_agpr, max(0, .LR_FlatNumForName.num_agpr)
+; CHECK: .set .LR_TextureNumForName.numbered_sgpr, max(56, .LR_FlatNumForName.numbered_sgpr)
+; CHECK: .set .LR_TextureNumForName.private_seg_size, 16+max(.LR_FlatNumForName.private_seg_size)
+; CHECK: .set .LR_TextureNumForName.uses_vcc, or(1, .LR_FlatNumForName.uses_vcc)
+; CHECK: .set .LR_TextureNumForName.uses_flat_scratch, or(0, .LR_FlatNumForName.uses_flat_scratch)
+; CHECK: .set .LR_TextureNumForName.has_dyn_sized_stack, or(0, .LR_FlatNumForName.has_dyn_sized_stack)
+; CHECK: .set .LR_TextureNumForName.has_recursion, or(1, .LR_FlatNumForName.has_recursion)
+; CHECK: .set .LR_TextureNumForName.has_indirect_call, or(0, .LR_FlatNumForName.has_indirect_call)
define i32 @R_TextureNumForName() {
%ret = call i32 @R_FlatNumForName()
ret i32 0
}
; CHECK-LABEL: G_Ticker:
-; CHECK: .set G_Ticker.num_vgpr, max(47, G_DoReborn.num_vgpr, F_Ticker.num_vgpr, AM_Stop.num_vgpr, F_StartFinale.num_vgpr, D_AdvanceDemo.num_vgpr, R_FlatNumForName.num_vgpr, R_TextureNumForName.num_vgpr, P_TempSaveGameFile.num_vgpr, P_SaveGameFile.num_vgpr, I_Error.num_vgpr)
-; CHECK: .set G_Ticker.num_agpr, max(0, G_DoReborn.num_agpr, F_Ticker.num_agpr, AM_Stop.num_agpr, F_StartFinale.num_agpr, D_AdvanceDemo.num_agpr, R_FlatNumForName.num_agpr, R_TextureNumForName.num_agpr, P_TempSaveGameFile.num_agpr, P_SaveGameFile.num_agpr, I_Error.num_agpr)
-; CHECK: .set G_Ticker.numbered_sgpr, max(105, G_DoReborn.numbered_sgpr, F_Ticker.numbered_sgpr, AM_Stop.numbered_sgpr, F_StartFinale.numbered_sgpr, D_AdvanceDemo.numbered_sgpr, R_FlatNumForName.numbered_sgpr, R_TextureNumForName.numbered_sgpr, P_TempSaveGameFile.numbered_sgpr, P_SaveGameFile.numbered_sgpr, I_Error.numbered_sgpr)
-; CHECK: .set G_Ticker.private_seg_size, 48+max(G_DoReborn.private_seg_size, F_Ticker.private_seg_size, AM_Stop.private_seg_size, F_StartFinale.private_seg_size, D_AdvanceDemo.private_seg_size, R_FlatNumForName.private_seg_size, R_TextureNumForName.private_seg_size, P_TempSaveGameFile.private_seg_size, P_SaveGameFile.private_seg_size, I_Error.private_seg_size)
-; CHECK: .set G_Ticker.uses_vcc, or(1, G_DoReborn.uses_vcc, F_Ticker.uses_vcc, AM_Stop.uses_vcc, F_StartFinale.uses_vcc, D_AdvanceDemo.uses_vcc, R_FlatNumForName.uses_vcc, R_TextureNumForName.uses_vcc, P_TempSaveGameFile.uses_vcc, P_SaveGameFile.uses_vcc, I_Error.uses_vcc)
-; CHECK: .set G_Ticker.uses_flat_scratch, or(0, G_DoReborn.uses_flat_scratch, F_Ticker.uses_flat_scratch, AM_Stop.uses_flat_scratch, F_StartFinale.uses_flat_scratch, D_AdvanceDemo.uses_flat_scratch, R_FlatNumForName.uses_flat_scratch, R_TextureNumForName.uses_flat_scratch, P_TempSaveGameFile.uses_flat_scratch, P_SaveGameFile.uses_flat_scratch, I_Error.uses_flat_scratch)
-; CHECK: .set G_Ticker.has_dyn_sized_stack, or(0, G_DoReborn.has_dyn_sized_stack, F_Ticker.has_dyn_sized_stack, AM_Stop.has_dyn_sized_stack, F_StartFinale.has_dyn_sized_stack, D_AdvanceDemo.has_dyn_sized_stack, R_FlatNumForName.has_dyn_sized_stack, R_TextureNumForName.has_dyn_sized_stack, P_TempSaveGameFile.has_dyn_sized_stack, P_SaveGameFile.has_dyn_sized_stack, I_Error.has_dyn_sized_stack)
-; CHECK: .set G_Ticker.has_recursion, or(1, G_DoReborn.has_recursion, F_Ticker.has_recursion, AM_Stop.has_recursion, F_StartFinale.has_recursion, D_AdvanceDemo.has_recursion, R_FlatNumForName.has_recursion, R_TextureNumForName.has_recursion, P_TempSaveGameFile.has_recursion, P_SaveGameFile.has_recursion, I_Error.has_recursion)
-; CHECK: .set G_Ticker.has_indirect_call, or(0, G_DoReborn.has_indirect_call, F_Ticker.has_indirect_call, AM_Stop.has_indirect_call, F_StartFinale.has_indirect_call, D_AdvanceDemo.has_indirect_call, R_FlatNumForName.has_indirect_call, R_TextureNumForName.has_indirect_call, P_TempSaveGameFile.has_indirect_call, P_SaveGameFile.has_indirect_call, I_Error.has_indirect_call)
+; CHECK: .set .LG_Ticker.num_vgpr, max(47, .LG_DoReborn.num_vgpr, .LF_Ticker.num_vgpr, .LAM_Stop.num_vgpr, .LF_StartFinale.num_vgpr, .LD_AdvanceDemo.num_vgpr, .LR_FlatNumForName.num_vgpr, .LR_TextureNumForName.num_vgpr, .LP_TempSaveGameFile.num_vgpr, .LP_SaveGameFile.num_vgpr, .LI_Error.num_vgpr)
+; CHECK: .set .LG_Ticker.num_agpr, max(0, .LG_DoReborn.num_agpr, .LF_Ticker.num_agpr, .LAM_Stop.num_agpr, .LF_StartFinale.num_agpr, .LD_AdvanceDemo.num_agpr, .LR_FlatNumForName.num_agpr, .LR_TextureNumForName.num_agpr, .LP_TempSaveGameFile.num_agpr, .LP_SaveGameFile.num_agpr, .LI_Error.num_agpr)
+; CHECK: .set .LG_Ticker.numbered_sgpr, max(105, .LG_DoReborn.numbered_sgpr, .LF_Ticker.numbered_sgpr, .LAM_Stop.numbered_sgpr, .LF_StartFinale.numbered_sgpr, .LD_AdvanceDemo.numbered_sgpr, .LR_FlatNumForName.numbered_sgpr, .LR_TextureNumForName.numbered_sgpr, .LP_TempSaveGameFile.numbered_sgpr, .LP_SaveGameFile.numbered_sgpr, .LI_Error.numbered_sgpr)
+; CHECK: .set .LG_Ticker.private_seg_size, 48+max(.LG_DoReborn.private_seg_size, .LF_Ticker.private_seg_size, .LAM_Stop.private_seg_size, .LF_StartFinale.private_seg_size, .LD_AdvanceDemo.private_seg_size, .LR_FlatNumForName.private_seg_size, .LR_TextureNumForName.private_seg_size, .LP_TempSaveGameFile.private_seg_size, .LP_SaveGameFile.private_seg_size, .LI_Error.private_seg_size)
+; CHECK: .set .LG_Ticker.uses_vcc, or(1, .LG_DoReborn.uses_vcc, .LF_Ticker.uses_vcc, .LAM_Stop.uses_vcc, .LF_StartFinale.uses_vcc, .LD_AdvanceDemo.uses_vcc, .LR_FlatNumForName.uses_vcc, .LR_TextureNumForName.uses_vcc, .LP_TempSaveGameFile.uses_vcc, .LP_SaveGameFile.uses_vcc, .LI_Error.uses_vcc)
+; CHECK: .set .LG_Ticker.uses_flat_scratch, or(0, .LG_DoReborn.uses_flat_scratch, .LF_Ticker.uses_flat_scratch, .LAM_Stop.uses_flat_scratch, .LF_StartFinale.uses_flat_scratch, .LD_AdvanceDemo.uses_flat_scratch, .LR_FlatNumForName.uses_flat_scratch, .LR_TextureNumForName.uses_flat_scratch, .LP_TempSaveGameFile.uses_flat_scratch, .LP_SaveGameFile.uses_flat_scratch, .LI_Error.uses_flat_scratch)
+; CHECK: .set .LG_Ticker.has_dyn_sized_stack, or(0, .LG_DoReborn.has_dyn_sized_stack, .LF_Ticker.has_dyn_sized_stack, .LAM_Stop.has_dyn_sized_stack, .LF_StartFinale.has_dyn_sized_stack, .LD_AdvanceDemo.has_dyn_sized_stack, .LR_FlatNumForName.has_dyn_sized_stack, .LR_TextureNumForName.has_dyn_sized_stack, .LP_TempSaveGameFile.has_dyn_sized_stack, .LP_SaveGameFile.has_dyn_sized_stack, .LI_Error.has_dyn_sized_stack)
+; CHECK: .set .LG_Ticker.has_recursion, or(1, .LG_DoReborn.has_recursion, .LF_Ticker.has_recursion, .LAM_Stop.has_recursion, .LF_StartFinale.has_recursion, .LD_AdvanceDemo.has_recursion, .LR_FlatNumForName.has_recursion, .LR_TextureNumForName.has_recursion, .LP_TempSaveGameFile.has_recursion, .LP_SaveGameFile.has_recursion, .LI_Error.has_recursion)
+; CHECK: .set .LG_Ticker.has_indirect_call, or(0, .LG_DoReborn.has_indirect_call, .LF_Ticker.has_indirect_call, .LAM_Stop.has_indirect_call, .LF_StartFinale.has_indirect_call, .LD_AdvanceDemo.has_indirect_call, .LR_FlatNumForName.has_indirect_call, .LR_TextureNumForName.has_indirect_call, .LP_TempSaveGameFile.has_indirect_call, .LP_SaveGameFile.has_indirect_call, .LI_Error.has_indirect_call)
define void @G_Ticker() {
call void @G_DoReborn()
tail call void @F_Ticker()
@@ -316,15 +316,15 @@ define void @G_Ticker() {
}
; CHECK-LABEL: RunTic:
-; CHECK: .set RunTic.num_vgpr, max(47, G_CheckDemoStatus.num_vgpr, D_AdvanceDemo.num_vgpr, G_Ticker.num_vgpr)
-; CHECK: .set RunTic.num_agpr, max(0, G_CheckDemoStatus.num_agpr, D_AdvanceDemo.num_agpr, G_Ticker.num_agpr)
-; CHECK: .set RunTic.numbered_sgpr, max(105, G_CheckDemoStatus.numbered_sgpr, D_AdvanceDemo.numbered_sgpr, G_Ticker.numbered_sgpr)
-; CHECK: .set RunTic.private_seg_size, 32+max(G_CheckDemoStatus.private_seg_size, D_AdvanceDemo.private_seg_size, G_Ticker.private_seg_size)
-; CHECK: .set RunTic.uses_vcc, or(1, G_CheckDemoStatus.uses_vcc, D_AdvanceDemo.uses_vcc, G_Ticker.uses_vcc)
-; CHECK: .set RunTic.uses_flat_scratch, or(0, G_CheckDemoStatus.uses_flat_scratch, D_AdvanceDemo.uses_flat_scratch, G_Ticker.uses_flat_scratch)
-; CHECK: .set RunTic.has_dyn_sized_stack, or(0, G_CheckDemoStatus.has_dyn_sized_stack, D_AdvanceDemo.has_dyn_sized_stack, G_Ticker.has_dyn_sized_stack)
-; CHECK: .set RunTic.has_recursion, or(1, G_CheckDemoStatus.has_recursion, D_AdvanceDemo.has_recursion, G_Ticker.has_recursion)
-; CHECK: .set RunTic.has_indirect_call, or(0, G_CheckDemoStatus.has_indirect_call, D_AdvanceDemo.has_indirect_call, G_Ticker.has_indirect_call)
+; CHECK: .set .LRunTic.num_vgpr, max(47, .LG_CheckDemoStatus.num_vgpr, .LD_AdvanceDemo.num_vgpr, .LG_Ticker.num_vgpr)
+; CHECK: .set .LRunTic.num_agpr, max(0, .LG_CheckDemoStatus.num_agpr, .LD_AdvanceDemo.num_agpr, .LG_Ticker.num_agpr)
+; CHECK: .set .LRunTic.numbered_sgpr, max(105, .LG_CheckDemoStatus.numbered_sgpr, .LD_AdvanceDemo.numbered_sgpr, .LG_Ticker.numbered_sgpr)
+; CHECK: .set .LRunTic.private_seg_size, 32+max(.LG_CheckDemoStatus.private_seg_size, .LD_AdvanceDemo.private_seg_size, .LG_Ticker.private_seg_size)
+; CHECK: .set .LRunTic.uses_vcc, or(1, .LG_CheckDemoStatus.uses_vcc, .LD_AdvanceDemo.uses_vcc, .LG_Ticker.uses_vcc)
+; CHECK: .set .LRunTic.uses_flat_scratch, or(0, .LG_CheckDemoStatus.uses_flat_scratch, .LD_AdvanceDemo.uses_flat_scratch, .LG_Ticker.uses_flat_scratch)
+; CHECK: .set .LRunTic.has_dyn_sized_stack, or(0, .LG_CheckDemoStatus.has_dyn_sized_stack, .LD_AdvanceDemo.has_dyn_sized_stack, .LG_Ticker.has_dyn_sized_stack)
+; CHECK: .set .LRunTic.has_recursion, or(1, .LG_CheckDemoStatus.has_recursion, .LD_AdvanceDemo.has_recursion, .LG_Ticker.has_recursion)
+; CHECK: .set .LRunTic.has_indirect_call, or(0, .LG_CheckDemoStatus.has_indirect_call, .LD_AdvanceDemo.has_indirect_call, .LG_Ticker.has_indirect_call)
define void @RunTic() {
%call5.i1 = call i32 @G_CheckDemoStatus()
tail call void @D_AdvanceDemo()
diff --git a/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll b/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll
index 918e2fd741d53..4c6a6ae95c5ba 100644
--- a/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll
+++ b/llvm/test/CodeGen/AMDGPU/multi-call-resource-usage-mcexpr.ll
@@ -1,15 +1,15 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck %s
; CHECK-LABEL: {{^}}qux
-; CHECK: .set qux.num_vgpr, 13
-; CHECK: .set qux.num_agpr, 0
-; CHECK: .set qux.numbered_sgpr, 32
-; CHECK: .set qux.private_seg_size, 0
-; CHECK: .set qux.uses_vcc, 0
-; CHECK: .set qux.uses_flat_scratch, 0
-; CHECK: .set qux.has_dyn_sized_stack, 0
-; CHECK: .set qux.has_recursion, 0
-; CHECK: .set qux.has_indirect_call, 0
+; CHECK: .set .Lqux.num_vgpr, 13
+; CHECK: .set .Lqux.num_agpr, 0
+; CHECK: .set .Lqux.numbered_sgpr, 32
+; CHECK: .set .Lqux.private_seg_size, 0
+; CHECK: .set .Lqux.uses_vcc, 0
+; CHECK: .set .Lqux.uses_flat_scratch, 0
+; CHECK: .set .Lqux.has_dyn_sized_stack, 0
+; CHECK: .set .Lqux.has_recursion, 0
+; CHECK: .set .Lqux.has_indirect_call, 0
define void @qux() {
entry:
call void asm sideeffect "", "~{v12}"()
@@ -17,15 +17,15 @@ entry:
}
; CHECK-LABEL: {{^}}baz
-; CHECK: .set baz.num_vgpr, max(49, qux.num_vgpr)
-; CHECK: .set baz.num_agpr, max(0, qux.num_agpr)
-; CHECK: .set baz.numbered_sgpr, max(34, qux.numbered_sgpr)
-; CHECK: .set baz.private_seg_size, 16+max(qux.private_seg_size)
-; CHECK: .set baz.uses_vcc, or(0, qux.uses_vcc)
-; CHECK: .set baz.uses_flat_scratch, or(0, qux.uses_flat_scratch)
-; CHECK: .set baz.has_dyn_sized_stack, or(0, qux.has_dyn_sized_stack)
-; CHECK: .set baz.has_recursion, or(1, qux.has_recursion)
-; CHECK: .set baz.has_indirect_call, or(0, qux.has_indirect_call)
+; CHECK: .set .Lbaz.num_vgpr, max(49, .Lqux.num_vgpr)
+; CHECK: .set .Lbaz.num_agpr, max(0, .Lqux.num_agpr)
+; CHECK: .set .Lbaz.numbered_sgpr, max(34, .Lqux.numbered_sgpr)
+; CHECK: .set .Lbaz.private_seg_size, 16+max(.Lqux.private_seg_size)
+; CHECK: .set .Lbaz.uses_vcc, or(0, .Lqux.uses_vcc)
+; CHECK: .set .Lbaz.uses_flat_scratch, or(0, .Lqux.uses_flat_scratch)
+; CHECK: .set .Lbaz.has_dyn_sized_stack, or(0, .Lqux.has_dyn_sized_stack)
+; CHECK: .set .Lbaz.has_recursion, or(1, .Lqux.has_recursion)
+; CHECK: .set .Lbaz.has_indirect_call, or(0, .Lqux.has_indirect_call)
define void @baz() {
entry:
call void @qux()
@@ -34,15 +34,15 @@ entry:
}
; CHECK-LABEL: {{^}}bar
-; CHECK: .set bar.num_vgpr, max(65, baz.num_vgpr, qux.num_vgpr)
-; CHECK: .set bar.num_agpr, max(0, baz.num_agpr, qux.num_agpr)
-; CHECK: .set bar.numbered_sgpr, max(34, baz.numbered_sgpr, qux.numbered_sgpr)
-; CHECK: .set bar.private_seg_size, 16+max(baz.private_seg_size, qux.private_seg_size)
-; CHECK: .set bar.uses_vcc, or(0, baz.uses_vcc, qux.uses_vcc)
-; CHECK: .set bar.uses_flat_scratch, or(0, baz.uses_flat_scratch, qux.uses_flat_scratch)
-; CHECK: .set bar.has_dyn_sized_stack, or(0, baz.has_dyn_sized_stack, qux.has_dyn_sized_stack)
-; CHECK: .set bar.has_recursion, or(1, baz.has_recursion, qux.has_recursion)
-; CHECK: .set bar.has_indirect_call, or(0, baz.has_indirect_call, qux.has_indirect_call)
+; CHECK: .set .Lbar.num_vgpr, max(65, .Lbaz.num_vgpr, .Lqux.num_vgpr)
+; CHECK: .set .Lbar.num_agpr, max(0, .Lbaz.num_agpr, .Lqux.num_agpr)
+; CHECK: .set .Lbar.numbered_sgpr, max(34, .Lbaz.numbered_sgpr, .Lqux.numbered_sgpr)
+; CHECK: .set .Lbar.private_seg_size, 16+max(.Lbaz.private_seg_size, .Lqux.private_seg_size)
+; CHECK: .set .Lbar.uses_vcc, or(0, .Lbaz.uses_vcc, .Lqux.uses_vcc)
+; CHECK: .set .Lbar.uses_flat_scratch, or(0, .Lbaz.uses_flat_scratch, .Lqux.uses_flat_scratch)
+; CHECK: .set .Lbar.has_dyn_sized_stack, or(0, .Lbaz.has_dyn_sized_stack, .Lqux.has_dyn_sized_stack)
+; CHECK: .set .Lbar.has_recursion, or(1, .Lbaz.has_recursion, .Lqux.has_recursion)
+; CHECK: .set .Lbar.has_indirect_call, or(0, .Lbaz.has_indirect_call, .Lqux.has_indirect_call)
define void @bar() {
entry:
call void @baz()
@@ -53,15 +53,15 @@ entry:
}
; CHECK-LABEL: {{^}}foo
-; CHECK: .set foo.num_vgpr, max(38, bar.num_vgpr)
-; CHECK: .set foo.num_agpr, max(0, bar.num_agpr)
-; CHECK: .set foo.numbered_sgpr, max(34, bar.numbered_sgpr)
-; CHECK: .set foo.private_seg_size, 16+max(bar.private_seg_size)
-; CHECK: .set foo.uses_vcc, or(0, bar.uses_vcc)
-; CHECK: .set foo.uses_flat_scratch, or(0, bar.uses_flat_scratch)
-; CHECK: .set foo.has_dyn_sized_stack, or(0, bar.has_dyn_sized_stack)
-; CHECK: .set foo.has_recursion, or(1, bar.has_recursion)
-; CHECK: .set foo.has_indirect_call, or(0, bar.has_indirect_call)
+; CHECK: .set .Lfoo.num_vgpr, max(38, .Lbar.num_vgpr)
+; CHECK: .set .Lfoo.num_agpr, max(0, .Lbar.num_agpr)
+; CHECK: .set .Lfoo.numbered_sgpr, max(34, .Lbar.numbered_sgpr)
+; CHECK: .set .Lfoo.private_seg_size, 16+max(.Lbar.private_seg_size)
+; CHECK: .set .Lfoo.uses_vcc, or(0, .Lbar.uses_vcc)
+; CHECK: .set .Lfoo.uses_flat_scratch, or(0, .Lbar.uses_flat_scratch)
+; CHECK: .set .Lfoo.has_dyn_sized_stack, or(0, .Lbar.has_dyn_sized_stack)
+; CHECK: .set .Lfoo.has_recursion, or(1, .Lbar.has_recursion)
+; CHECK: .set .Lfoo.has_indirect_call, or(0, .Lbar.has_indirect_call)
define void @foo() {
entry:
call void @bar()
@@ -70,15 +70,15 @@ entry:
}
; CHECK-LABEL: {{^}}usefoo
-; CHECK: .set usefoo.num_vgpr, max(32, foo.num_vgpr)
-; CHECK: .set usefoo.num_agpr, max(0, foo.num_agpr)
-; CHECK: .set usefoo.numbered_sgpr, max(33, foo.numbered_sgpr)
-; CHECK: .set usefoo.private_seg_size, 0+max(foo.private_seg_size)
-; CHECK: .set usefoo.uses_vcc, or(0, foo.uses_vcc)
-; CHECK: .set usefoo.uses_flat_scratch, or(1, foo.uses_flat_scratch)
-; CHECK: .set usefoo.has_dyn_sized_stack, or(0, foo.has_dyn_sized_stack)
-; CHECK: .set usefoo.has_recursion, or(1, foo.has_recursion)
-; CHECK: .set usefoo.has_indirect_call, or(0, foo.has_indirect_call)
+; CHECK: .set .Lusefoo.num_vgpr, max(32, .Lfoo.num_vgpr)
+; CHECK: .set .Lusefoo.num_agpr, max(0, .Lfoo.num_agpr)
+; CHECK: .set .Lusefoo.numbered_sgpr, max(33, .Lfoo.numbered_sgpr)
+; CHECK: .set .Lusefoo.private_seg_size, 0+max(.Lfoo.private_seg_size)
+; CHECK: .set .Lusefoo.uses_vcc, or(0, .Lfoo.uses_vcc)
+; CHECK: .set .Lusefoo.uses_flat_scratch, or(1, .Lfoo.uses_flat_scratch)
+; CHECK: .set .Lusefoo.has_dyn_sized_stack, or(0, .Lfoo.has_dyn_sized_stack)
+; CHECK: .set .Lusefoo.has_recursion, or(1, .Lfoo.has_recursion)
+; CHECK: .set .Lusefoo.has_indirect_call, or(0, .Lfoo.has_indirect_call)
define amdgpu_kernel void @usefoo() {
call void @foo()
ret void
diff --git a/llvm/test/CodeGen/AMDGPU/recursion.ll b/llvm/test/CodeGen/AMDGPU/recursion.ll
index 97c4cccfcf4d9..f1ccbe57dd50f 100644
--- a/llvm/test/CodeGen/AMDGPU/recursion.ll
+++ b/llvm/test/CodeGen/AMDGPU/recursion.ll
@@ -1,13 +1,13 @@
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 | FileCheck %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 | FileCheck %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 | FileCheck -check-prefixes=V5 %s
; CHECK-LABEL: {{^}}recursive:
-; CHECK: .set recursive.private_seg_size, 16+max(16384)
+; CHECK: .set .Lrecursive.private_seg_size, 16+max(16384)
; CHECK: ScratchSize: 16
; V5-LABEL: {{^}}recursive:
-; V5: .set recursive.has_recursion, 1
+; V5: .set .Lrecursive.has_recursion, 1
define void @recursive() {
call void @recursive()
store volatile i32 0, ptr addrspace(1) poison
@@ -15,22 +15,22 @@ define void @recursive() {
}
; CHECK-LABEL: {{^}}tail_recursive:
-; CHECK: .set tail_recursive.private_seg_size, 0
+; CHECK: .set .Ltail_recursive.private_seg_size, 0
; CHECK: ScratchSize: 0
define void @tail_recursive() {
tail call void @tail_recursive()
ret void
}
-; CHECK: .set calls_tail_recursive.private_seg_size, 0+max(tail_recursive.private_seg_size)
+; CHECK: .set .Lcalls_tail_recursive.private_seg_size, 0+max(.Ltail_recursive.private_seg_size)
define void @calls_tail_recursive() norecurse {
tail call void @tail_recursive()
ret void
}
; CHECK-LABEL: {{^}}tail_recursive_with_stack:
-; CHECK: .set tail_recursive_with_stack.private_seg_size, 8
-; CHECK: .set tail_recursive_with_stack.has_recursion, 1
+; CHECK: .set .Ltail_recursive_with_stack.private_seg_size, 8
+; CHECK: .set .Ltail_recursive_with_stack.has_recursion, 1
define void @tail_recursive_with_stack() {
%alloca = alloca i32, addrspace(5)
store volatile i32 0, ptr addrspace(5) %alloca
@@ -41,11 +41,11 @@ define void @tail_recursive_with_stack() {
; For an arbitrary recursive call, report a large number for unknown stack
; usage for code object v4 and older
; CHECK-LABEL: {{^}}calls_recursive:
-; CHECK: .set calls_recursive.private_seg_size, 0+max(16384, recursive.private_seg_size)
+; CHECK: .set .Lcalls_recursive.private_seg_size, 0+max(16384, .Lrecursive.private_seg_size)
;
; V5-LABEL: {{^}}calls_recursive:
-; V5: .set calls_recursive.private_seg_size, 0+max(recursive.private_seg_size)
-; V5: .set calls_recursive.has_dyn_sized_stack, or(0, recursive.has_dyn_sized_stack)
+; V5: .set .Lcalls_recursive.private_seg_size, 0+max(.Lrecursive.private_seg_size)
+; V5: .set .Lcalls_recursive.has_dyn_sized_stack, or(0, .Lrecursive.has_dyn_sized_stack)
define amdgpu_kernel void @calls_recursive() {
call void @recursive()
ret void
@@ -54,7 +54,7 @@ define amdgpu_kernel void @calls_recursive() {
; Make sure we do not report a huge stack size for tail recursive
; functions
; CHECK-LABEL: {{^}}kernel_indirectly_calls_tail_recursive:
-; CHECK: .set kernel_indirectly_calls_tail_recursive.private_seg_size, 0+max(calls_tail_recursive.private_seg_size)
+; CHECK: .set .Lkernel_indirectly_calls_tail_recursive.private_seg_size, 0+max(.Lcalls_tail_recursive.private_seg_size)
define amdgpu_kernel void @kernel_indirectly_calls_tail_recursive() {
call void @calls_tail_recursive()
ret void
@@ -65,22 +65,22 @@ define amdgpu_kernel void @kernel_indirectly_calls_tail_recursive() {
; in the kernel.
; CHECK-LABEL: {{^}}kernel_calls_tail_recursive:
-; CHECK: .set kernel_calls_tail_recursive.private_seg_size, 0+max(16384, tail_recursive.private_seg_size)
+; CHECK: .set .Lkernel_calls_tail_recursive.private_seg_size, 0+max(16384, .Ltail_recursive.private_seg_size)
;
; V5-LABEL: {{^}}kernel_calls_tail_recursive:
-; V5: .set kernel_calls_tail_recursive.private_seg_size, 0+max(tail_recursive.private_seg_size)
-; V5: .set kernel_calls_tail_recursive.has_recursion, or(1, tail_recursive.has_recursion)
+; V5: .set .Lkernel_calls_tail_recursive.private_seg_size, 0+max(.Ltail_recursive.private_seg_size)
+; V5: .set .Lkernel_calls_tail_recursive.has_recursion, or(1, .Ltail_recursive.has_recursion)
define amdgpu_kernel void @kernel_calls_tail_recursive() {
call void @tail_recursive()
ret void
}
; CHECK-LABEL: {{^}}kernel_calls_tail_recursive_with_stack:
-; CHECK: .set kernel_calls_tail_recursive_with_stack.private_seg_size, 0+max(16384, tail_recursive_with_stack.private_seg_size)
+; CHECK: .set .Lkernel_calls_tail_recursive_with_stack.private_seg_size, 0+max(16384, .Ltail_recursive_with_stack.private_seg_size)
;
; V5-LABEL: {{^}}kernel_calls_tail_recursive_with_stack:
-; V5: .set kernel_calls_tail_recursive_with_stack.private_seg_size, 0+max(tail_recursive_with_stack.private_seg_size)
-; V5: .set kernel_calls_tail_recursive_with_stack.has_dyn_sized_stack, or(0, tail_recursive_with_stack.has_dyn_sized_stack)
+; V5: .set .Lkernel_calls_tail_recursive_with_stack.private_seg_size, 0+max(.Ltail_recursive_with_stack.private_seg_size)
+; V5: .set .Lkernel_calls_tail_recursive_with_stack.has_dyn_sized_stack, or(0, .Ltail_recursive_with_stack.has_dyn_sized_stack)
define amdgpu_kernel void @kernel_calls_tail_recursive_with_stack() {
call void @tail_recursive_with_stack()
ret void
diff --git a/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll b/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll
index c3eb3d4602d50..cd85c836df81b 100644
--- a/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll
+++ b/llvm/test/CodeGen/AMDGPU/recursive-resource-usage-mcexpr.ll
@@ -1,50 +1,50 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck %s
; Recursion: foo -> bar -> baz -> qux -> foo
; CHECK-LABEL: {{^}}qux
-; CHECK: .set qux.num_vgpr, max(71, foo.num_vgpr)
-; CHECK: .set qux.num_agpr, max(0, foo.num_agpr)
-; CHECK: .set qux.numbered_sgpr, max(46, foo.numbered_sgpr)
-; CHECK: .set qux.private_seg_size, 16
-; CHECK: .set qux.uses_vcc, or(1, foo.uses_vcc)
-; CHECK: .set qux.uses_flat_scratch, or(0, foo.uses_flat_scratch)
-; CHECK: .set qux.has_dyn_sized_stack, or(0, foo.has_dyn_sized_stack)
-; CHECK: .set qux.has_recursion, or(1, foo.has_recursion)
-; CHECK: .set qux.has_indirect_call, or(0, foo.has_indirect_call)
+; CHECK: .set .Lqux.num_vgpr, max(71, .Lfoo.num_vgpr)
+; CHECK: .set .Lqux.num_agpr, max(0, .Lfoo.num_agpr)
+; CHECK: .set .Lqux.numbered_sgpr, max(46, .Lfoo.numbered_sgpr)
+; CHECK: .set .Lqux.private_seg_size, 16
+; CHECK: .set .Lqux.uses_vcc, or(1, .Lfoo.uses_vcc)
+; CHECK: .set .Lqux.uses_flat_scratch, or(0, .Lfoo.uses_flat_scratch)
+; CHECK: .set .Lqux.has_dyn_sized_stack, or(0, .Lfoo.has_dyn_sized_stack)
+; CHECK: .set .Lqux.has_recursion, or(1, .Lfoo.has_recursion)
+; CHECK: .set .Lqux.has_indirect_call, or(0, .Lfoo.has_indirect_call)
; CHECK-LABEL: {{^}}baz
-; CHECK: .set baz.num_vgpr, max(61, qux.num_vgpr)
-; CHECK: .set baz.num_agpr, max(0, qux.num_agpr)
-; CHECK: .set baz.numbered_sgpr, max(51, qux.numbered_sgpr)
-; CHECK: .set baz.private_seg_size, 16+max(qux.private_seg_size)
-; CHECK: .set baz.uses_vcc, or(1, qux.uses_vcc)
-; CHECK: .set baz.uses_flat_scratch, or(0, qux.uses_flat_scratch)
-; CHECK: .set baz.has_dyn_sized_stack, or(0, qux.has_dyn_sized_stack)
-; CHECK: .set baz.has_recursion, or(1, qux.has_recursion)
-; CHECK: .set baz.has_indirect_call, or(0, qux.has_indirect_call)
+; CHECK: .set .Lbaz.num_vgpr, max(61, .Lqux.num_vgpr)
+; CHECK: .set .Lbaz.num_agpr, max(0, .Lqux.num_agpr)
+; CHECK: .set .Lbaz.numbered_sgpr, max(51, .Lqux.numbered_sgpr)
+; CHECK: .set .Lbaz.private_seg_size, 16+max(.Lqux.private_seg_size)
+; CHECK: .set .Lbaz.uses_vcc, or(1, .Lqux.uses_vcc)
+; CHECK: .set .Lbaz.uses_flat_scratch, or(0, .Lqux.uses_flat_scratch)
+; CHECK: .set .Lbaz.has_dyn_sized_stack, or(0, .Lqux.has_dyn_sized_stack)
+; CHECK: .set .Lbaz.has_recursion, or(1, .Lqux.has_recursion)
+; CHECK: .set .Lbaz.has_indirect_call, or(0, .Lqux.has_indirect_call)
; CHECK-LABEL: {{^}}bar
-; CHECK: .set bar.num_vgpr, max(51, baz.num_vgpr)
-; CHECK: .set bar.num_agpr, max(0, baz.num_agpr)
-; CHECK: .set bar.numbered_sgpr, max(61, baz.numbered_sgpr)
-; CHECK: .set bar.private_seg_size, 16+max(baz.private_seg_size)
-; CHECK: .set bar.uses_vcc, or(1, baz.uses_vcc)
-; CHECK: .set bar.uses_flat_scratch, or(0, baz.uses_flat_scratch)
-; CHECK: .set bar.has_dyn_sized_stack, or(0, baz.has_dyn_sized_stack)
-; CHECK: .set bar.has_recursion, or(1, baz.has_recursion)
-; CHECK: .set bar.has_indirect_call, or(0, baz.has_indirect_call)
+; CHECK: .set .Lbar.num_vgpr, max(51, .Lbaz.num_vgpr)
+; CHECK: .set .Lbar.num_agpr, max(0, .Lbaz.num_agpr)
+; CHECK: .set .Lbar.numbered_sgpr, max(61, .Lbaz.numbered_sgpr)
+; CHECK: .set .Lbar.private_seg_size, 16+max(.Lbaz.private_seg_size)
+; CHECK: .set .Lbar.uses_vcc, or(1, .Lbaz.uses_vcc)
+; CHECK: .set .Lbar.uses_flat_scratch, or(0, .Lbaz.uses_flat_scratch)
+; CHECK: .set .Lbar.has_dyn_sized_stack, or(0, .Lbaz.has_dyn_sized_stack)
+; CHECK: .set .Lbar.has_recursion, or(1, .Lbaz.has_recursion)
+; CHECK: .set .Lbar.has_indirect_call, or(0, .Lbaz.has_indirect_call)
; CHECK-LABEL: {{^}}foo
-; CHECK: .set foo.num_vgpr, max(46, 71)
-; CHECK: .set foo.num_agpr, max(0, 0)
-; CHECK: .set foo.numbered_sgpr, max(71, 61)
-; CHECK: .set foo.private_seg_size, 16
-; CHECK: .set foo.uses_vcc, 1
-; CHECK: .set foo.uses_flat_scratch, 0
-; CHECK: .set foo.has_dyn_sized_stack, 0
-; CHECK: .set foo.has_recursion, 1
-; CHECK: .set foo.has_indirect_call, 0
+; CHECK: .set .Lfoo.num_vgpr, max(46, 71)
+; CHECK: .set .Lfoo.num_agpr, max(0, 0)
+; CHECK: .set .Lfoo.numbered_sgpr, max(71, 61)
+; CHECK: .set .Lfoo.private_seg_size, 16
+; CHECK: .set .Lfoo.uses_vcc, 1
+; CHECK: .set .Lfoo.uses_flat_scratch, 0
+; CHECK: .set .Lfoo.has_dyn_sized_stack, 0
+; CHECK: .set .Lfoo.has_recursion, 1
+; CHECK: .set .Lfoo.has_indirect_call, 0
define void @foo() {
entry:
@@ -79,15 +79,15 @@ entry:
}
; CHECK-LABEL: {{^}}usefoo
-; CHECK: .set usefoo.num_vgpr, max(32, foo.num_vgpr)
-; CHECK: .set usefoo.num_agpr, max(0, foo.num_agpr)
-; CHECK: .set usefoo.numbered_sgpr, max(33, foo.numbered_sgpr)
-; CHECK: .set usefoo.private_seg_size, 0+max(foo.private_seg_size)
-; CHECK: .set usefoo.uses_vcc, or(1, foo.uses_vcc)
-; CHECK: .set usefoo.uses_flat_scratch, or(1, foo.uses_flat_scratch)
-; CHECK: .set usefoo.has_dyn_sized_stack, or(0, foo.has_dyn_sized_stack)
-; CHECK: .set usefoo.has_recursion, or(1, foo.has_recursion)
-; CHECK: .set usefoo.has_indirect_call, or(0, foo.has_indirect_call)
+; CHECK: .set .Lusefoo.num_vgpr, max(32, .Lfoo.num_vgpr)
+; CHECK: .set .Lusefoo.num_agpr, max(0, .Lfoo.num_agpr)
+; CHECK: .set .Lusefoo.numbered_sgpr, max(33, .Lfoo.numbered_sgpr)
+; CHECK: .set .Lusefoo.private_seg_size, 0+max(.Lfoo.private_seg_size)
+; CHECK: .set .Lusefoo.uses_vcc, or(1, .Lfoo.uses_vcc)
+; CHECK: .set .Lusefoo.uses_flat_scratch, or(1, .Lfoo.uses_flat_scratch)
+; CHECK: .set .Lusefoo.has_dyn_sized_stack, or(0, .Lfoo.has_dyn_sized_stack)
+; CHECK: .set .Lusefoo.has_recursion, or(1, .Lfoo.has_recursion)
+; CHECK: .set .Lusefoo.has_indirect_call, or(0, .Lfoo.has_indirect_call)
define amdgpu_kernel void @usefoo() {
call void @foo()
ret void
@@ -96,48 +96,48 @@ define amdgpu_kernel void @usefoo() {
; Recursion: A -> B -> C -> A && C -> D -> C
; CHECK-LABEL: {{^}}D
-; CHECK: .set D.num_vgpr, max(71, C.num_vgpr)
-; CHECK: .set D.num_agpr, max(0, C.num_agpr)
-; CHECK: .set D.numbered_sgpr, max(71, C.numbered_sgpr)
-; CHECK: .set D.private_seg_size, 16+max(C.private_seg_size)
-; CHECK: .set D.uses_vcc, or(1, C.uses_vcc)
-; CHECK: .set D.uses_flat_scratch, or(0, C.uses_flat_scratch)
-; CHECK: .set D.has_dyn_sized_stack, or(0, C.has_dyn_sized_stack)
-; CHECK: .set D.has_recursion, or(1, C.has_recursion)
-; CHECK: .set D.has_indirect_call, or(0, C.has_indirect_call)
+; CHECK: .set .LD.num_vgpr, max(71, .LC.num_vgpr)
+; CHECK: .set .LD.num_agpr, max(0, .LC.num_agpr)
+; CHECK: .set .LD.numbered_sgpr, max(71, .LC.numbered_sgpr)
+; CHECK: .set .LD.private_seg_size, 16+max(.LC.private_seg_size)
+; CHECK: .set .LD.uses_vcc, or(1, .LC.uses_vcc)
+; CHECK: .set .LD.uses_flat_scratch, or(0, .LC.uses_flat_scratch)
+; CHECK: .set .LD.has_dyn_sized_stack, or(0, .LC.has_dyn_sized_stack)
+; CHECK: .set .LD.has_recursion, or(1, .LC.has_recursion)
+; CHECK: .set .LD.has_indirect_call, or(0, .LC.has_indirect_call)
; CHECK-LABEL: {{^}}C
-; CHECK: .set C.num_vgpr, max(42, A.num_vgpr, 71)
-; CHECK: .set C.num_agpr, max(0, A.num_agpr, 0)
-; CHECK: .set C.numbered_sgpr, max(71, A.numbered_sgpr, 71)
-; CHECK: .set C.private_seg_size, 16+max(A.private_seg_size)
-; CHECK: .set C.uses_vcc, or(1, A.uses_vcc)
-; CHECK: .set C.uses_flat_scratch, or(0, A.uses_flat_scratch)
-; CHECK: .set C.has_dyn_sized_stack, or(0, A.has_dyn_sized_stack)
-; CHECK: .set C.has_recursion, or(1, A.has_recursion)
-; CHECK: .set C.has_indirect_call, or(0, A.has_indirect_call)
+; CHECK: .set .LC.num_vgpr, max(42, .LA.num_vgpr, 71)
+; CHECK: .set .LC.num_agpr, max(0, .LA.num_agpr, 0)
+; CHECK: .set .LC.numbered_sgpr, max(71, .LA.numbered_sgpr, 71)
+; CHECK: .set .LC.private_seg_size, 16+max(.LA.private_seg_size)
+; CHECK: .set .LC.uses_vcc, or(1, .LA.uses_vcc)
+; CHECK: .set .LC.uses_flat_scratch, or(0, .LA.uses_flat_scratch)
+; CHECK: .set .LC.has_dyn_sized_stack, or(0, .LA.has_dyn_sized_stack)
+; CHECK: .set .LC.has_recursion, or(1, .LA.has_recursion)
+; CHECK: .set .LC.has_indirect_call, or(0, .LA.has_indirect_call)
; CHECK-LABEL: {{^}}B
-; CHECK: .set B.num_vgpr, max(42, C.num_vgpr)
-; CHECK: .set B.num_agpr, max(0, C.num_agpr)
-; CHECK: .set B.numbered_sgpr, max(71, C.numbered_sgpr)
-; CHECK: .set B.private_seg_size, 16+max(C.private_seg_size)
-; CHECK: .set B.uses_vcc, or(1, C.uses_vcc)
-; CHECK: .set B.uses_flat_scratch, or(0, C.uses_flat_scratch)
-; CHECK: .set B.has_dyn_sized_stack, or(0, C.has_dyn_sized_stack)
-; CHECK: .set B.has_recursion, or(1, C.has_recursion)
-; CHECK: .set B.has_indirect_call, or(0, C.has_indirect_call)
+; CHECK: .set .LB.num_vgpr, max(42, .LC.num_vgpr)
+; CHECK: .set .LB.num_agpr, max(0, .LC.num_agpr)
+; CHECK: .set .LB.numbered_sgpr, max(71, .LC.numbered_sgpr)
+; CHECK: .set .LB.private_seg_size, 16+max(.LC.private_seg_size)
+; CHECK: .set .LB.uses_vcc, or(1, .LC.uses_vcc)
+; CHECK: .set .LB.uses_flat_scratch, or(0, .LC.uses_flat_scratch)
+; CHECK: .set .LB.has_dyn_sized_stack, or(0, .LC.has_dyn_sized_stack)
+; CHECK: .set .LB.has_recursion, or(1, .LC.has_recursion)
+; CHECK: .set .LB.has_indirect_call, or(0, .LC.has_indirect_call)
; CHECK-LABEL: {{^}}A
-; CHECK: .set A.num_vgpr, max(42, 71)
-; CHECK: .set A.num_agpr, max(0, 0)
-; CHECK: .set A.numbered_sgpr, max(71, 71)
-; CHECK: .set A.private_seg_size, 16
-; CHECK: .set A.uses_vcc, 1
-; CHECK: .set A.uses_flat_scratch, 0
-; CHECK: .set A.has_dyn_sized_stack, 0
-; CHECK: .set A.has_recursion, 1
-; CHECK: .set A.has_indirect_call, 0
+; CHECK: .set .LA.num_vgpr, max(42, 71)
+; CHECK: .set .LA.num_agpr, max(0, 0)
+; CHECK: .set .LA.numbered_sgpr, max(71, 71)
+; CHECK: .set .LA.private_seg_size, 16
+; CHECK: .set .LA.uses_vcc, 1
+; CHECK: .set .LA.uses_flat_scratch, 0
+; CHECK: .set .LA.has_dyn_sized_stack, 0
+; CHECK: .set .LA.has_recursion, 1
+; CHECK: .set .LA.has_indirect_call, 0
define void @A() {
call void @B()
diff --git a/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll b/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
index 755d59040896f..56ba2d1ea7027 100644
--- a/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
+++ b/llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -amdgpu-localize-resource-symbols=false -pass-remarks-output=%t -pass-remarks-analysis=kernel-resource-usage -filetype=null %s 2>&1 | FileCheck -check-prefix=STDERR %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -pass-remarks-output=%t -pass-remarks-analysis=kernel-resource-usage -filetype=null %s 2>&1 | FileCheck -check-prefix=STDERR %s
; RUN: FileCheck -check-prefix=REMARK %s < %t
; STDERR: remark: foo.cl:27:0: Function Name: test_kernel
@@ -141,12 +141,12 @@ define void @empty_func() !dbg !8 {
}
; STDERR: remark: foo.cl:64:0: Function Name: test_indirect_call
-; STDERR-NEXT: remark: foo.cl:64:0: TotalSGPRs: test_indirect_call.numbered_sgpr+6
-; STDERR-NEXT: remark: foo.cl:64:0: VGPRs: test_indirect_call.num_vgpr
-; STDERR-NEXT: remark: foo.cl:64:0: AGPRs: test_indirect_call.num_agpr
+; STDERR-NEXT: remark: foo.cl:64:0: TotalSGPRs: .Ltest_indirect_call.numbered_sgpr+6
+; STDERR-NEXT: remark: foo.cl:64:0: VGPRs: .Ltest_indirect_call.num_vgpr
+; STDERR-NEXT: remark: foo.cl:64:0: AGPRs: .Ltest_indirect_call.num_agpr
; STDERR-NEXT: remark: foo.cl:64:0: ScratchSize [bytes/lane]: 0
; STDERR-NEXT: remark: foo.cl:64:0: Dynamic Stack: True
-; STDERR-NEXT: remark: foo.cl:64:0: Occupancy [waves/SIMD]: occupancy(10, 4, 256, 8, 10, max(test_indirect_call.numbered_sgpr+extrasgprs(test_indirect_call.uses_vcc, test_indirect_call.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(test_indirect_call.num_agpr, test_indirect_call.num_vgpr), 1, 0))
+; STDERR-NEXT: remark: foo.cl:64:0: Occupancy [waves/SIMD]: occupancy(10, 4, 256, 8, 10, max(.Ltest_indirect_call.numbered_sgpr+extrasgprs(.Ltest_indirect_call.uses_vcc, .Ltest_indirect_call.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(.Ltest_indirect_call.num_agpr, .Ltest_indirect_call.num_vgpr), 1, 0))
; STDERR-NEXT: remark: foo.cl:64:0: SGPRs Spill: 0
; STDERR-NEXT: remark: foo.cl:64:0: VGPRs Spill: 0
; STDERR-NEXT: remark: foo.cl:64:0: LDS Size [bytes/block]: 0
@@ -159,12 +159,12 @@ define amdgpu_kernel void @test_indirect_call() !dbg !9 {
}
; STDERR: remark: foo.cl:74:0: Function Name: test_indirect_w_static_stack
-; STDERR-NEXT: remark: foo.cl:74:0: TotalSGPRs: test_indirect_w_static_stack.numbered_sgpr+6
-; STDERR-NEXT: remark: foo.cl:74:0: VGPRs: test_indirect_w_static_stack.num_vgpr
-; STDERR-NEXT: remark: foo.cl:74:0: AGPRs: test_indirect_w_static_stack.num_agpr
+; STDERR-NEXT: remark: foo.cl:74:0: TotalSGPRs: .Ltest_indirect_w_static_stack.numbered_sgpr+6
+; STDERR-NEXT: remark: foo.cl:74:0: VGPRs: .Ltest_indirect_w_static_stack.num_vgpr
+; STDERR-NEXT: remark: foo.cl:74:0: AGPRs: .Ltest_indirect_w_static_stack.num_agpr
; STDERR-NEXT: remark: foo.cl:74:0: ScratchSize [bytes/lane]: 144
; STDERR-NEXT: remark: foo.cl:74:0: Dynamic Stack: True
-; STDERR-NEXT: remark: foo.cl:74:0: Occupancy [waves/SIMD]: occupancy(10, 4, 256, 8, 10, max(test_indirect_w_static_stack.numbered_sgpr+extrasgprs(test_indirect_w_static_stack.uses_vcc, test_indirect_w_static_stack.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(test_indirect_w_static_stack.num_agpr, test_indirect_w_static_stack.num_vgpr), 1, 0))
+; STDERR-NEXT: remark: foo.cl:74:0: Occupancy [waves/SIMD]: occupancy(10, 4, 256, 8, 10, max(.Ltest_indirect_w_static_stack.numbered_sgpr+extrasgprs(.Ltest_indirect_w_static_stack.uses_vcc, .Ltest_indirect_w_static_stack.uses_flat_scratch, 1), 1, 0), max(totalnumvgprs(.Ltest_indirect_w_static_stack.num_agpr, .Ltest_indirect_w_static_stack.num_vgpr), 1, 0))
; STDERR-NEXT: remark: foo.cl:74:0: SGPRs Spill: 0
; STDERR-NEXT: remark: foo.cl:74:0: VGPRs Spill: 0
; STDERR-NEXT: remark: foo.cl:74:0: LDS Size [bytes/block]: 0
diff --git a/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll b/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll
index 1711fe6934b36..a16e998d8b0bc 100644
--- a/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll
+++ b/llvm/test/CodeGen/AMDGPU/resource-usage-dead-function.ll
@@ -1,6 +1,6 @@
-; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN,ALL %s
-; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
-; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -amdgpu-localize-resource-symbols=false -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
+; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN,ALL %s
+; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
+; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -o - | FileCheck -check-prefixes=GCN-V5,ALL %s
; Make sure there's no assertion when trying to report the resource
; usage for a function which becomes dead during codegen.
@@ -19,8 +19,8 @@ define internal fastcc void @unreachable() {
; GCN-NOT: .amdhsa_uses_dynamic_stack
; GCN-V5: .amdhsa_uses_dynamic_stack
-; ALL: .set entry.private_seg_size, 0
-; ALL: .set entry.has_dyn_sized_stack, 0
+; ALL: .set .Lentry.private_seg_size, 0
+; ALL: .set .Lentry.has_dyn_sized_stack, 0
define amdgpu_kernel void @entry() {
bb0:
br i1 false, label %bb1, label %bb2
diff --git a/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll b/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
index e8a5ebbf9f5ac..49916ba1ce160 100644
--- a/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
+++ b/llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
@@ -1,5 +1,5 @@
; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-exec-sync,amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 -amdgpu-localize-resource-symbols=false -verify-machineinstrs -o - %s | FileCheck -check-prefixes=SOUT %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 -verify-machineinstrs -o - %s | FileCheck -check-prefixes=SOUT %s
%class.ExpAmdWorkgroupWaveBarrier = type { target("amdgcn.named.barrier", 0) }
@@ -12,7 +12,7 @@
; CHECK-NEXT: @bar1 = internal addrspace(3) global [4 x %class.ExpAmdWorkgroupWaveBarrier] poison, !absolute_symbol !2
; CHECK-NEXT: @bar1.kernel1 = internal addrspace(3) global [4 x %class.ExpAmdWorkgroupWaveBarrier] poison, !absolute_symbol !2
-; SOUT: .set func1.num_named_barrier, 7
+; SOUT: .set .Lfunc1.num_named_barrier, 7
define void @func1() {
call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar3, i32 7)
call void @llvm.amdgcn.s.barrier.join(ptr addrspace(3) @bar3)
@@ -20,7 +20,7 @@ define void @func1() {
ret void
}
-; SOUT: .set func2.num_named_barrier, 2
+; SOUT: .set .Lfunc2.num_named_barrier, 2
define void @func2() {
call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar2, i32 7)
call void @llvm.amdgcn.s.barrier.join(ptr addrspace(3) @bar2)
@@ -29,7 +29,7 @@ define void @func2() {
}
; SOUT: .amdhsa_named_barrier_count 2
-; SOUT: .set kernel1.num_named_barrier, max(6, func1.num_named_barrier, func2.num_named_barrier)
+; SOUT: .set .Lkernel1.num_named_barrier, max(6, .Lfunc1.num_named_barrier, .Lfunc2.num_named_barrier)
define amdgpu_kernel void @kernel1() #0 {
; CHECK-DAG: call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar1.kernel1, i32 11)
call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar1, i32 11)
@@ -43,7 +43,7 @@ define amdgpu_kernel void @kernel1() #0 {
}
; SOUT: .amdhsa_named_barrier_count 2
-; SOUT: .set kernel2.num_named_barrier, max(6, func2.num_named_barrier)
+; SOUT: .set .Lkernel2.num_named_barrier, max(6, .Lfunc2.num_named_barrier)
define amdgpu_kernel void @kernel2() #0 {
; CHECK-DAG: call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar1, i32 9)
call void @llvm.amdgcn.s.barrier.signal.var(ptr addrspace(3) @bar1, i32 9)
diff --git a/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll b/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll
index 5ef9fce3a67fd..15ae330db5e7e 100644
--- a/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll
+++ b/llvm/test/CodeGen/AMDGPU/unnamed-function-resource-info.ll
@@ -1,30 +1,30 @@
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -amdgpu-localize-resource-symbols=false < %s | FileCheck %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 < %s | FileCheck %s
; CHECK-LABEL: __unnamed_1:
-; CHECK: .set __unnamed_1.num_vgpr, 0
-; CHECK: .set __unnamed_1.num_agpr, 0
-; CHECK: .set __unnamed_1.numbered_sgpr, 32
-; CHECK: .set __unnamed_1.private_seg_size, 0
-; CHECK: .set __unnamed_1.uses_vcc, 0
-; CHECK: .set __unnamed_1.uses_flat_scratch, 0
-; CHECK: .set __unnamed_1.has_dyn_sized_stack, 0
-; CHECK: .set __unnamed_1.has_recursion, 0
-; CHECK: .set __unnamed_1.has_indirect_call, 0
+; CHECK: .set .L__unnamed_1.num_vgpr, 0
+; CHECK: .set .L__unnamed_1.num_agpr, 0
+; CHECK: .set .L__unnamed_1.numbered_sgpr, 32
+; CHECK: .set .L__unnamed_1.private_seg_size, 0
+; CHECK: .set .L__unnamed_1.uses_vcc, 0
+; CHECK: .set .L__unnamed_1.uses_flat_scratch, 0
+; CHECK: .set .L__unnamed_1.has_dyn_sized_stack, 0
+; CHECK: .set .L__unnamed_1.has_recursion, 0
+; CHECK: .set .L__unnamed_1.has_indirect_call, 0
define void @1() {
entry:
ret void
}
; CHECK-LABEL: __unnamed_2:
-; CHECK: .set __unnamed_2.num_vgpr, max(1, __unnamed_1.num_vgpr)
-; CHECK: .set __unnamed_2.num_agpr, max(0, __unnamed_1.num_agpr)
-; CHECK: .set __unnamed_2.numbered_sgpr, max(34, __unnamed_1.numbered_sgpr)
-; CHECK: .set __unnamed_2.private_seg_size, 16+max(__unnamed_1.private_seg_size)
-; CHECK: .set __unnamed_2.uses_vcc, or(0, __unnamed_1.uses_vcc)
-; CHECK: .set __unnamed_2.uses_flat_scratch, or(0, __unnamed_1.uses_flat_scratch)
-; CHECK: .set __unnamed_2.has_dyn_sized_stack, or(0, __unnamed_1.has_dyn_sized_stack)
-; CHECK: .set __unnamed_2.has_recursion, or(1, __unnamed_1.has_recursion)
-; CHECK: .set __unnamed_2.has_indirect_call, or(0, __unnamed_1.has_indirect_call)
+; CHECK: .set .L__unnamed_2.num_vgpr, max(1, .L__unnamed_1.num_vgpr)
+; CHECK: .set .L__unnamed_2.num_agpr, max(0, .L__unnamed_1.num_agpr)
+; CHECK: .set .L__unnamed_2.numbered_sgpr, max(34, .L__unnamed_1.numbered_sgpr)
+; CHECK: .set .L__unnamed_2.private_seg_size, 16+max(.L__unnamed_1.private_seg_size)
+; CHECK: .set .L__unnamed_2.uses_vcc, or(0, .L__unnamed_1.uses_vcc)
+; CHECK: .set .L__unnamed_2.uses_flat_scratch, or(0, .L__unnamed_1.uses_flat_scratch)
+; CHECK: .set .L__unnamed_2.has_dyn_sized_stack, or(0, .L__unnamed_1.has_dyn_sized_stack)
+; CHECK: .set .L__unnamed_2.has_recursion, or(1, .L__unnamed_1.has_recursion)
+; CHECK: .set .L__unnamed_2.has_indirect_call, or(0, .L__unnamed_1.has_indirect_call)
define void @2() {
entry:
call void @1()
@@ -32,15 +32,15 @@ entry:
}
; CHECK-LABEL: {{^}}use
-; CHECK: .set use.num_vgpr, max(32, __unnamed_1.num_vgpr, __unnamed_2.num_vgpr)
-; CHECK: .set use.num_agpr, max(0, __unnamed_1.num_agpr, __unnamed_2.num_agpr)
-; CHECK: .set use.numbered_sgpr, max(33, __unnamed_1.numbered_sgpr, __unnamed_2.numbered_sgpr)
-; CHECK: .set use.private_seg_size, 0+max(__unnamed_1.private_seg_size, __unnamed_2.private_seg_size)
-; CHECK: .set use.uses_vcc, or(0, __unnamed_1.uses_vcc, __unnamed_2.uses_vcc)
-; CHECK: .set use.uses_flat_scratch, or(1, __unnamed_1.uses_flat_scratch, __unnamed_2.uses_flat_scratch)
-; CHECK: .set use.has_dyn_sized_stack, or(0, __unnamed_1.has_dyn_sized_stack, __unnamed_2.has_dyn_sized_stack)
-; CHECK: .set use.has_recursion, or(1, __unnamed_1.has_recursion, __unnamed_2.has_recursion)
-; CHECK: .set use.has_indirect_call, or(0, __unnamed_1.has_indirect_call, __unnamed_2.has_indirect_call)
+; CHECK: .set .Luse.num_vgpr, max(32, .L__unnamed_1.num_vgpr, .L__unnamed_2.num_vgpr)
+; CHECK: .set .Luse.num_agpr, max(0, .L__unnamed_1.num_agpr, .L__unnamed_2.num_agpr)
+; CHECK: .set .Luse.numbered_sgpr, max(33, .L__unnamed_1.numbered_sgpr, .L__unnamed_2.numbered_sgpr)
+; CHECK: .set .Luse.private_seg_size, 0+max(.L__unnamed_1.private_seg_size, .L__unnamed_2.private_seg_size)
+; CHECK: .set .Luse.uses_vcc, or(0, .L__unnamed_1.uses_vcc, .L__unnamed_2.uses_vcc)
+; CHECK: .set .Luse.uses_flat_scratch, or(1, .L__unnamed_1.uses_flat_scratch, .L__unnamed_2.uses_flat_scratch)
+; CHECK: .set .Luse.has_dyn_sized_stack, or(0, .L__unnamed_1.has_dyn_sized_stack, .L__unnamed_2.has_dyn_sized_stack)
+; CHECK: .set .Luse.has_recursion, or(1, .L__unnamed_1.has_recursion, .L__unnamed_2.has_recursion)
+; CHECK: .set .Luse.has_indirect_call, or(0, .L__unnamed_1.has_indirect_call, .L__unnamed_2.has_indirect_call)
define amdgpu_kernel void @use() {
call void @1()
call void @2()
>From 0bec3c2809f63c09974b9ddb2a1cca9f5b8626c0 Mon Sep 17 00:00:00 2001
From: Janek van Oirschot <janek.vanoirschot at amd.com>
Date: Tue, 31 Mar 2026 15:33:13 +0100
Subject: [PATCH 3/3] formatting
---
llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 20 +++++++++----------
.../Target/AMDGPU/AMDGPUMCResourceInfo.cpp | 10 ++++------
2 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
index 72cb11202c221..0b1447f6270dc 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -403,8 +403,8 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
const uint64_t MaxScratchPerWorkitem =
STM.getMaxWaveScratchSize() / STM.getWavefrontSize();
- MCSymbol *ScratchSizeSymbol = RI.getSymbol(
- FnSym->getName(), RIK::RIK_PrivateSegSize, OutContext);
+ MCSymbol *ScratchSizeSymbol =
+ RI.getSymbol(FnSym->getName(), RIK::RIK_PrivateSegSize, OutContext);
uint64_t ScratchSize;
if (ScratchSizeSymbol->isVariable() &&
TryGetMCExprValue(ScratchSizeSymbol->getVariableValue(), ScratchSize) &&
@@ -435,8 +435,8 @@ void AMDGPUAsmPrinter::validateMCResourceInfo(Function &F) {
MCSymbol *VCCUsedSymbol =
RI.getSymbol(FnSym->getName(), RIK::RIK_UsesVCC, OutContext);
- MCSymbol *FlatUsedSymbol = RI.getSymbol(
- FnSym->getName(), RIK::RIK_UsesFlatScratch, OutContext);
+ MCSymbol *FlatUsedSymbol =
+ RI.getSymbol(FnSym->getName(), RIK::RIK_UsesFlatScratch, OutContext);
uint64_t VCCUsed, FlatUsed, NumSgpr;
if (NumSGPRSymbol->isVariable() && VCCUsedSymbol->isVariable() &&
@@ -768,11 +768,10 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
emitCommonFunctionComments(
RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumVGPR, OutContext)
->getVariableValue(),
- STM.hasMAIInsts()
- ? RI.getSymbol(CurrentFnSym->getName(), RIK::RIK_NumAGPR,
- OutContext)
- ->getVariableValue()
- : nullptr,
+ STM.hasMAIInsts() ? RI.getSymbol(CurrentFnSym->getName(),
+ RIK::RIK_NumAGPR, OutContext)
+ ->getVariableValue()
+ : nullptr,
RI.createTotalNumVGPRs(MF, Ctx),
RI.createTotalNumSGPRs(
MF,
@@ -1013,8 +1012,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
auto GetSymRefExpr =
[&](MCResourceInfo::ResourceInfoKind RIK) -> const MCExpr * {
- MCSymbol *Sym =
- RI.getSymbol(CurrentFnSym->getName(), RIK, OutContext);
+ MCSymbol *Sym = RI.getSymbol(CurrentFnSym->getName(), RIK, OutContext);
return MCSymbolRefExpr::create(Sym, Ctx);
};
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
index e15a4a1b0e7f6..83012c4cb72f2 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
@@ -284,8 +284,7 @@ void MCResourceInfo::gatherResourceInfo(
FRI.Callees, OutContext);
} else {
const MCExpr *SymRef = MCSymbolRefExpr::create(MaxSym, OutContext);
- MCSymbol *LocalNumSym =
- getSymbol(FnSym->getName(), RIK, OutContext);
+ MCSymbol *LocalNumSym = getSymbol(FnSym->getName(), RIK, OutContext);
const MCExpr *MaxWithLocal = AMDGPUMCExpr::createMax(
{MCConstantExpr::create(numRegs, OutContext), SymRef}, OutContext);
LocalNumSym->setVariableValue(MaxWithLocal);
@@ -304,8 +303,7 @@ void MCResourceInfo::gatherResourceInfo(
// The expression for private segment size should be: FRI.PrivateSegmentSize
// + max(FRI.Callees, FRI.CalleeSegmentSize)
SmallVector<const MCExpr *, 8> ArgExprs;
- MCSymbol *Sym =
- getSymbol(FnSym->getName(), RIK_PrivateSegSize, OutContext);
+ MCSymbol *Sym = getSymbol(FnSym->getName(), RIK_PrivateSegSize, OutContext);
if (FRI.CalleeSegmentSize) {
LLVM_DEBUG(dbgs() << "MCResUse: " << Sym->getName() << ": Adding "
<< FRI.CalleeSegmentSize
@@ -399,7 +397,7 @@ const MCExpr *MCResourceInfo::createTotalNumSGPRs(const MachineFunction &MF,
getSymRefExpr(FnSym->getName(), RIK_NumSGPR, Ctx),
AMDGPUMCExpr::createExtraSGPRs(
getSymRefExpr(FnSym->getName(), RIK_UsesVCC, Ctx),
- getSymRefExpr(FnSym->getName(), RIK_UsesFlatScratch, Ctx),
- hasXnack, Ctx),
+ getSymRefExpr(FnSym->getName(), RIK_UsesFlatScratch, Ctx), hasXnack,
+ Ctx),
Ctx);
}
More information about the llvm-commits
mailing list