[llvm] AMDGPU/GlobalISel: RegBankLegalize rules for mfma_scale (PR #203279)
Petar Avramovic via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 11 07:12:38 PDT 2026
https://github.com/petar-avramovic created https://github.com/llvm/llvm-project/pull/203279
None
>From 11a3ea648ddb2182059321a76179e0bec70b17f2 Mon Sep 17 00:00:00 2001
From: Petar Avramovic <Petar.Avramovic at amd.com>
Date: Thu, 11 Jun 2026 15:44:46 +0200
Subject: [PATCH] AMDGPU/GlobalISel: RegBankLegalize rules for mfma_scale
---
llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp | 7 +++++++
.../AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll | 2 +-
.../AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll | 2 +-
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
index 838951bcd8d26..7e9724670f1d3 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
@@ -2532,6 +2532,13 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
{{VgprOrAgprAnyTy},
{IntrId, VgprAnyTy, VgprAnyTy, VgprOrAgprAnyTy, VgprAnyTy}}});
+ addRulesForIOpcs({amdgcn_mfma_scale_f32_32x32x64_f8f6f4,
+ amdgcn_mfma_scale_f32_16x16x128_f8f6f4})
+ .Any({{DivAnyTy},
+ {{VgprOrAgprAnyTy},
+ {IntrId, VgprAnyTy, VgprAnyTy, VgprAnyTy, Imm, Imm, Imm, Vgpr32,
+ Imm, Vgpr32}}});
+
// WMMA/SWMMAC intrinsics: all register operands map to VGPR.
addRulesForIOpcs(
{// WMMA GFX11+
diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
index 20f6f5021d5ef..66469851b9e21 100644
--- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
+++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
@@ -1,6 +1,6 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=0 < %s | FileCheck -check-prefixes=GCN,SDAG %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 < %s | FileCheck -check-prefixes=GCN,GISEL %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 -new-reg-bank-select < %s | FileCheck -check-prefixes=GCN,GISEL %s
; 0 = fp8
; 1 = bf8
diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll
index f9332d752482d..41d5adefd1fab 100644
--- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll
+++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll
@@ -1,6 +1,6 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=0 < %s | FileCheck -check-prefixes=GCN,SDAG %s
-; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 < %s | FileCheck -check-prefixes=GCN,GISEL %s
+; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 -new-reg-bank-select < %s | FileCheck -check-prefixes=GCN,GISEL %s
; 0 = fp8
; 1 = bf8
More information about the llvm-commits
mailing list