[llvm] 6b7dbd8 - AMDGPU/GlobalISel: RegBankLegalize rules for gfx950 mfmas (#204696)

via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 19 10:51:48 PDT 2026


Author: vangthao95
Date: 2026-06-19T10:51:44-07:00
New Revision: 6b7dbd8f485dc710f41fe5383ac99c2c42f9f6b9

URL: https://github.com/llvm/llvm-project/commit/6b7dbd8f485dc710f41fe5383ac99c2c42f9f6b9
DIFF: https://github.com/llvm/llvm-project/commit/6b7dbd8f485dc710f41fe5383ac99c2c42f9f6b9.diff

LOG: AMDGPU/GlobalISel: RegBankLegalize rules for gfx950 mfmas (#204696)

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
index 00ac786855c89..da2fed40539f3 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
@@ -2632,16 +2632,34 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
 
   // gfx90a+ only MFMAs
   addRulesForIOpcs(
-      {amdgcn_mfma_f32_32x32x4bf16_1k, amdgcn_mfma_f32_16x16x4bf16_1k,
-       amdgcn_mfma_f32_4x4x4bf16_1k, amdgcn_mfma_f32_32x32x8bf16_1k,
-       amdgcn_mfma_f32_16x16x16bf16_1k, amdgcn_mfma_f64_16x16x4f64,
-       amdgcn_mfma_f64_4x4x4f64, amdgcn_mfma_i32_16x16x32_i8,
-       amdgcn_mfma_i32_32x32x16_i8, amdgcn_mfma_f32_16x16x8_xf32,
-       amdgcn_mfma_f32_32x32x4_xf32, amdgcn_mfma_f32_16x16x32_bf8_bf8,
-       amdgcn_mfma_f32_16x16x32_bf8_fp8, amdgcn_mfma_f32_16x16x32_fp8_bf8,
-       amdgcn_mfma_f32_16x16x32_fp8_fp8, amdgcn_mfma_f32_32x32x16_bf8_bf8,
-       amdgcn_mfma_f32_32x32x16_bf8_fp8, amdgcn_mfma_f32_32x32x16_fp8_bf8,
-       amdgcn_mfma_f32_32x32x16_fp8_fp8})
+      {
+          amdgcn_mfma_f32_32x32x4bf16_1k,
+          amdgcn_mfma_f32_16x16x4bf16_1k,
+          amdgcn_mfma_f32_4x4x4bf16_1k,
+          amdgcn_mfma_f32_32x32x8bf16_1k,
+          amdgcn_mfma_f32_16x16x16bf16_1k,
+          amdgcn_mfma_f64_16x16x4f64,
+          amdgcn_mfma_f64_4x4x4f64,
+          amdgcn_mfma_i32_16x16x32_i8,
+          amdgcn_mfma_i32_32x32x16_i8,
+          amdgcn_mfma_f32_16x16x8_xf32,
+          amdgcn_mfma_f32_32x32x4_xf32,
+          amdgcn_mfma_f32_16x16x32_bf8_bf8,
+          amdgcn_mfma_f32_16x16x32_bf8_fp8,
+          amdgcn_mfma_f32_16x16x32_fp8_bf8,
+          amdgcn_mfma_f32_16x16x32_fp8_fp8,
+          amdgcn_mfma_f32_32x32x16_bf8_bf8,
+          amdgcn_mfma_f32_32x32x16_bf8_fp8,
+          amdgcn_mfma_f32_32x32x16_fp8_bf8,
+          amdgcn_mfma_f32_32x32x16_fp8_fp8,
+          // gfx950
+          amdgcn_mfma_f32_16x16x32_f16,
+          amdgcn_mfma_f32_32x32x16_f16,
+          amdgcn_mfma_i32_16x16x64_i8,
+          amdgcn_mfma_i32_32x32x32_i8,
+          // TODO: bf16 variants fail in IRTranslator.
+          // amdgcn_mfma_f32_16x16x32_bf16, amdgcn_mfma_f32_32x32x16_bf16,
+      })
       .Any({{DivAnyTy},
             {{VgprOrAgprAnyTy},
              {IntrId, VgprAnyTy, VgprAnyTy, VgprOrAgprAnyTy}}});

diff  --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
index a1fe463de1c54..78e9c9294cd09 100644
--- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
+++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -global-isel=0 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,SDAG %s
-; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -global-isel=1 -global-isel-abort=2 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,GISEL %s
+; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -global-isel=1 -new-reg-bank-select -global-isel-abort=2 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,GISEL %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -global-isel=0 --amdgpu-mfma-vgpr-form=0 < %s | FileCheck -enable-var-scope --check-prefixes=HEURRC %s
 ; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -global-isel=0 --amdgpu-mfma-vgpr-form=1 < %s | FileCheck -enable-var-scope --check-prefixes=VGPRRC %s
 


        


More information about the llvm-commits mailing list