[llvm] [AMDGPU] Add VBUFFER encoding for gfx13 (PR #196262)

via llvm-commits llvm-commits at lists.llvm.org
Thu May 7 01:51:12 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Mariusz Sikora (mariusz-sikora-at-amd)

<details>
<summary>Changes</summary>



---

Patch is 347.89 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/196262.diff


9 Files Affected:

- (modified) llvm/lib/Target/AMDGPU/AMDGPU.td (+7-2) 
- (modified) llvm/lib/Target/AMDGPU/BUFInstructions.td (+206-74) 
- (modified) llvm/lib/Target/AMDGPU/GCNSubtarget.h (+4-2) 
- (modified) llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp (+2-2) 
- (added) llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mtbuf.s (+663) 
- (added) llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mtbuf_alias.s (+27) 
- (added) llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf.s (+2662) 
- (added) llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf_alias.s (+201) 
- (added) llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf_format.s (+699) 


``````````diff
diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td
index 25fc64d178858..44f9202801fe7 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPU.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPU.td
@@ -2506,6 +2506,11 @@ def isGFX11Plus :
   Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX11">,
   AssemblerPredicate<(all_of FeatureGFX11Insts)>;
 
+def isGFX11GFX12 :
+  Predicate<"Subtarget->getGeneration() == AMDGPUSubtarget::GFX11 ||"
+            "Subtarget->getGeneration() == AMDGPUSubtarget::GFX12">,
+  AssemblerPredicate<(all_of FeatureGFX11Insts, (not FeatureGFX13Insts))>;
+
 def isGFX11PlusNot12_50 :
   Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX11 &&"
             "(Subtarget->getGeneration() >= AMDGPUSubtarget::GFX13 || !Subtarget->hasGFX1250Insts())">,
@@ -2590,10 +2595,10 @@ def LDSRequiresM0Init : Predicate<"Subtarget->ldsRequiresM0Init()">;
 def NotLDSRequiresM0Init : Predicate<"!Subtarget->ldsRequiresM0Init()">;
 
 def HasMTBUFInsts : Predicate<"Subtarget->hasMTBUFInsts()">,
-  AssemblerPredicate<(all_of (not FeatureGFX1250Insts))>;
+  AssemblerPredicate<(any_of FeatureGFX13Insts, (not FeatureGFX1250Insts))>;
 
 def HasFormattedMUBUFInsts : Predicate<"Subtarget->hasFormattedMUBUFInsts()">,
-  AssemblerPredicate<(all_of (not FeatureGFX1250Insts))>;
+  AssemblerPredicate<(any_of FeatureGFX13Insts, (not FeatureGFX1250Insts))>;
 
 def HasExportInsts : Predicate<"Subtarget->hasExportInsts()">,
   AssemblerPredicate<(any_of FeatureGFX13Insts, (all_of (not FeatureGFX90AInsts), (not FeatureGFX1250Insts)))>;
diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td
index 568fff2226dce..909679b899714 100644
--- a/llvm/lib/Target/AMDGPU/BUFInstructions.td
+++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td
@@ -2534,7 +2534,7 @@ multiclass MUBUF_Real_gfx7<bits<8> op> {
 }
 
 //===----------------------------------------------------------------------===//
-// Base ENC_VBUFFER for GFX12.
+// Base ENC_VBUFFER for GFX12, GFX13.
 //===----------------------------------------------------------------------===//
 
 class VBUFFER_Real <bits<8> op, BUF_Pseudo ps, string real_name> :
@@ -2624,6 +2624,68 @@ multiclass VBUFFER_MTBUF_Real_gfx12<bits<4> op, string real_name> {
   }
 }
 
+class VBUFFER_Real_gfx13<bits<8> op, BUF_Pseudo ps, string real_name> :
+    VBUFFER_Real<op, ps, real_name>,
+    SIMCInstr<ps.PseudoInstr, SIEncodingFamily.GFX13> {
+  let AssemblerPredicate = isGFX13Only;
+  let DecoderNamespace = "GFX13";
+}
+
+multiclass VBUFFER_MUBUF_Real_gfx13<bits<8> op, string real_name> {
+  defvar ps = !cast<MUBUF_Pseudo>(NAME);
+  def _gfx13 : VBUFFER_Real_gfx13<op, ps, real_name> {
+    // Set the format field to be 1 to avoid round-trip issues, as some tools
+    // print BUF_FMT_INVALID for format 0.
+    let Inst{61-55} = 0b0000001;
+  }
+}
+
+multiclass VBUFFER_MTBUF_Real_gfx13<bits<8> op, string real_name> {
+  defvar ps = !cast<MTBUF_Pseudo>(NAME);
+  def _gfx13 : VBUFFER_Real_gfx13<op, ps, real_name> {
+    bits<7> format;
+    let Inst{61-55} = format;
+  }
+}
+
+//===----------------------------------------------------------------------===//
+// VBUFFER (MUBUF) - GFX13.
+//===----------------------------------------------------------------------===//
+
+class Mnem_gfx13 <string mnemonic, string real_name> :
+  MnemonicAlias<mnemonic, real_name>, Requires<[isGFX13Only]>;
+
+multiclass MUBUF_Real_AllAddr_gfx13<bits<8> op, string real_name = get_BUF_ps<NAME>.Mnemonic> {
+  foreach mode = ["_BOTHEN", "_IDXEN", "_OFFEN", "_OFFSET"] in {
+    defm _VBUFFER # mode : VBUFFER_MUBUF_Real_gfx13<op, real_name>;
+    defm _TFE_VBUFFER # mode : VBUFFER_MUBUF_Real_gfx13<op, real_name>;
+  }
+  defvar ps = get_BUF_ps<NAME>;
+  if !ne(ps.Mnemonic, real_name) then
+    def : Mnem_gfx13<ps.Mnemonic, real_name>;
+}
+
+multiclass MUBUF_Real_Atomics_gfx13<bits<8> op, string real_name = get_BUF_ps<NAME>.Mnemonic,
+                                    string extra_alias = real_name> {
+  foreach mode = ["_BOTHEN", "_IDXEN", "_OFFEN", "_OFFSET"] in {
+    foreach rtn = ["", "_RTN"] in {
+      defm _VBUFFER # mode # rtn : VBUFFER_MUBUF_Real_gfx13<op, real_name>;
+    }
+  }
+  defvar ps = get_BUF_ps<NAME>;
+  if !ne(ps.Mnemonic, real_name) then
+    def : Mnem_gfx13<ps.Mnemonic, real_name>;
+  if !ne(extra_alias, real_name) then
+    def : Mnem_gfx13<extra_alias, real_name>;
+}
+
+defm BUFFER_ATOMIC_MIN_F64          : MUBUF_Real_Atomics_gfx13<0x5f, "buffer_atomic_min_num_f64", "buffer_atomic_fmin_x2">;
+defm BUFFER_ATOMIC_MAX_F64          : MUBUF_Real_Atomics_gfx13<0x60, "buffer_atomic_max_num_f64", "buffer_atomic_fmax_x2">;
+defm BUFFER_ATOMIC_COND_SUB_U32     : MUBUF_Real_Atomics_gfx13<0x47>;
+defm BUFFER_ATOMIC_PK_ADD_F16       : MUBUF_Real_Atomics_gfx13<0x4a>;
+defm BUFFER_ATOMIC_PK_ADD_BF16      : MUBUF_Real_Atomics_gfx13<0x4b>;
+defm BUFFER_ATOMIC_ADD_F32          : MUBUF_Real_Atomics_gfx13<0x54>;
+
 //===----------------------------------------------------------------------===//
 // MUBUF - GFX11, GFX12, GFX1250.
 //===----------------------------------------------------------------------===//
@@ -2631,7 +2693,7 @@ multiclass VBUFFER_MTBUF_Real_gfx12<bits<4> op, string real_name> {
 // gfx11 instruction that accept both old and new assembler name.
 class Mnem_gfx11_gfx12 <string mnemonic, string real_name> :
     AMDGPUMnemonicAlias<mnemonic, real_name> {
-  let AssemblerPredicate = isGFX11Plus;
+  let AssemblerPredicate = isGFX11GFX12;
 }
 
 class Mnem_gfx11 <string mnemonic, string real_name> :
@@ -2641,7 +2703,7 @@ class Mnem_gfx11 <string mnemonic, string real_name> :
 
 class Mnem_gfx12 <string mnemonic, string real_name> :
     AMDGPUMnemonicAlias<mnemonic, real_name> {
-  let AssemblerPredicate = isGFX12Plus;
+  let AssemblerPredicate = isGFX12Only;
 }
 
 multiclass MUBUF_Real_AllAddr_gfx11_Impl2<bits<8> op, string real_name> {
@@ -2867,24 +2929,27 @@ multiclass MUBUF_Real_Atomics_gfx10<bits<8> op, string psName = NAME,
   defm _OFFSET : MUBUF_Real_gfx10<op, psName#"_OFFSET", asmName>;
 }
 
-defm BUFFER_STORE_BYTE_D16_HI     : MUBUF_Real_AllAddr_gfx10<0x019>;
-defm BUFFER_STORE_SHORT_D16_HI    : MUBUF_Real_AllAddr_gfx10<0x01b>;
-defm BUFFER_LOAD_UBYTE_D16        : MUBUF_Real_AllAddr_gfx10<0x020>;
-defm BUFFER_LOAD_UBYTE_D16_HI     : MUBUF_Real_AllAddr_gfx10<0x021>;
-defm BUFFER_LOAD_SBYTE_D16        : MUBUF_Real_AllAddr_gfx10<0x022>;
-defm BUFFER_LOAD_SBYTE_D16_HI     : MUBUF_Real_AllAddr_gfx10<0x023>;
-defm BUFFER_LOAD_SHORT_D16        : MUBUF_Real_AllAddr_gfx10<0x024>;
-defm BUFFER_LOAD_SHORT_D16_HI     : MUBUF_Real_AllAddr_gfx10<0x025>;
-defm BUFFER_LOAD_FORMAT_D16_HI_X  : MUBUF_Real_AllAddr_gfx10<0x026>;
-defm BUFFER_STORE_FORMAT_D16_HI_X : MUBUF_Real_AllAddr_gfx10<0x027>;
-defm BUFFER_LOAD_FORMAT_D16_X     : MUBUF_Real_AllAddr_gfx10<0x080>;
-defm BUFFER_LOAD_FORMAT_D16_XY    : MUBUF_Real_AllAddr_gfx10<0x081>;
-defm BUFFER_LOAD_FORMAT_D16_XYZ   : MUBUF_Real_AllAddr_gfx10<0x082>;
-defm BUFFER_LOAD_FORMAT_D16_XYZW  : MUBUF_Real_AllAddr_gfx10<0x083>;
-defm BUFFER_STORE_FORMAT_D16_X    : MUBUF_Real_AllAddr_gfx10<0x084>;
-defm BUFFER_STORE_FORMAT_D16_XY   : MUBUF_Real_AllAddr_gfx10<0x085>;
-defm BUFFER_STORE_FORMAT_D16_XYZ  : MUBUF_Real_AllAddr_gfx10<0x086>;
-defm BUFFER_STORE_FORMAT_D16_XYZW : MUBUF_Real_AllAddr_gfx10<0x087>;
+multiclass MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<bits<8> op, string gfx13_name> :
+  MUBUF_Real_AllAddr_gfx10<op>, MUBUF_Real_AllAddr_gfx13<op, gfx13_name>;
+
+defm BUFFER_STORE_BYTE_D16_HI     : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x019, "buffer_store_d16_hi_b8">;
+defm BUFFER_STORE_SHORT_D16_HI    : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x01b, "buffer_store_d16_hi_b16">;
+defm BUFFER_LOAD_UBYTE_D16        : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x020, "buffer_load_d16_u8">;
+defm BUFFER_LOAD_UBYTE_D16_HI     : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x021, "buffer_load_d16_hi_u8">;
+defm BUFFER_LOAD_SBYTE_D16        : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x022, "buffer_load_d16_i8">;
+defm BUFFER_LOAD_SBYTE_D16_HI     : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x023, "buffer_load_d16_hi_i8">;
+defm BUFFER_LOAD_SHORT_D16        : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x024, "buffer_load_d16_b16">;
+defm BUFFER_LOAD_SHORT_D16_HI     : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x025, "buffer_load_d16_hi_b16">;
+defm BUFFER_LOAD_FORMAT_D16_HI_X  : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x026, "buffer_load_d16_hi_format_x">;
+defm BUFFER_STORE_FORMAT_D16_HI_X : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x027, "buffer_store_d16_hi_format_x">;
+defm BUFFER_LOAD_FORMAT_D16_X     : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x080, "buffer_load_d16_format_x">;
+defm BUFFER_LOAD_FORMAT_D16_XY    : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x081, "buffer_load_d16_format_xy">;
+defm BUFFER_LOAD_FORMAT_D16_XYZ   : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x082, "buffer_load_d16_format_xyz">;
+defm BUFFER_LOAD_FORMAT_D16_XYZW  : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x083, "buffer_load_d16_format_xyzw">;
+defm BUFFER_STORE_FORMAT_D16_X    : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x084, "buffer_store_d16_format_x">;
+defm BUFFER_STORE_FORMAT_D16_XY   : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x085, "buffer_store_d16_format_xy">;
+defm BUFFER_STORE_FORMAT_D16_XYZ  : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x086, "buffer_store_d16_format_xyz">;
+defm BUFFER_STORE_FORMAT_D16_XYZW : MUBUF_Real_AllAddr_gfx10_Renamed_gfx13<0x087, "buffer_store_d16_format_xyzw">;
 
 defm BUFFER_GL0_INV : MUBUF_Real_gfx10<0x071>;
 defm BUFFER_GL1_INV : MUBUF_Real_gfx10<0x072>;
@@ -2919,7 +2984,8 @@ multiclass MUBUF_Real_AllAddr_Lds_gfx6_gfx7<bits<8> op, bit isTFE = 0> {
     defm _LDS_BOTHEN : MUBUF_Real_gfx6_gfx7<op>;
   }
 }
-multiclass MUBUF_Real_Atomics_gfx6_gfx7<bits<8> op, string psName, string asmName> {
+multiclass MUBUF_Real_Atomics_gfx6_gfx7<bits<8> op, string psName = NAME,
+                                        string asmName = get_BUF_ps<psName>.Mnemonic> {
   defm _ADDR64 : MUBUF_Real_gfx6_gfx7<op, psName#"_ADDR64", asmName>;
   defm _BOTHEN : MUBUF_Real_gfx6_gfx7<op, psName#"_BOTHEN", asmName>;
   defm _IDXEN  : MUBUF_Real_gfx6_gfx7<op, psName#"_IDXEN", asmName>;
@@ -2936,6 +3002,14 @@ multiclass MUBUF_Real_Atomics_gfx6_gfx7<bits<8> op, string psName, string asmNam
 multiclass MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<bits<8> op> :
   MUBUF_Real_AllAddr_gfx6_gfx7<op>, MUBUF_Real_AllAddr_gfx10<op>;
 
+multiclass MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<bits<8> op> :
+  MUBUF_Real_AllAddr_gfx6_gfx7<op>, MUBUF_Real_AllAddr_gfx10<op>,
+  MUBUF_Real_AllAddr_gfx13<op>;
+
+multiclass MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<bits<8> op, string gfx13_name> :
+  MUBUF_Real_AllAddr_gfx6_gfx7<op>, MUBUF_Real_AllAddr_gfx10<op>,
+  MUBUF_Real_AllAddr_gfx13<op, gfx13_name>;
+
 multiclass MUBUF_Real_AllAddr_Lds_Helper_gfx6_gfx7_gfx10<bits<8> op, bit isTFE = 0> :
   MUBUF_Real_AllAddr_Lds_gfx6_gfx7<op, isTFE>,
   MUBUF_Real_AllAddr_Lds_gfx10<op, isTFE>;
@@ -2945,73 +3019,93 @@ multiclass MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<bits<8> op> {
   defm _TFE : MUBUF_Real_AllAddr_Lds_Helper_gfx6_gfx7_gfx10<op, 1>;
 }
 
+multiclass MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_gfx13<bits<8> op> :
+  MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<op>, MUBUF_Real_AllAddr_gfx13<op>;
+
+multiclass MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_Renamed_gfx13<bits<8> op,
+                                                            string gfx13_name> :
+  MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<op>,
+  MUBUF_Real_AllAddr_gfx13<op, gfx13_name>;
+
 multiclass MUBUF_Real_Atomics_gfx6_gfx7_gfx10<bits<8> op, string psName = NAME,
                                               string asmName = get_BUF_ps<psName>.Mnemonic> :
   MUBUF_Real_Atomics_gfx6_gfx7<op, psName, asmName>,
   MUBUF_Real_Atomics_gfx10<op, psName, asmName>;
 
+multiclass MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<bits<8> op,
+                                                            string gfx13_name,
+                                              string gfx13_alias = gfx13_name> :
+  MUBUF_Real_Atomics_gfx6_gfx7<op>, MUBUF_Real_Atomics_gfx10<op>,
+  MUBUF_Real_Atomics_gfx13<op, gfx13_name, gfx13_alias>;
+
+multiclass MUBUF_Real_Atomics_gfx10_Renamed_gfx13<bits<8> op,
+                                                  string gfx13_name,
+                                              string gfx13_alias = gfx13_name> :
+  MUBUF_Real_Atomics_gfx10<op>,
+  MUBUF_Real_Atomics_gfx13<op, gfx13_name, gfx13_alias>;
+
 // FIXME-GFX6: Following instructions are available only on GFX6.
 //defm BUFFER_ATOMIC_RSUB         : MUBUF_Real_Atomics_gfx6 <0x034>;
 //defm BUFFER_ATOMIC_RSUB_X2      : MUBUF_Real_Atomics_gfx6 <0x054>;
 
-defm BUFFER_LOAD_FORMAT_X     : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<0x000>;
-defm BUFFER_LOAD_FORMAT_XY    : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x001>;
-defm BUFFER_LOAD_FORMAT_XYZ   : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x002>;
-defm BUFFER_LOAD_FORMAT_XYZW  : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x003>;
-defm BUFFER_STORE_FORMAT_X    : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x004>;
-defm BUFFER_STORE_FORMAT_XY   : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x005>;
-defm BUFFER_STORE_FORMAT_XYZ  : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x006>;
-defm BUFFER_STORE_FORMAT_XYZW : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x007>;
-defm BUFFER_LOAD_UBYTE        : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<0x008>;
-defm BUFFER_LOAD_SBYTE        : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<0x009>;
-defm BUFFER_LOAD_USHORT       : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<0x00a>;
-defm BUFFER_LOAD_SSHORT       : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<0x00b>;
-defm BUFFER_LOAD_DWORD        : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10<0x00c>;
-defm BUFFER_LOAD_DWORDX2      : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x00d>;
-defm BUFFER_LOAD_DWORDX4      : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x00e>;
-defm BUFFER_LOAD_DWORDX3      : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x00f>;
-defm BUFFER_STORE_BYTE        : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x018>;
-defm BUFFER_STORE_SHORT       : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x01a>;
-defm BUFFER_STORE_DWORD       : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x01c>;
-defm BUFFER_STORE_DWORDX2     : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x01d>;
-defm BUFFER_STORE_DWORDX4     : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x01e>;
-defm BUFFER_STORE_DWORDX3     : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10<0x01f>;
-
-defm BUFFER_ATOMIC_SWAP        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x030>;
-defm BUFFER_ATOMIC_CMPSWAP     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x031>;
-defm BUFFER_ATOMIC_ADD         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x032>;
-defm BUFFER_ATOMIC_SUB         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x033>;
-defm BUFFER_ATOMIC_SMIN        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x035>;
-defm BUFFER_ATOMIC_UMIN        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x036>;
-defm BUFFER_ATOMIC_SMAX        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x037>;
-defm BUFFER_ATOMIC_UMAX        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x038>;
-defm BUFFER_ATOMIC_AND         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x039>;
-defm BUFFER_ATOMIC_OR          : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x03a>;
-defm BUFFER_ATOMIC_XOR         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x03b>;
-defm BUFFER_ATOMIC_INC         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x03c>;
-defm BUFFER_ATOMIC_DEC         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x03d>;
+defm BUFFER_LOAD_FORMAT_X     : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_gfx13<0x000>;
+defm BUFFER_LOAD_FORMAT_XY    : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x001>;
+defm BUFFER_LOAD_FORMAT_XYZ   : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x002>;
+defm BUFFER_LOAD_FORMAT_XYZW  : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x003>;
+defm BUFFER_STORE_FORMAT_X    : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x004>;
+defm BUFFER_STORE_FORMAT_XY   : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x005>;
+defm BUFFER_STORE_FORMAT_XYZ  : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x006>;
+defm BUFFER_STORE_FORMAT_XYZW : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_gfx13<0x007>;
+defm BUFFER_LOAD_UBYTE        : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_Renamed_gfx13<0x008, "buffer_load_u8">;
+defm BUFFER_LOAD_SBYTE        : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_Renamed_gfx13<0x009, "buffer_load_i8">;
+defm BUFFER_LOAD_USHORT       : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_Renamed_gfx13<0x00a, "buffer_load_u16">;
+defm BUFFER_LOAD_SSHORT       : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_Renamed_gfx13<0x00b, "buffer_load_i16">;
+defm BUFFER_LOAD_DWORD        : MUBUF_Real_AllAddr_Lds_gfx6_gfx7_gfx10_Renamed_gfx13<0x00c, "buffer_load_b32">;
+defm BUFFER_LOAD_DWORDX2      : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x00d, "buffer_load_b64">;
+defm BUFFER_LOAD_DWORDX4      : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x00e, "buffer_load_b128">;
+defm BUFFER_LOAD_DWORDX3      : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x00f, "buffer_load_b96">;
+defm BUFFER_STORE_BYTE        : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x018, "buffer_store_b8">;
+defm BUFFER_STORE_SHORT       : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x01a, "buffer_store_b16">;
+defm BUFFER_STORE_DWORD       : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x01c, "buffer_store_b32">;
+defm BUFFER_STORE_DWORDX2     : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x01d, "buffer_store_b64">;
+defm BUFFER_STORE_DWORDX4     : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x01e, "buffer_store_b128">;
+defm BUFFER_STORE_DWORDX3     : MUBUF_Real_AllAddr_gfx6_gfx7_gfx10_Renamed_gfx13<0x01f, "buffer_store_b96">;
+
+defm BUFFER_ATOMIC_SWAP        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x030, "buffer_atomic_swap_b32">;
+defm BUFFER_ATOMIC_CMPSWAP     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x031, "buffer_atomic_cmpswap_b32">;
+defm BUFFER_ATOMIC_ADD         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x032, "buffer_atomic_add_u32">;
+defm BUFFER_ATOMIC_SUB         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x033, "buffer_atomic_sub_u32">;
+defm BUFFER_ATOMIC_SMIN        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x035, "buffer_atomic_min_i32">;
+defm BUFFER_ATOMIC_UMIN        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x036, "buffer_atomic_min_u32">;
+defm BUFFER_ATOMIC_SMAX        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x037, "buffer_atomic_max_i32">;
+defm BUFFER_ATOMIC_UMAX        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x038, "buffer_atomic_max_u32">;
+defm BUFFER_ATOMIC_AND         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x039, "buffer_atomic_and_b32">;
+defm BUFFER_ATOMIC_OR          : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x03a, "buffer_atomic_or_b32">;
+defm BUFFER_ATOMIC_XOR         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x03b, "buffer_atomic_xor_b32">;
+defm BUFFER_ATOMIC_INC         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x03c, "buffer_atomic_inc_u32">;
+defm BUFFER_ATOMIC_DEC         : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x03d, "buffer_atomic_dec_u32">;
 defm BUFFER_ATOMIC_FCMPSWAP    : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x03e>;
-defm BUFFER_ATOMIC_FMIN        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x03f>;
-defm BUFFER_ATOMIC_FMAX        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x040>;
-defm BUFFER_ATOMIC_SWAP_X2     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x050>;
-defm BUFFER_ATOMIC_CMPSWAP_X2  : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x051>;
-defm BUFFER_ATOMIC_ADD_X2      : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x052>;
-defm BUFFER_ATOMIC_SUB_X2      : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x053>;
-defm BUFFER_ATOMIC_SMIN_X2     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x055>;
-defm BUFFER_ATOMIC_UMIN_X2     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x056>;
-defm BUFFER_ATOMIC_SMAX_X2     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x057>;
-defm BUFFER_ATOMIC_UMAX_X2     : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x058>;
-defm BUFFER_ATOMIC_AND_X2      : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x059>;
-defm BUFFER_ATOMIC_OR_X2       : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x05a>;
-defm BUFFER_ATOMIC_XOR_X2      : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x05b>;
-defm BUFFER_ATOMIC_INC_X2      : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x05c>;
-defm BUFFER_ATOMIC_DEC_X2      : MUBUF_Real_Atomics_gfx6_gfx7_gfx10<0x05d>;
+defm BUFFER_ATOMIC_FMIN        : MUBUF_Real_Atomics_gfx6_gfx7_gfx10_Renamed_gfx13<0x03f, "...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/196262


More information about the llvm-commits mailing list