[llvm] 835e09c - [AMDGPU] gfx11 FLAT Instructions

Joe Nash via llvm-commits llvm-commits at lists.llvm.org
Wed May 25 12:57:21 PDT 2022


Author: Joe Nash
Date: 2022-05-25T15:29:39-04:00
New Revision: 835e09c4c3eea2d7fadaf8a4e554e7912b9242a2

URL: https://github.com/llvm/llvm-project/commit/835e09c4c3eea2d7fadaf8a4e554e7912b9242a2
DIFF: https://github.com/llvm/llvm-project/commit/835e09c4c3eea2d7fadaf8a4e554e7912b9242a2.diff

LOG: [AMDGPU] gfx11 FLAT Instructions

MachineCode Support for FLAT type instructions

Contributors:
Sebastian Neubauer <sebastian.neubauer at amd.com>

Patch 12/N for upstreaming of AMDGPU gfx11 architecture.

Depends on D125989

Reviewed By: rampitec, #amdgpu

Differential Revision: https://reviews.llvm.org/D125992

Added: 
    llvm/test/MC/AMDGPU/flat-gfx11-mnemonic.s
    llvm/test/MC/AMDGPU/gfx11-flat-errs.s
    llvm/test/MC/AMDGPU/gfx11_flat.s
    llvm/test/MC/Disassembler/AMDGPU/flat-gfx11.txt

Modified: 
    llvm/lib/Target/AMDGPU/FLATInstructions.td
    llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    llvm/test/MC/AMDGPU/gfx11_err.s
    llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_all.txt

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/FLATInstructions.td b/llvm/lib/Target/AMDGPU/FLATInstructions.td
index 78f1cbf0488a..cb2822818549 100644
--- a/llvm/lib/Target/AMDGPU/FLATInstructions.td
+++ b/llvm/lib/Target/AMDGPU/FLATInstructions.td
@@ -78,8 +78,8 @@ class FLAT_Pseudo<string opName, dag outs, dag ins,
   let FlatScratch = is_flat_scratch;
 }
 
-class FLAT_Real <bits<7> op, FLAT_Pseudo ps> :
-  InstSI <ps.OutOperandList, ps.InOperandList, ps.Mnemonic # ps.AsmOperands, []>,
+class FLAT_Real <bits<7> op, FLAT_Pseudo ps, string opName = ps.Mnemonic> :
+  InstSI <ps.OutOperandList, ps.InOperandList, opName # ps.AsmOperands, []>,
   Enc64 {
 
   let isPseudo = 0;
@@ -687,18 +687,9 @@ defm FLAT_ATOMIC_DEC_X2     : FLAT_Atomic_Pseudo <"flat_atomic_dec_x2",
 // GFX7-, GFX10-only flat instructions.
 let SubtargetPredicate = isGFX7GFX10 in {
 
-defm FLAT_ATOMIC_FCMPSWAP    : FLAT_Atomic_Pseudo <"flat_atomic_fcmpswap",
-                                VGPR_32, f32, v2f32, VReg_64>;
-
 defm FLAT_ATOMIC_FCMPSWAP_X2 : FLAT_Atomic_Pseudo <"flat_atomic_fcmpswap_x2",
                                 VReg_64, f64, v2f64, VReg_128>;
 
-defm FLAT_ATOMIC_FMIN        : FLAT_Atomic_Pseudo <"flat_atomic_fmin",
-                                VGPR_32, f32>;
-
-defm FLAT_ATOMIC_FMAX        : FLAT_Atomic_Pseudo <"flat_atomic_fmax",
-                                VGPR_32, f32>;
-
 defm FLAT_ATOMIC_FMIN_X2     : FLAT_Atomic_Pseudo <"flat_atomic_fmin_x2",
                                 VReg_64, f64>;
 
@@ -717,12 +708,30 @@ let SubtargetPredicate = isGFX90APlus in {
 } // End SubtargetPredicate = isGFX90APlus
 
 let SubtargetPredicate = isGFX940Plus in {
-  defm FLAT_ATOMIC_ADD_F32       : FLAT_Atomic_Pseudo<"flat_atomic_add_f32",     VGPR_32, f32>;
   defm FLAT_ATOMIC_PK_ADD_F16    : FLAT_Atomic_Pseudo<"flat_atomic_pk_add_f16",  VGPR_32, v2f16>;
   defm FLAT_ATOMIC_PK_ADD_BF16   : FLAT_Atomic_Pseudo<"flat_atomic_pk_add_bf16", VGPR_32, v2f16>;
   defm GLOBAL_ATOMIC_PK_ADD_BF16 : FLAT_Global_Atomic_Pseudo<"global_atomic_pk_add_bf16", VGPR_32, v2f16>;
 } // End SubtargetPredicate = isGFX940Plus
 
+// GFX7-, GFX10-, GFX11-only flat instructions.
+let SubtargetPredicate = isGFX7GFX10GFX11 in {
+
+defm FLAT_ATOMIC_FCMPSWAP    : FLAT_Atomic_Pseudo <"flat_atomic_fcmpswap",
+                                VGPR_32, f32, v2f32, VReg_64>;
+
+defm FLAT_ATOMIC_FMIN        : FLAT_Atomic_Pseudo <"flat_atomic_fmin",
+                                VGPR_32, f32>;
+
+defm FLAT_ATOMIC_FMAX        : FLAT_Atomic_Pseudo <"flat_atomic_fmax",
+                                VGPR_32, f32>;
+
+} // End SubtargetPredicate = isGFX7GFX10GFX11
+
+// GFX940-, GFX11-only flat instructions.
+let SubtargetPredicate = isGFX940GFX11Plus in {
+  defm FLAT_ATOMIC_ADD_F32       : FLAT_Atomic_Pseudo<"flat_atomic_add_f32",     VGPR_32, f32>;
+} // End SubtargetPredicate = isGFX940GFX11Plus
+
 defm GLOBAL_LOAD_UBYTE    : FLAT_Global_Load_Pseudo <"global_load_ubyte", VGPR_32>;
 defm GLOBAL_LOAD_SBYTE    : FLAT_Global_Load_Pseudo <"global_load_sbyte", VGPR_32>;
 defm GLOBAL_LOAD_USHORT   : FLAT_Global_Load_Pseudo <"global_load_ushort", VGPR_32>;
@@ -1885,7 +1894,7 @@ let SubtargetPredicate = isGFX940Plus in {
 
 class FLAT_Real_gfx10<bits<7> op, FLAT_Pseudo ps> :
     FLAT_Real<op, ps>, SIMCInstr<ps.PseudoInstr, SIEncodingFamily.GFX10> {
-  let AssemblerPredicate = isGFX10Plus;
+  let AssemblerPredicate = isGFX10Only;
   let DecoderNamespace = "GFX10";
 
   let Inst{11-0}  = offset{11-0};
@@ -2113,3 +2122,213 @@ defm SCRATCH_LOAD_LDS_SBYTE     : FLAT_Real_ScratchAllAddr_LDS_gfx10 <0x009>;
 defm SCRATCH_LOAD_LDS_USHORT    : FLAT_Real_ScratchAllAddr_LDS_gfx10 <0x00a>;
 defm SCRATCH_LOAD_LDS_SSHORT    : FLAT_Real_ScratchAllAddr_LDS_gfx10 <0x00b>;
 defm SCRATCH_LOAD_LDS_DWORD     : FLAT_Real_ScratchAllAddr_LDS_gfx10 <0x00c>;
+
+//===----------------------------------------------------------------------===//
+// GFX11
+//===----------------------------------------------------------------------===//
+
+class FLAT_Real_gfx11 <bits<7> op, FLAT_Pseudo ps, string opName = ps.Mnemonic> :
+  FLAT_Real <op, ps, opName>,
+  SIMCInstr <ps.PseudoInstr, SIEncodingFamily.GFX11> {
+  let AssemblerPredicate = isGFX11Plus;
+  let DecoderNamespace = "GFX11";
+
+  let Inst{13}    = !if(ps.has_dlc, cpol{CPolBit.DLC}, ps.dlcValue);
+  let Inst{14}    = !if(ps.has_glc, cpol{CPolBit.GLC}, ps.glcValue);
+  let Inst{15}    = cpol{CPolBit.SLC};
+  let Inst{17-16} = seg;
+  let Inst{55}    = ps.sve;
+}
+
+multiclass FLAT_Real_Base_gfx11<bits<7> op, string ps, string opName, int renamed = false> {
+  def _gfx11 : FLAT_Real_gfx11<op, !cast<FLAT_Pseudo>(ps), opName> {
+    let Inst{54-48} = !cast<int>(SGPR_NULL_gfx11plus.HWEncoding);
+  }
+  if renamed then
+    def _renamed_gfx11 : MnemonicAlias<!cast<FLAT_Pseudo>(ps).Mnemonic, opName>, Requires<[isGFX11Plus]>;
+}
+
+multiclass FLAT_Real_RTN_gfx11<bits<7> op, string ps, string opName> {
+  def _RTN_gfx11 : FLAT_Real_gfx11<op, !cast<FLAT_Pseudo>(ps#"_RTN"), opName> {
+    let Inst{54-48} = !cast<int>(SGPR_NULL_gfx11plus.HWEncoding);
+  }
+}
+
+multiclass FLAT_Real_SADDR_gfx11<bits<7> op, string ps, string opName> {
+  def _SADDR_gfx11 : FLAT_Real_gfx11<op, !cast<FLAT_Pseudo>(ps#"_SADDR"), opName>;
+}
+
+multiclass FLAT_Real_SADDR_RTN_gfx11<bits<7> op, string ps, string opName> {
+  def _SADDR_RTN_gfx11 : FLAT_Real_gfx11<op, !cast<FLAT_Pseudo>(ps#"_SADDR_RTN"), opName>;
+}
+
+multiclass FLAT_Real_ST_gfx11<bits<7> op, string ps, string opName> {
+  def _ST_gfx11 : FLAT_Real_gfx11<op, !cast<FLAT_Pseudo>(ps#"_ST"), opName> {
+    let Inst{54-48} = !cast<int>(SGPR_NULL_gfx11plus.HWEncoding);
+    let OtherPredicates = [HasFlatScratchSTMode];
+  }
+}
+
+multiclass FLAT_Real_SVS_gfx11<bits<7> op, string ps, string opName> {
+  def _SVS_gfx11 : FLAT_Real_gfx11<op, !cast<FLAT_Pseudo>(ps#"_SVS"), opName> {
+    let OtherPredicates = [HasFlatScratchSVSMode];
+  }
+}
+
+multiclass FLAT_Real_AllAddr_gfx11<bits<7> op, string ps, string opName, int renamed = false> :
+  FLAT_Real_Base_gfx11<op, ps, opName, renamed>,
+  FLAT_Real_SADDR_gfx11<op, ps, opName>;
+
+multiclass FLAT_Real_Atomics_gfx11<bits<7> op, string ps, string opName, int renamed = false> :
+  FLAT_Real_Base_gfx11<op, ps, opName, renamed>,
+  FLAT_Real_RTN_gfx11<op, ps, opName>;
+
+multiclass FLAT_Real_GlblAtomics_gfx11<bits<7> op, string ps, string opName, int renamed = false> :
+  FLAT_Real_AllAddr_gfx11<op, ps, opName, renamed>,
+  FLAT_Real_RTN_gfx11<op, ps, opName>,
+  FLAT_Real_SADDR_RTN_gfx11<op, ps, opName>;
+
+multiclass FLAT_Real_GlblAtomics_RTN_gfx11<bits<7> op, string ps, string opName> :
+  FLAT_Real_RTN_gfx11<op, ps, opName>,
+  FLAT_Real_SADDR_RTN_gfx11<op, ps, opName>;
+
+multiclass FLAT_Real_ScratchAllAddr_gfx11<bits<7> op, string ps, string opName, int renamed = false> :
+  FLAT_Real_Base_gfx11<op, ps, opName, renamed>,
+  FLAT_Real_SADDR_gfx11<op, ps, opName>,
+  FLAT_Real_ST_gfx11<op, ps, opName>,
+  FLAT_Real_SVS_gfx11<op, ps, opName>;
+
+// ENC_FLAT.
+defm FLAT_LOAD_U8               : FLAT_Real_Base_gfx11<0x010, "FLAT_LOAD_UBYTE", "flat_load_u8", true>;
+defm FLAT_LOAD_I8               : FLAT_Real_Base_gfx11<0x011, "FLAT_LOAD_SBYTE", "flat_load_i8", true>;
+defm FLAT_LOAD_U16              : FLAT_Real_Base_gfx11<0x012, "FLAT_LOAD_USHORT", "flat_load_u16", true>;
+defm FLAT_LOAD_I16              : FLAT_Real_Base_gfx11<0x013, "FLAT_LOAD_SSHORT", "flat_load_i16", true>;
+defm FLAT_LOAD_B32              : FLAT_Real_Base_gfx11<0x014, "FLAT_LOAD_DWORD", "flat_load_b32", true>;
+defm FLAT_LOAD_B64              : FLAT_Real_Base_gfx11<0x015, "FLAT_LOAD_DWORDX2", "flat_load_b64", true>;
+defm FLAT_LOAD_B96              : FLAT_Real_Base_gfx11<0x016, "FLAT_LOAD_DWORDX3", "flat_load_b96", true>;
+defm FLAT_LOAD_B128             : FLAT_Real_Base_gfx11<0x017, "FLAT_LOAD_DWORDX4", "flat_load_b128", true>;
+defm FLAT_STORE_B8              : FLAT_Real_Base_gfx11<0x018, "FLAT_STORE_BYTE", "flat_store_b8", true>;
+defm FLAT_STORE_B16             : FLAT_Real_Base_gfx11<0x019, "FLAT_STORE_SHORT", "flat_store_b16", true>;
+defm FLAT_STORE_B32             : FLAT_Real_Base_gfx11<0x01a, "FLAT_STORE_DWORD", "flat_store_b32", true>;
+defm FLAT_STORE_B64             : FLAT_Real_Base_gfx11<0x01b, "FLAT_STORE_DWORDX2", "flat_store_b64", true>;
+defm FLAT_STORE_B96             : FLAT_Real_Base_gfx11<0x01c, "FLAT_STORE_DWORDX3", "flat_store_b96", true>;
+defm FLAT_STORE_B128            : FLAT_Real_Base_gfx11<0x01d, "FLAT_STORE_DWORDX4", "flat_store_b128", true>;
+defm FLAT_LOAD_D16_U8           : FLAT_Real_Base_gfx11<0x01e, "FLAT_LOAD_UBYTE_D16", "flat_load_d16_u8">;
+defm FLAT_LOAD_D16_I8           : FLAT_Real_Base_gfx11<0x01f, "FLAT_LOAD_SBYTE_D16", "flat_load_d16_i8">;
+defm FLAT_LOAD_D16_B16          : FLAT_Real_Base_gfx11<0x020, "FLAT_LOAD_SHORT_D16", "flat_load_d16_b16">;
+defm FLAT_LOAD_D16_HI_U8        : FLAT_Real_Base_gfx11<0x021, "FLAT_LOAD_UBYTE_D16_HI", "flat_load_d16_hi_u8">;
+defm FLAT_LOAD_D16_HI_I8        : FLAT_Real_Base_gfx11<0x022, "FLAT_LOAD_SBYTE_D16_HI", "flat_load_d16_hi_i8">;
+defm FLAT_LOAD_D16_HI_B16       : FLAT_Real_Base_gfx11<0x023, "FLAT_LOAD_SHORT_D16_HI", "flat_load_d16_hi_b16">;
+defm FLAT_STORE_D16_HI_B8       : FLAT_Real_Base_gfx11<0x024, "FLAT_STORE_BYTE_D16_HI", "flat_store_d16_hi_b8">;
+defm FLAT_STORE_D16_HI_B16      : FLAT_Real_Base_gfx11<0x025, "FLAT_STORE_SHORT_D16_HI", "flat_store_d16_hi_b16">;
+defm FLAT_ATOMIC_SWAP_B32       : FLAT_Real_Atomics_gfx11<0x033, "FLAT_ATOMIC_SWAP", "flat_atomic_swap_b32", true>;
+defm FLAT_ATOMIC_CMPSWAP_B32    : FLAT_Real_Atomics_gfx11<0x034, "FLAT_ATOMIC_CMPSWAP", "flat_atomic_cmpswap_b32", true>;
+defm FLAT_ATOMIC_ADD_U32        : FLAT_Real_Atomics_gfx11<0x035, "FLAT_ATOMIC_ADD", "flat_atomic_add_u32", true>;
+defm FLAT_ATOMIC_SUB_U32        : FLAT_Real_Atomics_gfx11<0x036, "FLAT_ATOMIC_SUB", "flat_atomic_sub_u32", true>;
+defm FLAT_ATOMIC_MIN_I32        : FLAT_Real_Atomics_gfx11<0x038, "FLAT_ATOMIC_SMIN", "flat_atomic_min_i32", true>;
+defm FLAT_ATOMIC_MIN_U32        : FLAT_Real_Atomics_gfx11<0x039, "FLAT_ATOMIC_UMIN", "flat_atomic_min_u32", true>;
+defm FLAT_ATOMIC_MAX_I32        : FLAT_Real_Atomics_gfx11<0x03a, "FLAT_ATOMIC_SMAX", "flat_atomic_max_i32", true>;
+defm FLAT_ATOMIC_MAX_U32        : FLAT_Real_Atomics_gfx11<0x03b, "FLAT_ATOMIC_UMAX", "flat_atomic_max_u32", true>;
+defm FLAT_ATOMIC_AND_B32        : FLAT_Real_Atomics_gfx11<0x03c, "FLAT_ATOMIC_AND", "flat_atomic_and_b32", true>;
+defm FLAT_ATOMIC_OR_B32         : FLAT_Real_Atomics_gfx11<0x03d, "FLAT_ATOMIC_OR", "flat_atomic_or_b32", true>;
+defm FLAT_ATOMIC_XOR_B32        : FLAT_Real_Atomics_gfx11<0x03e, "FLAT_ATOMIC_XOR", "flat_atomic_xor_b32", true>;
+defm FLAT_ATOMIC_INC_U32        : FLAT_Real_Atomics_gfx11<0x03f, "FLAT_ATOMIC_INC", "flat_atomic_inc_u32", true>;
+defm FLAT_ATOMIC_DEC_U32        : FLAT_Real_Atomics_gfx11<0x040, "FLAT_ATOMIC_DEC", "flat_atomic_dec_u32", true>;
+defm FLAT_ATOMIC_SWAP_B64       : FLAT_Real_Atomics_gfx11<0x041, "FLAT_ATOMIC_SWAP_X2", "flat_atomic_swap_b64", true>;
+defm FLAT_ATOMIC_CMPSWAP_B64    : FLAT_Real_Atomics_gfx11<0x042, "FLAT_ATOMIC_CMPSWAP_X2", "flat_atomic_cmpswap_b64", true>;
+defm FLAT_ATOMIC_ADD_U64        : FLAT_Real_Atomics_gfx11<0x043, "FLAT_ATOMIC_ADD_X2", "flat_atomic_add_u64", true>;
+defm FLAT_ATOMIC_SUB_U64        : FLAT_Real_Atomics_gfx11<0x044, "FLAT_ATOMIC_SUB_X2", "flat_atomic_sub_u64", true>;
+defm FLAT_ATOMIC_MIN_I64        : FLAT_Real_Atomics_gfx11<0x045, "FLAT_ATOMIC_SMIN_X2", "flat_atomic_min_i64", true>;
+defm FLAT_ATOMIC_MIN_U64        : FLAT_Real_Atomics_gfx11<0x046, "FLAT_ATOMIC_UMIN_X2", "flat_atomic_min_u64", true>;
+defm FLAT_ATOMIC_MAX_I64        : FLAT_Real_Atomics_gfx11<0x047, "FLAT_ATOMIC_SMAX_X2", "flat_atomic_max_i64", true>;
+defm FLAT_ATOMIC_MAX_U64        : FLAT_Real_Atomics_gfx11<0x048, "FLAT_ATOMIC_UMAX_X2", "flat_atomic_max_u64", true>;
+defm FLAT_ATOMIC_AND_B64        : FLAT_Real_Atomics_gfx11<0x049, "FLAT_ATOMIC_AND_X2", "flat_atomic_and_b64", true>;
+defm FLAT_ATOMIC_OR_B64         : FLAT_Real_Atomics_gfx11<0x04a, "FLAT_ATOMIC_OR_X2", "flat_atomic_or_b64", true>;
+defm FLAT_ATOMIC_XOR_B64        : FLAT_Real_Atomics_gfx11<0x04b, "FLAT_ATOMIC_XOR_X2", "flat_atomic_xor_b64", true>;
+defm FLAT_ATOMIC_INC_U64        : FLAT_Real_Atomics_gfx11<0x04c, "FLAT_ATOMIC_INC_X2", "flat_atomic_inc_u64", true>;
+defm FLAT_ATOMIC_DEC_U64        : FLAT_Real_Atomics_gfx11<0x04d, "FLAT_ATOMIC_DEC_X2", "flat_atomic_dec_u64", true>;
+defm FLAT_ATOMIC_CMPSWAP_F32    : FLAT_Real_Atomics_gfx11<0x050, "FLAT_ATOMIC_FCMPSWAP", "flat_atomic_cmpswap_f32">;
+defm FLAT_ATOMIC_MIN_F32        : FLAT_Real_Atomics_gfx11<0x051, "FLAT_ATOMIC_FMIN", "flat_atomic_min_f32">;
+defm FLAT_ATOMIC_MAX_F32        : FLAT_Real_Atomics_gfx11<0x052, "FLAT_ATOMIC_FMAX", "flat_atomic_max_f32">;
+defm FLAT_ATOMIC_ADD_F32        : FLAT_Real_Atomics_gfx11<0x056, "FLAT_ATOMIC_ADD_F32", "flat_atomic_add_f32">;
+
+// ENC_FLAT_GLBL.
+defm GLOBAL_LOAD_U8             : FLAT_Real_AllAddr_gfx11<0x010, "GLOBAL_LOAD_UBYTE", "global_load_u8", true>;
+defm GLOBAL_LOAD_I8             : FLAT_Real_AllAddr_gfx11<0x011, "GLOBAL_LOAD_SBYTE", "global_load_i8", true>;
+defm GLOBAL_LOAD_U16            : FLAT_Real_AllAddr_gfx11<0x012, "GLOBAL_LOAD_USHORT", "global_load_u16", true>;
+defm GLOBAL_LOAD_I16            : FLAT_Real_AllAddr_gfx11<0x013, "GLOBAL_LOAD_SSHORT", "global_load_i16", true>;
+defm GLOBAL_LOAD_B32            : FLAT_Real_AllAddr_gfx11<0x014, "GLOBAL_LOAD_DWORD", "global_load_b32", true>;
+defm GLOBAL_LOAD_B64            : FLAT_Real_AllAddr_gfx11<0x015, "GLOBAL_LOAD_DWORDX2", "global_load_b64", true>;
+defm GLOBAL_LOAD_B96            : FLAT_Real_AllAddr_gfx11<0x016, "GLOBAL_LOAD_DWORDX3", "global_load_b96", true>;
+defm GLOBAL_LOAD_B128           : FLAT_Real_AllAddr_gfx11<0x017, "GLOBAL_LOAD_DWORDX4", "global_load_b128", true>;
+defm GLOBAL_STORE_B8            : FLAT_Real_AllAddr_gfx11<0x018, "GLOBAL_STORE_BYTE", "global_store_b8", true>;
+defm GLOBAL_STORE_B16           : FLAT_Real_AllAddr_gfx11<0x019, "GLOBAL_STORE_SHORT", "global_store_b16", true>;
+defm GLOBAL_STORE_B32           : FLAT_Real_AllAddr_gfx11<0x01a, "GLOBAL_STORE_DWORD", "global_store_b32", true>;
+defm GLOBAL_STORE_B64           : FLAT_Real_AllAddr_gfx11<0x01b, "GLOBAL_STORE_DWORDX2", "global_store_b64", true>;
+defm GLOBAL_STORE_B96           : FLAT_Real_AllAddr_gfx11<0x01c, "GLOBAL_STORE_DWORDX3", "global_store_b96", true>;
+defm GLOBAL_STORE_B128          : FLAT_Real_AllAddr_gfx11<0x01d, "GLOBAL_STORE_DWORDX4", "global_store_b128", true>;
+defm GLOBAL_LOAD_D16_U8         : FLAT_Real_AllAddr_gfx11<0x01e, "GLOBAL_LOAD_UBYTE_D16", "global_load_d16_u8">;
+defm GLOBAL_LOAD_D16_I8         : FLAT_Real_AllAddr_gfx11<0x01f, "GLOBAL_LOAD_SBYTE_D16", "global_load_d16_i8">;
+defm GLOBAL_LOAD_D16_B16        : FLAT_Real_AllAddr_gfx11<0x020, "GLOBAL_LOAD_SHORT_D16", "global_load_d16_b16">;
+defm GLOBAL_LOAD_D16_HI_U8      : FLAT_Real_AllAddr_gfx11<0x021, "GLOBAL_LOAD_UBYTE_D16_HI", "global_load_d16_hi_u8">;
+defm GLOBAL_LOAD_D16_HI_I8      : FLAT_Real_AllAddr_gfx11<0x022, "GLOBAL_LOAD_SBYTE_D16_HI", "global_load_d16_hi_i8">;
+defm GLOBAL_LOAD_D16_HI_B16     : FLAT_Real_AllAddr_gfx11<0x023, "GLOBAL_LOAD_SHORT_D16_HI", "global_load_d16_hi_b16">;
+defm GLOBAL_STORE_D16_HI_B8     : FLAT_Real_AllAddr_gfx11<0x024, "GLOBAL_STORE_BYTE_D16_HI", "global_store_d16_hi_b8">;
+defm GLOBAL_STORE_D16_HI_B16    : FLAT_Real_AllAddr_gfx11<0x025, "GLOBAL_STORE_SHORT_D16_HI", "global_store_d16_hi_b16">;
+defm GLOBAL_LOAD_ADDTID_B32     : FLAT_Real_AllAddr_gfx11<0x028, "GLOBAL_LOAD_DWORD_ADDTID", "global_load_addtid_b32">;
+defm GLOBAL_STORE_ADDTID_B32    : FLAT_Real_AllAddr_gfx11<0x029, "GLOBAL_STORE_DWORD_ADDTID", "global_store_addtid_b32">;
+defm GLOBAL_ATOMIC_SWAP_B32     : FLAT_Real_GlblAtomics_gfx11<0x033, "GLOBAL_ATOMIC_SWAP", "global_atomic_swap_b32", true>;
+defm GLOBAL_ATOMIC_CMPSWAP_B32  : FLAT_Real_GlblAtomics_gfx11<0x034, "GLOBAL_ATOMIC_CMPSWAP", "global_atomic_cmpswap_b32", true>;
+defm GLOBAL_ATOMIC_ADD_U32      : FLAT_Real_GlblAtomics_gfx11<0x035, "GLOBAL_ATOMIC_ADD", "global_atomic_add_u32", true>;
+defm GLOBAL_ATOMIC_SUB_U32      : FLAT_Real_GlblAtomics_gfx11<0x036, "GLOBAL_ATOMIC_SUB", "global_atomic_sub_u32", true>;
+defm GLOBAL_ATOMIC_CSUB_U32     : FLAT_Real_GlblAtomics_RTN_gfx11<0x037, "GLOBAL_ATOMIC_CSUB", "global_atomic_csub_u32">;
+defm GLOBAL_ATOMIC_MIN_I32      : FLAT_Real_GlblAtomics_gfx11<0x038, "GLOBAL_ATOMIC_SMIN", "global_atomic_min_i32", true>;
+defm GLOBAL_ATOMIC_MIN_U32      : FLAT_Real_GlblAtomics_gfx11<0x039, "GLOBAL_ATOMIC_UMIN", "global_atomic_min_u32", true>;
+defm GLOBAL_ATOMIC_MAX_I32      : FLAT_Real_GlblAtomics_gfx11<0x03a, "GLOBAL_ATOMIC_SMAX", "global_atomic_max_i32", true>;
+defm GLOBAL_ATOMIC_MAX_U32      : FLAT_Real_GlblAtomics_gfx11<0x03b, "GLOBAL_ATOMIC_UMAX", "global_atomic_max_u32", true>;
+defm GLOBAL_ATOMIC_AND_B32      : FLAT_Real_GlblAtomics_gfx11<0x03c, "GLOBAL_ATOMIC_AND", "global_atomic_and_b32", true>;
+defm GLOBAL_ATOMIC_OR_B32       : FLAT_Real_GlblAtomics_gfx11<0x03d, "GLOBAL_ATOMIC_OR", "global_atomic_or_b32", true>;
+defm GLOBAL_ATOMIC_XOR_B32      : FLAT_Real_GlblAtomics_gfx11<0x03e, "GLOBAL_ATOMIC_XOR", "global_atomic_xor_b32", true>;
+defm GLOBAL_ATOMIC_INC_U32      : FLAT_Real_GlblAtomics_gfx11<0x03f, "GLOBAL_ATOMIC_INC", "global_atomic_inc_u32", true>;
+defm GLOBAL_ATOMIC_DEC_U32      : FLAT_Real_GlblAtomics_gfx11<0x040, "GLOBAL_ATOMIC_DEC", "global_atomic_dec_u32", true>;
+defm GLOBAL_ATOMIC_SWAP_B64     : FLAT_Real_GlblAtomics_gfx11<0x041, "GLOBAL_ATOMIC_SWAP_X2", "global_atomic_swap_b64", true>;
+defm GLOBAL_ATOMIC_CMPSWAP_B64  : FLAT_Real_GlblAtomics_gfx11<0x042, "GLOBAL_ATOMIC_CMPSWAP_X2", "global_atomic_cmpswap_b64", true>;
+defm GLOBAL_ATOMIC_ADD_U64      : FLAT_Real_GlblAtomics_gfx11<0x043, "GLOBAL_ATOMIC_ADD_X2", "global_atomic_add_u64", true>;
+defm GLOBAL_ATOMIC_SUB_U64      : FLAT_Real_GlblAtomics_gfx11<0x044, "GLOBAL_ATOMIC_SUB_X2", "global_atomic_sub_u64", true>;
+defm GLOBAL_ATOMIC_MIN_I64      : FLAT_Real_GlblAtomics_gfx11<0x045, "GLOBAL_ATOMIC_SMIN_X2", "global_atomic_min_i64", true>;
+defm GLOBAL_ATOMIC_MIN_U64      : FLAT_Real_GlblAtomics_gfx11<0x046, "GLOBAL_ATOMIC_UMIN_X2", "global_atomic_min_u64", true>;
+defm GLOBAL_ATOMIC_MAX_I64      : FLAT_Real_GlblAtomics_gfx11<0x047, "GLOBAL_ATOMIC_SMAX_X2", "global_atomic_max_i64", true>;
+defm GLOBAL_ATOMIC_MAX_U64      : FLAT_Real_GlblAtomics_gfx11<0x048, "GLOBAL_ATOMIC_UMAX_X2", "global_atomic_max_u64", true>;
+defm GLOBAL_ATOMIC_AND_B64      : FLAT_Real_GlblAtomics_gfx11<0x049, "GLOBAL_ATOMIC_AND_X2", "global_atomic_and_b64", true>;
+defm GLOBAL_ATOMIC_OR_B64       : FLAT_Real_GlblAtomics_gfx11<0x04a, "GLOBAL_ATOMIC_OR_X2", "global_atomic_or_b64", true>;
+defm GLOBAL_ATOMIC_XOR_B64      : FLAT_Real_GlblAtomics_gfx11<0x04b, "GLOBAL_ATOMIC_XOR_X2", "global_atomic_xor_b64", true>;
+defm GLOBAL_ATOMIC_INC_U64      : FLAT_Real_GlblAtomics_gfx11<0x04c, "GLOBAL_ATOMIC_INC_X2", "global_atomic_inc_u64", true>;
+defm GLOBAL_ATOMIC_DEC_U64      : FLAT_Real_GlblAtomics_gfx11<0x04d, "GLOBAL_ATOMIC_DEC_X2", "global_atomic_dec_u64", true>;
+defm GLOBAL_ATOMIC_CMPSWAP_F32  : FLAT_Real_GlblAtomics_gfx11<0x050, "GLOBAL_ATOMIC_FCMPSWAP", "global_atomic_cmpswap_f32">;
+defm GLOBAL_ATOMIC_MIN_F32      : FLAT_Real_GlblAtomics_gfx11<0x051, "GLOBAL_ATOMIC_FMIN", "global_atomic_min_f32">;
+defm GLOBAL_ATOMIC_MAX_F32      : FLAT_Real_GlblAtomics_gfx11<0x052, "GLOBAL_ATOMIC_FMAX", "global_atomic_max_f32">;
+defm GLOBAL_ATOMIC_ADD_F32      : FLAT_Real_GlblAtomics_gfx11<0x056, "GLOBAL_ATOMIC_ADD_F32", "global_atomic_add_f32">;
+
+// ENC_FLAT_SCRATCH.
+defm SCRATCH_LOAD_U8            : FLAT_Real_ScratchAllAddr_gfx11<0x10, "SCRATCH_LOAD_UBYTE", "scratch_load_u8", true>;
+defm SCRATCH_LOAD_I8            : FLAT_Real_ScratchAllAddr_gfx11<0x11, "SCRATCH_LOAD_SBYTE", "scratch_load_i8", true>;
+defm SCRATCH_LOAD_U16           : FLAT_Real_ScratchAllAddr_gfx11<0x12, "SCRATCH_LOAD_USHORT", "scratch_load_u16", true>;
+defm SCRATCH_LOAD_I16           : FLAT_Real_ScratchAllAddr_gfx11<0x13, "SCRATCH_LOAD_SSHORT", "scratch_load_i16", true>;
+defm SCRATCH_LOAD_B32           : FLAT_Real_ScratchAllAddr_gfx11<0x14, "SCRATCH_LOAD_DWORD", "scratch_load_b32", true>;
+defm SCRATCH_LOAD_B64           : FLAT_Real_ScratchAllAddr_gfx11<0x15, "SCRATCH_LOAD_DWORDX2", "scratch_load_b64", true>;
+defm SCRATCH_LOAD_B96           : FLAT_Real_ScratchAllAddr_gfx11<0x16, "SCRATCH_LOAD_DWORDX3", "scratch_load_b96", true>;
+defm SCRATCH_LOAD_B128          : FLAT_Real_ScratchAllAddr_gfx11<0x17, "SCRATCH_LOAD_DWORDX4", "scratch_load_b128", true>;
+defm SCRATCH_STORE_B8           : FLAT_Real_ScratchAllAddr_gfx11<0x18, "SCRATCH_STORE_BYTE", "scratch_store_b8", true>;
+defm SCRATCH_STORE_B16          : FLAT_Real_ScratchAllAddr_gfx11<0x19, "SCRATCH_STORE_SHORT", "scratch_store_b16", true>;
+defm SCRATCH_STORE_B32          : FLAT_Real_ScratchAllAddr_gfx11<0x1a, "SCRATCH_STORE_DWORD", "scratch_store_b32", true>;
+defm SCRATCH_STORE_B64          : FLAT_Real_ScratchAllAddr_gfx11<0x1b, "SCRATCH_STORE_DWORDX2", "scratch_store_b64", true>;
+defm SCRATCH_STORE_B96          : FLAT_Real_ScratchAllAddr_gfx11<0x1c, "SCRATCH_STORE_DWORDX3", "scratch_store_b96", true>;
+defm SCRATCH_STORE_B128         : FLAT_Real_ScratchAllAddr_gfx11<0x1d, "SCRATCH_STORE_DWORDX4", "scratch_store_b128", true>;
+defm SCRATCH_LOAD_D16_U8        : FLAT_Real_ScratchAllAddr_gfx11<0x1e, "SCRATCH_LOAD_UBYTE_D16", "scratch_load_d16_u8">;
+defm SCRATCH_LOAD_D16_I8        : FLAT_Real_ScratchAllAddr_gfx11<0x1f, "SCRATCH_LOAD_SBYTE_D16", "scratch_load_d16_i8">;
+defm SCRATCH_LOAD_D16_B16       : FLAT_Real_ScratchAllAddr_gfx11<0x20, "SCRATCH_LOAD_SHORT_D16", "scratch_load_d16_b16">;
+defm SCRATCH_LOAD_D16_HI_U8     : FLAT_Real_ScratchAllAddr_gfx11<0x21, "SCRATCH_LOAD_UBYTE_D16_HI", "scratch_load_d16_hi_u8">;
+defm SCRATCH_LOAD_D16_HI_I8     : FLAT_Real_ScratchAllAddr_gfx11<0x22, "SCRATCH_LOAD_SBYTE_D16_HI", "scratch_load_d16_hi_i8">;
+defm SCRATCH_LOAD_D16_HI_B16    : FLAT_Real_ScratchAllAddr_gfx11<0x23, "SCRATCH_LOAD_SHORT_D16_HI", "scratch_load_d16_hi_b16">;
+defm SCRATCH_STORE_D16_HI_B8    : FLAT_Real_ScratchAllAddr_gfx11<0x24, "SCRATCH_STORE_BYTE_D16_HI", "scratch_store_d16_hi_b8">;
+defm SCRATCH_STORE_D16_HI_B16   : FLAT_Real_ScratchAllAddr_gfx11<0x25, "SCRATCH_STORE_SHORT_D16_HI", "scratch_store_d16_hi_b16">;

diff  --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
index 5e6ddaee8dae..03fa4f502665 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
@@ -144,7 +144,7 @@ void AMDGPUInstPrinter::printFlatOffset(const MCInst *MI, unsigned OpNo,
     if (IsFlatSeg) { // Unsigned offset
       printU16ImmDecOperand(MI, OpNo, O);
     } else {         // Signed offset
-      if (AMDGPU::isGFX10Plus(STI)) {
+      if (AMDGPU::isGFX10(STI)) {
         O << formatDec(SignExtend32<12>(MI->getOperand(OpNo).getImm()));
       } else {
         O << formatDec(SignExtend32<13>(MI->getOperand(OpNo).getImm()));

diff  --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
index bc1abd7a5884..c6ff426fca1d 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
@@ -2198,7 +2198,7 @@ Optional<int64_t> getSMRDEncodedLiteralOffset32(const MCSubtargetInfo &ST,
 }
 
 unsigned getNumFlatOffsetBits(const MCSubtargetInfo &ST, bool Signed) {
-  // Address offset is 12-bit signed for GFX10, 13-bit for GFX9.
+  // Address offset is 12-bit signed for GFX10, 13-bit for GFX9 and GFX11+.
   if (AMDGPU::isGFX10(ST))
     return Signed ? 12 : 11;
 

diff  --git a/llvm/test/MC/AMDGPU/flat-gfx11-mnemonic.s b/llvm/test/MC/AMDGPU/flat-gfx11-mnemonic.s
new file mode 100644
index 000000000000..2c454e617e7b
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/flat-gfx11-mnemonic.s
@@ -0,0 +1,196 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -show-encoding %s | FileCheck --check-prefix=GFX11 %s
+
+// FLAT
+
+flat_load_ubyte v1, v[4:5]
+// GFX11: flat_load_u8 v1, v[4:5] ; encoding: [0x00,0x00,0x40,0xdc,0x04,0x00,0x7c,0x01]
+
+flat_load_sbyte v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x44,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_ushort v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x48,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_sshort v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x4c,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_dword v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_dwordx2 v[1:2], v[3:4]
+// GFX11: encoding: [0x00,0x00,0x54,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_dwordx3 v[1:3], v[5:6]
+// GFX11: encoding: [0x00,0x00,0x58,0xdc,0x05,0x00,0x7c,0x01]
+
+flat_load_dwordx4 v[1:4], v[5:6]
+// GFX11: encoding: [0x00,0x00,0x5c,0xdc,0x05,0x00,0x7c,0x01]
+
+flat_store_byte v[3:4], v1
+// GFX11: encoding: [0x00,0x00,0x60,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_short v[3:4], v1
+// GFX11: encoding: [0x00,0x00,0x64,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_dword v[3:4], v1 offset:16
+// GFX11: encoding: [0x10,0x00,0x68,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_dwordx2 v[1:2], v[3:4]
+// GFX11: encoding: [0x00,0x00,0x6c,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_store_dwordx3 v[1:2], v[3:5]
+// GFX11: encoding: [0x00,0x00,0x70,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_store_dwordx4 v[1:2], v[3:6]
+// GFX11: flat_store_b128 v[1:2], v[3:6] ; encoding: [0x00,0x00,0x74,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap v0, v[1:2], v3 offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xcc,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap_x2 v[1:2], v[3:4], v[5:6] offset:2047 glc
+// GFX11: flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc ; encoding: [0xff,0x47,0x04,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_add v[3:4], v5 slc
+// GFX11: encoding: [0x00,0x80,0xd4,0xdc,0x03,0x05,0x7c,0x00]
+
+flat_atomic_cmpswap v0, v[1:2], v[3:4] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xd0,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_cmpswap_x2 v[1:2], v[3:4], v[5:8] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x08,0xdd,0x03,0x05,0x7c,0x01]
+
+// GLOBAL No saddr
+
+global_load_ubyte v1, v[3:4], off
+// GFX11: global_load_u8 v1, v[3:4], off ; encoding: [0x00,0x00,0x42,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_sbyte v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x46,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_ushort v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x4a,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_sshort v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x4e,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_dword v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_dwordx2 v[1:2], v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x56,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_dwordx3 v[1:3], v[5:6], off
+// GFX11: encoding: [0x00,0x00,0x5a,0xdc,0x05,0x00,0x7c,0x01]
+
+global_load_dwordx4 v[1:4], v[5:6], off
+// GFX11: encoding: [0x00,0x00,0x5e,0xdc,0x05,0x00,0x7c,0x01]
+
+global_store_byte v[3:4], v1, off
+// GFX11: encoding: [0x00,0x00,0x62,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_short v[3:4], v1, off
+// GFX11: encoding: [0x00,0x00,0x66,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_dword v[3:4], v1, off offset:16
+// GFX11: encoding: [0x10,0x00,0x6a,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_dwordx2 v[1:2], v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x6e,0xdc,0x01,0x03,0x7c,0x00]
+
+global_store_dwordx3 v[1:2], v[3:5], off
+// GFX11: encoding: [0x00,0x00,0x72,0xdc,0x01,0x03,0x7c,0x00]
+
+global_store_dwordx4 v[1:2], v[3:6], off
+// GFX11: encoding: [0x00,0x00,0x76,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_swap v0, v[1:2], v3, off offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xce,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_swap_x2 v[1:2], v[3:4], v[5:6], off offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x06,0xdd,0x03,0x05,0x7c,0x01]
+
+// SCRATCH
+
+scratch_load_ubyte v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x41,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_sbyte v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x45,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_ushort v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x49,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_sshort v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x4d,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_dword v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_dwordx2 v[1:2], v2, s1
+// GFX11: encoding: [0x00,0x00,0x55,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_dwordx3 v[1:3], v2, s1
+// GFX11: encoding: [0x00,0x00,0x59,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_dwordx4 v[1:4], v2, s1
+// GFX11: encoding: [0x00,0x00,0x5d,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_store_byte v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x61,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_short v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x65,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_dword v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x69,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_dwordx2 v1, v[2:3], s3
+// GFX11: encoding: [0x00,0x00,0x6d,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_dwordx3 v1, v[2:4], s3
+// GFX11: encoding: [0x00,0x00,0x71,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_dwordx4 v1, v[2:5], s3
+// GFX11: encoding: [0x00,0x00,0x75,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_load_dword v1, v2, s1 offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_dword v1, v2, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x02,0x00,0xfc,0x01]
+
+scratch_load_dword v1, off, s1 offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x00,0x00,0x01,0x01]
+
+scratch_load_dword v1, off, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_dword v1, off, off
+// GFX11: encoding: [0x00,0x00,0x51,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_store_dword v1, v2, s3 offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_dword v1, v2, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x01,0x02,0xfc,0x00]
+
+scratch_store_dword off, v2, s3 offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x00,0x02,0x03,0x00]
+
+scratch_store_dword off, v2, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_load_dword v1, v2, s1 offset:4095
+// GFX11: encoding: [0xff,0x0f,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_dword v1, v2, s1 offset:-4096
+// GFX11: encoding: [0x00,0x10,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_store_dword v1, v2, s1 offset:4095
+// GFX11: encoding: [0xff,0x0f,0x69,0xdc,0x01,0x02,0x81,0x00]
+
+scratch_store_dword v1, v2, s1 offset:-4096
+// GFX11: encoding: [0x00,0x10,0x69,0xdc,0x01,0x02,0x81,0x00]
+
+scratch_store_dword off, v2, off
+// GFX11: encoding: [0x00,0x00,0x69,0xdc,0x00,0x02,0x7c,0x00]

diff  --git a/llvm/test/MC/AMDGPU/gfx11-flat-errs.s b/llvm/test/MC/AMDGPU/gfx11-flat-errs.s
new file mode 100644
index 000000000000..789ecb2e9f7e
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx11-flat-errs.s
@@ -0,0 +1,852 @@
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga 2>&1 %s | FileCheck -check-prefix=VI-GFX9_10-ERR --implicit-check-not=error: %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 2>&1 %s | FileCheck -check-prefix=VI-GFX9_10-ERR --implicit-check-not=error: %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 2>&1 %s | FileCheck --check-prefix=VI-GFX9_10-ERR --implicit-check-not=error: %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 2>&1 %s | FileCheck --check-prefix=VI-GFX9_10-ERR --implicit-check-not=error: %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1100 2>&1 %s | FileCheck --check-prefix=GFX11-ERR --implicit-check-not=error: %s
+
+// FLAT
+
+flat_load_u8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_i8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_u16 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_i16 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_b16 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4] offset:-1
+// GFX11-ERR: error: expected a 12-bit unsigned offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4] offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4] offset:4096
+// GFX11-ERR: error: expected a 12-bit unsigned offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4] offset:4 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4] offset:4 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4] offset:4 glc slc dlc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b64 v[1:2], v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b96 v[1:3], v[5:6]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b128 v[1:4], v[5:6]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_i8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_hi_i8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b8 v[3:4], v1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b16 v[3:4], v1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b32 v[3:4], v1 offset:16
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b32 v[3:4], v1, off
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b32 v[3:4], v1, s[0:1]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b32 v[3:4], v1, s0
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4], off
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4], s[0:1]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4], s0
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_b32 v1, v[3:4], exec_hi
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b32 v[3:4], v1, exec_hi
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b64 v[1:2], v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b96 v[1:2], v[3:5]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_b128 v[1:2], v[3:6]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v[1:2], v3 offset:2047 glc
+// GFX11-ERR: error: instruction must not use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b64 v[1:2], v[3:4] offset:2047 glc
+// GFX11-ERR: error: instruction must not use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b64 v[1:2], v[3:4] glc
+// GFX11-ERR: error: instruction must not use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_add_u32 v[3:4], v5 slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_add_u32 v2, v[3:4], v5 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_add_u32 v1, v[3:4], v5 offset:8 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v[1:2], v[3:4] offset:2047 glc
+// GFX11-ERR: error: instruction must not use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4] offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4] offset:2047 glc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4] glc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_u8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_hi_u8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_i8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_hi_i8 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_b16 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_load_d16_hi_b16 v1, v[3:4]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_d16_hi_b8 v[3:4], v1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+flat_store_d16_hi_b16 v[3:4], v1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+// GLOBAL No saddr
+
+global_load_u8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_i8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_u16 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_i16 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_b16 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:-1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:2048
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:4096
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:4 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:4 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off offset:4 glc slc dlc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b64 v[1:2], v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b96 v[1:3], v[5:6], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b128 v[1:4], v[5:6], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_i8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_i8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b8 v[3:4], v1, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b16 v[3:4], v1, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v[3:4], v1, off offset:16
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v[3:4], v1
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v[3:4], v1, s[0:1]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v[3:4], v1, s0
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], off, s[0:1]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], s0
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v[3:4], exec_hi
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v[3:4], v1, exec_hi
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b64 v[1:2], v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b96 v[1:2], v[3:5], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b128 v[1:2], v[3:6], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v[1:2], v3 offset:2047 glc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: not a valid operand
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v[1:2], v3 glc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_add_u32 v2, v[3:4], off, v5 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_add_u32 v1, v[3:4], off, v5 offset:8 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], off, v[3:4]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], off offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_u8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_u8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_i8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_i8 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_b16 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_b16 v1, v[3:4], off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_d16_hi_b8 v[3:4], v1, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_d16_hi_b16 v[3:4], v1, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_addtid_b32 v1, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+// GLOBAL With saddr
+
+global_load_u8 v1, v3, s2
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_u8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_i8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_u16 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_i16 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_b16 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:-1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:-4097
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:2048
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:4096
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:4 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:4 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3] offset:4 glc slc dlc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b64 v[1:2], v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b96 v[1:3], v5, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b128 v[1:4], v5, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_i8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_i8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b8 v3, v1, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b16 v3, v1, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v3, v1, s[2:3] offset:16
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v3, v1
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v3, v1, s[0:1]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v3, v1, s0
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s[2:3], s[0:1]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, s0
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_b32 v1, v3, exec_hi
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b32 v3, v1, exec_hi
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b64 v1, v[2:3], s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b96 v1, v[3:5], s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_b128 v1, v[3:6], s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, s[2:3] offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v[1:2], v3 offset:2047 glc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: not a valid operand
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v[1:2], v3 glc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3]
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b32 v0, v[1:2], v3, s[2:3] offset:2047 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_add_u32 v2, v3, s[2:3], v5 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_add_u32 v1, v3, s[2:3], v5 offset:8 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v3, s[2:3] offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, s[2:3], v3
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v3, s[2:3] slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b32 v0, v1, v3, s[2:3] offset:2047 slc
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v3, s[2:3] offset:2047
+// GFX11-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] offset:2047 glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] offset:2047 glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] glc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] glc slc
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_u8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_u8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_i8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_i8 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_b16 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_d16_hi_b16 v1, v3, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_d16_hi_b8 v3, v1, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_store_d16_hi_b16 v3, v1, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+global_load_addtid_b32 v1, s[2:3]
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+// SCRATCH
+
+scratch_load_u8 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_i8 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_u16 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_i16 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b64 v[1:2], v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b96 v[1:3], v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b128 v[1:4], v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b8 v1, v2, s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b16 v1, v2, s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b64 v1, v[2:3], s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b96 v1, v[2:4], s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b128 v1, v[2:5], s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_d16_u8 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_d16_hi_u8 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_d16_i8 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_d16_hi_i8 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_d16_b16 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_d16_hi_b16 v1, v2, s1
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_d16_hi_b8 v1, v2, s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_d16_hi_b16 v1, v2, s3
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, s1 offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, off offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, off, s1 offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, off, off offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, off, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, s3 offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, off offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 off, v2, s3 offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 off, v2, off offset:2047
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, s1 offset:4095
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, s1 offset:-4096
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, s1 offset:4095
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, s1 offset:-4096
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, s1 offset:4096
+// GFX11-ERR: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_load_b32 v1, v2, s1 offset:-4097
+// GFX11-ERR: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, s1 offset:4096
+// GFX11-ERR: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 v1, v2, s1 offset:-4097
+// GFX11-ERR: error: expected a 13-bit signed offset
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU
+
+scratch_store_b32 off, v2, off
+// VI-GFX9_10-ERR: error: instruction not supported on this GPU

diff  --git a/llvm/test/MC/AMDGPU/gfx11_err.s b/llvm/test/MC/AMDGPU/gfx11_err.s
index 55edaa37d282..aaeb0d0c5085 100644
--- a/llvm/test/MC/AMDGPU/gfx11_err.s
+++ b/llvm/test/MC/AMDGPU/gfx11_err.s
@@ -32,3 +32,6 @@ v_interp_p10_f32 v0, v1, v2, v3 wait_exp:8
 
 v_interp_p2_f32 v0, -v1, v2, v3 wait_exp
 // GFX11: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
+
+global_atomic_cmpswap_x2 v[1:4], v3, v[5:8], off offset:2047 glc
+// GFX11: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction

diff  --git a/llvm/test/MC/AMDGPU/gfx11_flat.s b/llvm/test/MC/AMDGPU/gfx11_flat.s
new file mode 100644
index 000000000000..034209123713
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx11_flat.s
@@ -0,0 +1,1551 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-wavefrontsize64 -show-encoding %s | FileCheck --check-prefix=GFX11 %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=-wavefrontsize32,+wavefrontsize64 -show-encoding %s | FileCheck --check-prefix=GFX11 %s
+
+flat_atomic_add_f32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0x58,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_add_f32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x58,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_add_u32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xd4,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_add_u32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xd4,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_add_u32 v[3:4], v5 slc
+// GFX11: encoding: [0x00,0x80,0xd4,0xdc,0x03,0x05,0x7c,0x00]
+
+flat_atomic_add_u64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x0c,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_add_u64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x0c,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_and_b32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xf0,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_and_b32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xf0,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_and_b64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x24,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_and_b64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x24,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] glc slc
+// GFX11: encoding: [0x00,0xc0,0xd0,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] glc
+// GFX11: encoding: [0x00,0x40,0xd0,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0xd0,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xd0,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_cmpswap_b32 v1, v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0xd0,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0xd0,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_cmpswap_b64 v[0:1], v[2:5] offset:64
+// GFX11: [0x40,0x00,0x08,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_cmpswap_b64 v[1:2], v[0:1], v[2:5] offset:64 glc
+// GFX11: [0x40,0x40,0x08,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] glc slc
+// GFX11: encoding: [0x00,0xc0,0x08,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] glc
+// GFX11: encoding: [0x00,0x40,0x08,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0x08,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x08,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_cmpswap_f32 v1, v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x40,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_cmpswap_f32 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x40,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_dec_u32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0x00,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_dec_u32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x00,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_dec_u64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x34,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_dec_u64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x34,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_inc_u32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xfc,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_inc_u32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xfc,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_inc_u64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x30,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_inc_u64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x30,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_max_f32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0x48,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_max_f32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x48,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_max_i32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xe8,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_max_i32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xe8,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_max_i64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x1c,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_max_i64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x1c,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_max_u32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xec,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_max_u32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xec,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_max_u64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x20,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_max_u64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x20,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_min_f32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0x44,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_min_f32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x44,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_min_i32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xe0,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_min_i32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xe0,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_min_i64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x14,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_min_i64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x14,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_min_u32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xe4,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_min_u32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xe4,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_min_u64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x18,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_min_u64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x18,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_or_b32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xf4,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_or_b32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xf4,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_or_b64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x28,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_or_b64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x28,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_sub_u32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xd8,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_sub_u32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xd8,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_sub_u64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x10,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_sub_u64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x10,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_swap_b32 v0, v[1:2], v3 glc slc
+// GFX11: encoding: [0x00,0xc0,0xcc,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap_b32 v0, v[1:2], v3 glc
+// GFX11: encoding: [0x00,0x40,0xcc,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0xcc,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xcc,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap_b32 v0, v[1:2], v3 offset:2048 glc
+// GFX11: encoding: [0x00,0x48,0xcc,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_atomic_swap_b32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xcc,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_swap_b32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xcc,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_swap_b64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x04,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_swap_b64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x04,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] glc slc
+// GFX11: encoding: [0x00,0xc0,0x04,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] glc
+// GFX11: encoding: [0x00,0x40,0x04,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0x04,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x04,0xdd,0x03,0x05,0x7c,0x01]
+
+flat_atomic_xor_b32 v1, v[0:1], v2 offset:64 glc
+// GFX11: [0x40,0x40,0xf8,0xdc,0x00,0x02,0x7c,0x01]
+
+flat_atomic_xor_b32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0xf8,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_atomic_xor_b64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x2c,0xdd,0x00,0x02,0x7c,0x00]
+
+flat_atomic_xor_b64 v[1:2], v[0:1], v[2:3] offset:64 glc
+// GFX11: [0x40,0x40,0x2c,0xdd,0x00,0x02,0x7c,0x01]
+
+flat_load_b128 v[1:4], v[0:1] offset:64
+// GFX11: [0x40,0x00,0x5c,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_b128 v[1:4], v[5:6]
+// GFX11: encoding: [0x00,0x00,0x5c,0xdc,0x05,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x50,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[3:4] offset:2047
+// GFX11: encoding: [0xff,0x07,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[3:4] offset:2048
+// GFX11: encoding: [0x00,0x08,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[3:4] offset:4 glc slc dlc
+// GFX11: encoding: [0x04,0xe0,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[3:4] offset:4 glc slc
+// GFX11: encoding: [0x04,0xc0,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[3:4] offset:4 glc
+// GFX11: encoding: [0x04,0x40,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b32 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b64 v[1:2], v[0:1] offset:64
+// GFX11: [0x40,0x00,0x54,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_b64 v[1:2], v[3:4]
+// GFX11: encoding: [0x00,0x00,0x54,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_b96 v[1:3], v[0:1] offset:64
+// GFX11: [0x40,0x00,0x58,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_b96 v[1:3], v[5:6]
+// GFX11: encoding: [0x00,0x00,0x58,0xdc,0x05,0x00,0x7c,0x01]
+
+flat_load_d16_b16 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x80,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_d16_b16 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x80,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_b16 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x80,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_hi_b16 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x8c,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_d16_hi_b16 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x8c,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_hi_i8 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x88,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_d16_hi_i8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x88,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_hi_i8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x88,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_hi_u8 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x84,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_d16_hi_u8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x84,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_i8 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x7c,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_d16_i8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x7c,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_i8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x7c,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_d16_u8 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x78,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_d16_u8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x78,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_i16 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x4c,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_i16 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x4c,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_i8 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x44,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_i8 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x44,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_u16 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x48,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_u16 v1, v[3:4]
+// GFX11: encoding: [0x00,0x00,0x48,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_load_u8 v1, v[0:1] offset:64
+// GFX11: [0x40,0x00,0x40,0xdc,0x00,0x00,0x7c,0x01]
+
+flat_load_u8 v1, v[3:4]
+// GFX11-LABEL: flat_load_u8 v1, v[3:4] ; encoding: [0x00,0x00,0x40,0xdc,0x03,0x00,0x7c,0x01]
+
+flat_store_b128 v[0:1], v[2:5] offset:64
+// GFX11: [0x40,0x00,0x74,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_b128 v[1:2], v[3:6]
+// GFX11: encoding: [0x00,0x00,0x74,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_store_b16 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x64,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_b16 v[3:4], v1
+// GFX11: encoding: [0x00,0x00,0x64,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_b32 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x68,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_b32 v[3:4], v1 offset:16
+// GFX11: encoding: [0x10,0x00,0x68,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_b64 v[0:1], v[2:3] offset:64
+// GFX11: [0x40,0x00,0x6c,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_b64 v[1:2], v[3:4]
+// GFX11: encoding: [0x00,0x00,0x6c,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_store_b8 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x60,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_b8 v[3:4], v1
+// GFX11: encoding: [0x00,0x00,0x60,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_b96 v[0:1], v[2:4] offset:64
+// GFX11: [0x40,0x00,0x70,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_b96 v[1:2], v[3:5]
+// GFX11: encoding: [0x00,0x00,0x70,0xdc,0x01,0x03,0x7c,0x00]
+
+flat_store_d16_hi_b16 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x94,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_d16_hi_b16 v[3:4], v1
+// GFX11: encoding: [0x00,0x00,0x94,0xdc,0x03,0x01,0x7c,0x00]
+
+flat_store_d16_hi_b8 v[0:1], v2 offset:64
+// GFX11: [0x40,0x00,0x90,0xdc,0x00,0x02,0x7c,0x00]
+
+flat_store_d16_hi_b8 v[3:4], v1
+// GFX11: encoding: [0x00,0x00,0x90,0xdc,0x03,0x01,0x7c,0x00]
+
+global_atomic_add_f32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x5a,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_add_f32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x5a,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_add_f32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0x5a,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_add_f32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x5a,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_add_u32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xd6,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_add_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xd6,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_add_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xd6,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_add_u32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xd6,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_add_u64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x0e,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_add_u64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x0e,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_add_u64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x0e,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_add_u64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x0e,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_and_b32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xf2,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_and_b32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xf2,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_and_b32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xf2,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_and_b32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xf2,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_and_b64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x26,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_and_b64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x26,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_and_b64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x26,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_and_b64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x26,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] glc slc
+// GFX11: encoding: [0x00,0xc0,0xd2,0xdc,0x01,0x02,0x02,0x00]
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] glc
+// GFX11: encoding: [0x00,0x40,0xd2,0xdc,0x01,0x02,0x02,0x00]
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0xd2,0xdc,0x01,0x02,0x02,0x00]
+
+global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xd2,0xdc,0x01,0x02,0x02,0x00]
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off glc slc
+// GFX11: encoding: [0x00,0xc0,0xd2,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off glc
+// GFX11: encoding: [0x00,0x40,0xd2,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0xd2,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xd2,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_cmpswap_b32 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0xd2,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_cmpswap_b32 v1, v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xd2,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_cmpswap_b32 v1, v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0xd2,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_cmpswap_b32 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0xd2,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_cmpswap_b64 v0, v[2:5], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x0a,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_cmpswap_b64 v[0:1], v[2:5], off offset:64
+// GFX11: [0x40,0x00,0x0a,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_cmpswap_b64 v[1:2], v0, v[2:5], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x0a,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] glc slc
+// GFX11: encoding: [0x00,0xc0,0x0a,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] glc
+// GFX11: encoding: [0x00,0x40,0x0a,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0x0a,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x0a,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v[0:1], v[2:5], off offset:64 glc
+// GFX11: [0x40,0x40,0x0a,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off glc slc
+// GFX11: encoding: [0x00,0xc0,0x0a,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off glc
+// GFX11: encoding: [0x00,0x40,0x0a,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0x0a,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x0a,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_cmpswap_f32 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x42,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_cmpswap_f32 v1, v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x42,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_cmpswap_f32 v1, v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x42,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_cmpswap_f32 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x42,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_csub_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xde,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_csub_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xde,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_dec_u32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x02,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_dec_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x02,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_dec_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0x02,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_dec_u32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x02,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_dec_u64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x36,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_dec_u64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x36,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_dec_u64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x36,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_dec_u64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x36,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_inc_u32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xfe,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_inc_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xfe,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_inc_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xfe,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_inc_u32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xfe,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_inc_u64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x32,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_inc_u64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x32,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_inc_u64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x32,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_inc_u64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x32,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_max_f32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x4a,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_max_f32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x4a,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_max_f32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0x4a,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_max_f32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x4a,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_max_i32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xea,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_max_i32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xea,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_max_i32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xea,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_max_i32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xea,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_max_i64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x1e,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_max_i64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x1e,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_max_i64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x1e,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_max_i64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x1e,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_max_u32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xee,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_max_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xee,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_max_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xee,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_max_u32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xee,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_max_u64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x22,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_max_u64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x22,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_max_u64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x22,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_max_u64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x22,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_min_f32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x46,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_min_f32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x46,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_min_f32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0x46,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_min_f32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x46,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_min_i32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xe2,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_min_i32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xe2,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_min_i32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xe2,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_min_i32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xe2,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_min_i64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x16,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_min_i64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x16,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_min_i64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x16,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_min_i64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x16,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_min_u32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xe6,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_min_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xe6,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_min_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xe6,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_min_u32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xe6,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_min_u64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x1a,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_min_u64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x1a,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_min_u64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x1a,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_min_u64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x1a,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_or_b32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xf6,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_or_b32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xf6,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_or_b32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xf6,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_or_b32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xf6,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_or_b64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x2a,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_or_b64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x2a,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_or_b64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x2a,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_or_b64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x2a,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_sub_u32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xda,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_sub_u32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xda,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_sub_u32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xda,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_sub_u32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xda,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_sub_u64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x12,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_sub_u64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x12,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_sub_u64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x12,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_sub_u64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x12,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] glc slc
+// GFX11: encoding: [0x00,0xc0,0xce,0xdc,0x01,0x03,0x02,0x00]
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] glc
+// GFX11: encoding: [0x00,0x40,0xce,0xdc,0x01,0x03,0x02,0x00]
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0xce,0xdc,0x01,0x03,0x02,0x00]
+
+global_atomic_swap_b32 v0, v1, v3, s[2:3] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xce,0xdc,0x01,0x03,0x02,0x00]
+
+global_atomic_swap_b32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xce,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_swap_b32 v0, v[1:2], v3, off glc slc
+// GFX11: encoding: [0x00,0xc0,0xce,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_swap_b32 v0, v[1:2], v3, off glc
+// GFX11: encoding: [0x00,0x40,0xce,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0xce,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0xce,0xdc,0x01,0x03,0x7c,0x00]
+
+global_atomic_swap_b32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xce,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_swap_b32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xce,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_swap_b32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xce,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_swap_b64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x06,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_swap_b64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x06,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_swap_b64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x06,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] glc slc
+// GFX11: encoding: [0x00,0xc0,0x06,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] glc
+// GFX11: encoding: [0x00,0x40,0x06,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0x06,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x06,0xdd,0x03,0x05,0x02,0x01]
+
+global_atomic_swap_b64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x06,0xdd,0x00,0x02,0x7c,0x01]
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off glc slc
+// GFX11: encoding: [0x00,0xc0,0x06,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off glc
+// GFX11: encoding: [0x00,0x40,0x06,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off offset:2047 glc slc
+// GFX11: encoding: [0xff,0xc7,0x06,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off offset:2047 glc
+// GFX11: encoding: [0xff,0x47,0x06,0xdd,0x03,0x05,0x7c,0x01]
+
+global_atomic_xor_b32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xfa,0xdc,0x00,0x02,0x00,0x00]
+
+global_atomic_xor_b32 v1, v0, v2, s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0xfa,0xdc,0x00,0x02,0x00,0x01]
+
+global_atomic_xor_b32 v1, v[0:1], v2, off offset:64 glc
+// GFX11: [0x40,0x40,0xfa,0xdc,0x00,0x02,0x7c,0x01]
+
+global_atomic_xor_b32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0xfa,0xdc,0x00,0x02,0x7c,0x00]
+
+global_atomic_xor_b64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x2e,0xdd,0x00,0x02,0x00,0x00]
+
+global_atomic_xor_b64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x2e,0xdd,0x00,0x02,0x7c,0x00]
+
+global_atomic_xor_b64 v[1:2], v0, v[2:3], s[0:1] offset:64 glc
+// GFX11: [0x40,0x40,0x2e,0xdd,0x00,0x02,0x00,0x01]
+
+global_atomic_xor_b64 v[1:2], v[0:1], v[2:3], off offset:64 glc
+// GFX11: [0x40,0x40,0x2e,0xdd,0x00,0x02,0x7c,0x01]
+
+global_load_addtid_b32 v1, off offset:64
+// GFX11: [0x40,0x00,0xa2,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_addtid_b32 v1, off
+// GFX11: encoding: [0x00,0x00,0xa2,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_addtid_b32 v1, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xa2,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_addtid_b32 v1, s[2:3]
+// GFX11: encoding: [0x00,0x00,0xa2,0xdc,0x00,0x00,0x02,0x01]
+
+global_load_b128 v[1:4], v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x5e,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_b128 v[1:4], v5, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x5e,0xdc,0x05,0x00,0x02,0x01]
+
+global_load_b128 v[1:4], v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x5e,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_b128 v[1:4], v[5:6], off
+// GFX11: encoding: [0x00,0x00,0x5e,0xdc,0x05,0x00,0x7c,0x01]
+
+global_load_b32 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x52,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_b32 v1, v3, s[2:3] offset:2047
+// GFX11: encoding: [0xff,0x07,0x52,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_b32 v1, v3, s[2:3] offset:4 glc slc dlc
+// GFX11: encoding: [0x04,0xe0,0x52,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_b32 v1, v3, s[2:3] offset:4 glc slc
+// GFX11: encoding: [0x04,0xc0,0x52,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_b32 v1, v3, s[2:3] offset:4 glc
+// GFX11: encoding: [0x04,0x40,0x52,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_b32 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_b32 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x52,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_b32 v1, v[3:4], off offset:2047
+// GFX11: encoding: [0xff,0x07,0x52,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_b32 v1, v[3:4], off offset:4 glc slc dlc
+// GFX11: encoding: [0x04,0xe0,0x52,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_b32 v1, v[3:4], off offset:4 glc slc
+// GFX11: encoding: [0x04,0xc0,0x52,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_b32 v1, v[3:4], off offset:4 glc
+// GFX11: encoding: [0x04,0x40,0x52,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_b32 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_b64 v[1:2], v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x56,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_b64 v[1:2], v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x56,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_b64 v[1:2], v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x56,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_b64 v[1:2], v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x56,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_b96 v[1:3], v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x5a,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_b96 v[1:3], v5, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x5a,0xdc,0x05,0x00,0x02,0x01]
+
+global_load_b96 v[1:3], v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x5a,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_b96 v[1:3], v[5:6], off
+// GFX11: encoding: [0x00,0x00,0x5a,0xdc,0x05,0x00,0x7c,0x01]
+
+global_load_d16_b16 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x82,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_d16_b16 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x82,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_b16 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x82,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_b16 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x82,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_d16_b16 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x82,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_b16 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x82,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_hi_b16 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x8e,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_d16_hi_b16 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x8e,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_hi_b16 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x8e,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_d16_hi_b16 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x8e,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_hi_i8 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x8a,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_d16_hi_i8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x8a,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_hi_i8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x8a,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_hi_i8 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x8a,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_d16_hi_i8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x8a,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_hi_i8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x8a,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_hi_u8 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x86,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_d16_hi_u8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x86,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_hi_u8 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x86,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_d16_hi_u8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x86,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_i8 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x7e,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_d16_i8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x7e,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_i8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x7e,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_i8 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x7e,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_d16_i8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x7e,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_i8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x7e,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_d16_u8 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x7a,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_d16_u8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x7a,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_d16_u8 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x7a,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_d16_u8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x7a,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_i16 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x4e,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_i16 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x4e,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_i16 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x4e,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_i16 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x4e,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_i8 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x46,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_i8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x46,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_i8 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x46,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_i8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x46,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_u16 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x4a,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_u16 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x4a,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_u16 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x4a,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_u16 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x4a,0xdc,0x03,0x00,0x7c,0x01]
+
+global_load_u8 v1, v0, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x42,0xdc,0x00,0x00,0x00,0x01]
+
+global_load_u8 v1, v3, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x42,0xdc,0x03,0x00,0x02,0x01]
+
+global_load_u8 v1, v[0:1], off offset:64
+// GFX11: [0x40,0x00,0x42,0xdc,0x00,0x00,0x7c,0x01]
+
+global_load_u8 v1, v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x42,0xdc,0x03,0x00,0x7c,0x01]
+
+global_store_addtid_b32 v2, off offset:64
+// GFX11: [0x40,0x00,0xa6,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_addtid_b32 v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0xa6,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b128 v0, v[2:5], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x76,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b128 v1, v[3:6], s[2:3]
+// GFX11: encoding: [0x00,0x00,0x76,0xdc,0x01,0x03,0x02,0x00]
+
+global_store_b128 v[0:1], v[2:5], off offset:64
+// GFX11: [0x40,0x00,0x76,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_b128 v[1:2], v[3:6], off
+// GFX11: encoding: [0x00,0x00,0x76,0xdc,0x01,0x03,0x7c,0x00]
+
+global_store_b16 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x66,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b16 v3, v1, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x66,0xdc,0x03,0x01,0x02,0x00]
+
+global_store_b16 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x66,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_b16 v[3:4], v1, off
+// GFX11: encoding: [0x00,0x00,0x66,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_b32 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x6a,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b32 v3, v1, s[2:3] offset:16
+// GFX11: encoding: [0x10,0x00,0x6a,0xdc,0x03,0x01,0x02,0x00]
+
+global_store_b32 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x6a,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_b32 v[3:4], v1, off offset:16
+// GFX11: encoding: [0x10,0x00,0x6a,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_b64 v0, v[2:3], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x6e,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b64 v1, v[2:3], s[2:3]
+// GFX11: encoding: [0x00,0x00,0x6e,0xdc,0x01,0x02,0x02,0x00]
+
+global_store_b64 v[0:1], v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x6e,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_b64 v[1:2], v[3:4], off
+// GFX11: encoding: [0x00,0x00,0x6e,0xdc,0x01,0x03,0x7c,0x00]
+
+global_store_b8 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x62,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b8 v3, v1, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x62,0xdc,0x03,0x01,0x02,0x00]
+
+global_store_b8 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x62,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_b8 v[3:4], v1, off
+// GFX11: encoding: [0x00,0x00,0x62,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_b96 v0, v[2:4], s[0:1] offset:64
+// GFX11: [0x40,0x00,0x72,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_b96 v1, v[3:5], s[2:3]
+// GFX11: encoding: [0x00,0x00,0x72,0xdc,0x01,0x03,0x02,0x00]
+
+global_store_b96 v[0:1], v[2:4], off offset:64
+// GFX11: [0x40,0x00,0x72,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_b96 v[1:2], v[3:5], off
+// GFX11: encoding: [0x00,0x00,0x72,0xdc,0x01,0x03,0x7c,0x00]
+
+global_store_d16_hi_b16 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x96,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_d16_hi_b16 v3, v1, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x96,0xdc,0x03,0x01,0x02,0x00]
+
+global_store_d16_hi_b16 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x96,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_d16_hi_b16 v[3:4], v1, off
+// GFX11: encoding: [0x00,0x00,0x96,0xdc,0x03,0x01,0x7c,0x00]
+
+global_store_d16_hi_b8 v0, v2, s[0:1] offset:64
+// GFX11: [0x40,0x00,0x92,0xdc,0x00,0x02,0x00,0x00]
+
+global_store_d16_hi_b8 v3, v1, s[2:3]
+// GFX11: encoding: [0x00,0x00,0x92,0xdc,0x03,0x01,0x02,0x00]
+
+global_store_d16_hi_b8 v[0:1], v2, off offset:64
+// GFX11: [0x40,0x00,0x92,0xdc,0x00,0x02,0x7c,0x00]
+
+global_store_d16_hi_b8 v[3:4], v1, off
+// GFX11: encoding: [0x00,0x00,0x92,0xdc,0x03,0x01,0x7c,0x00]
+
+scratch_load_b128 v[1:4], off, off offset:64
+// GFX11: [0x40,0x00,0x5d,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_b128 v[1:4], off, s0 offset:64
+// GFX11: [0x40,0x00,0x5d,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_b128 v[1:4], v0, off offset:64
+// GFX11: [0x40,0x00,0x5d,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_b128 v[1:4], v0, s0 offset:64
+// GFX11: [0x40,0x00,0x5d,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_b128 v[1:4], v2, s1
+// GFX11: encoding: [0x00,0x00,0x5d,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_b32 v1, off, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_b32 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x51,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_b32 v1, off, off
+// GFX11: encoding: [0x00,0x00,0x51,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_b32 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x51,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_b32 v1, off, s1 offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x00,0x00,0x01,0x01]
+
+scratch_load_b32 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x51,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_b32 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x51,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_b32 v1, v2, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x02,0x00,0xfc,0x01]
+
+scratch_load_b32 v1, v2, s1 offset:-4096
+// GFX11: encoding: [0x00,0x10,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_b32 v1, v2, s1 offset:2047
+// GFX11: encoding: [0xff,0x07,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_b32 v1, v2, s1 offset:4095
+// GFX11: encoding: [0xff,0x0f,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_b32 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x51,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_b64 v[1:2], off, off offset:64
+// GFX11: [0x40,0x00,0x55,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_b64 v[1:2], off, s0 offset:64
+// GFX11: [0x40,0x00,0x55,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_b64 v[1:2], v0, off offset:64
+// GFX11: [0x40,0x00,0x55,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_b64 v[1:2], v0, s0 offset:64
+// GFX11: [0x40,0x00,0x55,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_b64 v[1:2], v2, s1
+// GFX11: encoding: [0x00,0x00,0x55,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_b96 v[1:3], off, off offset:64
+// GFX11: [0x40,0x00,0x59,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_b96 v[1:3], off, s0 offset:64
+// GFX11: [0x40,0x00,0x59,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_b96 v[1:3], v0, off offset:64
+// GFX11: [0x40,0x00,0x59,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_b96 v[1:3], v0, s0 offset:64
+// GFX11: [0x40,0x00,0x59,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_b96 v[1:3], v2, s1
+// GFX11: encoding: [0x00,0x00,0x59,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_d16_b16 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x81,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_d16_b16 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x81,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_d16_b16 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x81,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_d16_b16 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x81,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_d16_b16 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x81,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_d16_hi_b16 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x8d,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_d16_hi_b16 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x8d,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_d16_hi_b16 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x8d,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_d16_hi_b16 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x8d,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_d16_hi_b16 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x8d,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_d16_hi_i8 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x89,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_d16_hi_i8 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x89,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_d16_hi_i8 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x89,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_d16_hi_i8 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x89,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_d16_hi_i8 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x89,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_d16_hi_u8 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x85,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_d16_hi_u8 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x85,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_d16_hi_u8 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x85,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_d16_hi_u8 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x85,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_d16_hi_u8 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x85,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_d16_i8 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x7d,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_d16_i8 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x7d,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_d16_i8 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x7d,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_d16_i8 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x7d,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_d16_i8 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x7d,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_d16_u8 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x79,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_d16_u8 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x79,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_d16_u8 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x79,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_d16_u8 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x79,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_d16_u8 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x79,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_i16 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x4d,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_i16 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x4d,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_i16 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x4d,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_i16 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x4d,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_i16 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x4d,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_i8 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x45,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_i8 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x45,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_i8 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x45,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_i8 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x45,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_i8 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x45,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_u16 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x49,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_u16 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x49,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_u16 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x49,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_u16 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x49,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_u16 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x49,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_load_u8 v1, off, off offset:64
+// GFX11: [0x40,0x00,0x41,0xdc,0x00,0x00,0x7c,0x01]
+
+scratch_load_u8 v1, off, s0 offset:64
+// GFX11: [0x40,0x00,0x41,0xdc,0x00,0x00,0x00,0x01]
+
+scratch_load_u8 v1, v0, off offset:64
+// GFX11: [0x40,0x00,0x41,0xdc,0x00,0x00,0xfc,0x01]
+
+scratch_load_u8 v1, v0, s0 offset:64
+// GFX11: [0x40,0x00,0x41,0xdc,0x00,0x00,0x80,0x01]
+
+scratch_load_u8 v1, v2, s1
+// GFX11: encoding: [0x00,0x00,0x41,0xdc,0x02,0x00,0x81,0x01]
+
+scratch_store_b128 off, v[2:5], off offset:64
+// GFX11: [0x40,0x00,0x75,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b128 off, v[2:5], s0 offset:64
+// GFX11: [0x40,0x00,0x75,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_b128 v0, v[2:5], off offset:64
+// GFX11: [0x40,0x00,0x75,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_b128 v0, v[2:5], s0 offset:64
+// GFX11: [0x40,0x00,0x75,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_b128 v1, v[2:5], s3
+// GFX11: encoding: [0x00,0x00,0x75,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_b16 off, v2, off offset:64
+// GFX11: [0x40,0x00,0x65,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b16 off, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x65,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_b16 v0, v2, off offset:64
+// GFX11: [0x40,0x00,0x65,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_b16 v0, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x65,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_b16 v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x65,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_b32 off, v2, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b32 off, v2, off offset:64
+// GFX11: [0x40,0x00,0x69,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b32 off, v2, off
+// GFX11: encoding: [0x00,0x00,0x69,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b32 off, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x69,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_b32 off, v2, s3 offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x00,0x02,0x03,0x00]
+
+scratch_store_b32 v0, v2, off offset:64
+// GFX11: [0x40,0x00,0x69,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_b32 v0, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x69,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_b32 v1, v2, off offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x01,0x02,0xfc,0x00]
+
+scratch_store_b32 v1, v2, s1 offset:-4096
+// GFX11: encoding: [0x00,0x10,0x69,0xdc,0x01,0x02,0x81,0x00]
+
+scratch_store_b32 v1, v2, s1 offset:4095
+// GFX11: encoding: [0xff,0x0f,0x69,0xdc,0x01,0x02,0x81,0x00]
+
+scratch_store_b32 v1, v2, s3 offset:2047
+// GFX11: encoding: [0xff,0x07,0x69,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_b32 v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x69,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_b64 off, v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x6d,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b64 off, v[2:3], s0 offset:64
+// GFX11: [0x40,0x00,0x6d,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_b64 v0, v[2:3], off offset:64
+// GFX11: [0x40,0x00,0x6d,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_b64 v0, v[2:3], s0 offset:64
+// GFX11: [0x40,0x00,0x6d,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_b64 v1, v[2:3], s3
+// GFX11: encoding: [0x00,0x00,0x6d,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_b8 off, v2, off offset:64
+// GFX11: [0x40,0x00,0x61,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b8 off, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x61,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_b8 v0, v2, off offset:64
+// GFX11: [0x40,0x00,0x61,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_b8 v0, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x61,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_b8 v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x61,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_b96 off, v[2:4], off offset:64
+// GFX11: [0x40,0x00,0x71,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_b96 off, v[2:4], s0 offset:64
+// GFX11: [0x40,0x00,0x71,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_b96 v0, v[2:4], off offset:64
+// GFX11: [0x40,0x00,0x71,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_b96 v0, v[2:4], s0 offset:64
+// GFX11: [0x40,0x00,0x71,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_b96 v1, v[2:4], s3
+// GFX11: encoding: [0x00,0x00,0x71,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_d16_hi_b16 off, v2, off offset:64
+// GFX11: [0x40,0x00,0x95,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_d16_hi_b16 off, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x95,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_d16_hi_b16 v0, v2, off offset:64
+// GFX11: [0x40,0x00,0x95,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_d16_hi_b16 v0, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x95,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_d16_hi_b16 v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x95,0xdc,0x01,0x02,0x83,0x00]
+
+scratch_store_d16_hi_b8 off, v2, off offset:64
+// GFX11: [0x40,0x00,0x91,0xdc,0x00,0x02,0x7c,0x00]
+
+scratch_store_d16_hi_b8 off, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x91,0xdc,0x00,0x02,0x00,0x00]
+
+scratch_store_d16_hi_b8 v0, v2, off offset:64
+// GFX11: [0x40,0x00,0x91,0xdc,0x00,0x02,0xfc,0x00]
+
+scratch_store_d16_hi_b8 v0, v2, s0 offset:64
+// GFX11: [0x40,0x00,0x91,0xdc,0x00,0x02,0x80,0x00]
+
+scratch_store_d16_hi_b8 v1, v2, s3
+// GFX11: encoding: [0x00,0x00,0x91,0xdc,0x01,0x02,0x83,0x00]
+

diff  --git a/llvm/test/MC/Disassembler/AMDGPU/flat-gfx11.txt b/llvm/test/MC/Disassembler/AMDGPU/flat-gfx11.txt
new file mode 100644
index 000000000000..3c550d91b4d0
--- /dev/null
+++ b/llvm/test/MC/Disassembler/AMDGPU/flat-gfx11.txt
@@ -0,0 +1,536 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GFX11
+
+
+# FLAT
+
+
+# GFX11: flat_load_u8 v1, v[3:4]
+0x00,0x00,0x40,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_i8 v1, v[3:4]
+0x00,0x00,0x44,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_u16 v1, v[3:4]
+0x00,0x00,0x48,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_i16 v1, v[3:4]
+0x00,0x00,0x4c,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_b16 v1, v[3:4]
+0x00,0x00,0x80,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b32 v1, v[3:4]
+0x00,0x00,0x50,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b32 v1, v[3:4] offset:2047
+0xff,0x07,0x50,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b32 v1, v[3:4] offset:4 glc
+0x04,0x40,0x50,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b32 v1, v[3:4] offset:4 glc slc
+0x04,0xc0,0x50,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b32 v1, v[3:4] offset:4 glc slc dlc
+0x04,0xe0,0x50,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b64 v[1:2], v[3:4]
+0x00,0x00,0x54,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_b96 v[1:3], v[5:6]
+0x00,0x00,0x58,0xdc,0x05,0x00,0x7c,0x01
+
+# GFX11: flat_load_b128 v[1:4], v[5:6]
+0x00,0x00,0x5c,0xdc,0x05,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_i8 v1, v[3:4]
+0x00,0x00,0x7c,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_hi_i8 v1, v[3:4]
+0x00,0x00,0x88,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_store_b8 v[3:4], v1
+0x00,0x00,0x60,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: flat_store_b16 v[3:4], v1
+0x00,0x00,0x64,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: flat_store_b32 v[3:4], v1 offset:16
+0x10,0x00,0x68,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: flat_store_b64 v[1:2], v[3:4]
+0x00,0x00,0x6c,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_store_b96 v[1:2], v[3:5]
+0x00,0x00,0x70,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_store_b128 v[1:2], v[3:6]
+0x00,0x00,0x74,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 glc
+0xff,0x47,0xcc,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_swap_b32 v0, v[1:2], v3 offset:2047 glc slc
+0xff,0xc7,0xcc,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_swap_b32 v0, v[1:2], v3 glc
+0x00,0x40,0xcc,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_swap_b32 v0, v[1:2], v3 glc slc
+0x00,0xc0,0xcc,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc
+0xff,0x47,0x04,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] offset:2047 glc slc
+0xff,0xc7,0x04,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] glc
+0x00,0x40,0x04,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_swap_b64 v[1:2], v[3:4], v[5:6] glc slc
+0x00,0xc0,0x04,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 glc
+0xff,0x47,0xd0,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] offset:2047 glc slc
+0xff,0xc7,0xd0,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] glc
+0x00,0x40,0xd0,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_cmpswap_b32 v0, v[1:2], v[3:4] glc slc
+0x00,0xc0,0xd0,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] offset:2047 glc
+0xff,0x47,0x08,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] offset:2047 glc slc
+0xff,0xc7,0x08,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] glc
+0x00,0x40,0x08,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8] glc slc
+0x00,0xc0,0x08,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: flat_load_d16_u8 v1, v[3:4]
+0x00,0x00,0x78,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_hi_u8 v1, v[3:4]
+0x00,0x00,0x84,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_i8 v1, v[3:4]
+0x00,0x00,0x7c,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_hi_i8 v1, v[3:4]
+0x00,0x00,0x88,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_b16 v1, v[3:4]
+0x00,0x00,0x80,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_load_d16_hi_b16 v1, v[3:4]
+0x00,0x00,0x8c,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: flat_store_d16_hi_b8 v[3:4], v1
+0x00,0x00,0x90,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: flat_store_d16_hi_b16 v[3:4], v1
+0x00,0x00,0x94,0xdc,0x03,0x01,0x7c,0x00
+
+
+# GLOBAL No saddr
+
+
+# GFX11: global_load_u8 v1, v[3:4], off
+0x00,0x00,0x42,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_i8 v1, v[3:4], off
+0x00,0x00,0x46,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_u16 v1, v[3:4], off
+0x00,0x00,0x4a,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_i16 v1, v[3:4], off
+0x00,0x00,0x4e,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_b16 v1, v[3:4], off
+0x00,0x00,0x82,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b32 v1, v[3:4], off
+0x00,0x00,0x52,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b32 v1, v[3:4], off offset:2047
+0xff,0x07,0x52,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b32 v1, v[3:4], off offset:4 glc
+0x04,0x40,0x52,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b32 v1, v[3:4], off offset:4 glc slc
+0x04,0xc0,0x52,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b32 v1, v[3:4], off offset:4 glc slc dlc
+0x04,0xe0,0x52,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b64 v[1:2], v[3:4], off
+0x00,0x00,0x56,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_b96 v[1:3], v[5:6], off
+0x00,0x00,0x5a,0xdc,0x05,0x00,0x7c,0x01
+
+# GFX11: global_load_b128 v[1:4], v[5:6], off
+0x00,0x00,0x5e,0xdc,0x05,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_i8 v1, v[3:4], off
+0x00,0x00,0x7e,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_hi_i8 v1, v[3:4], off
+0x00,0x00,0x8a,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_store_b8 v[3:4], v1, off
+0x00,0x00,0x62,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: global_store_b16 v[3:4], v1, off
+0x00,0x00,0x66,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: global_store_b32 v[3:4], v1, off offset:16
+0x10,0x00,0x6a,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: global_store_b64 v[1:2], v[3:4], off
+0x00,0x00,0x6e,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_store_b96 v[1:2], v[3:5], off
+0x00,0x00,0x72,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_store_b128 v[1:2], v[3:6], off
+0x00,0x00,0x76,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 glc
+0xff,0x47,0xce,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v[1:2], v3, off offset:2047 glc slc
+0xff,0xc7,0xce,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v[1:2], v3, off glc
+0x00,0x40,0xce,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v[1:2], v3, off glc slc
+0x00,0xc0,0xce,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off offset:2047 glc
+0xff,0x47,0x06,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off offset:2047 glc slc
+0xff,0xc7,0x06,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off glc
+0x00,0x40,0x06,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_swap_b64 v[1:2], v[3:4], v[5:6], off glc slc
+0x00,0xc0,0x06,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 glc
+0xff,0x47,0xd2,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off offset:2047 glc slc
+0xff,0xc7,0xd2,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off glc
+0x00,0x40,0xd2,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_cmpswap_b32 v0, v[1:2], v[3:4], off glc slc
+0x00,0xc0,0xd2,0xdc,0x01,0x03,0x7c,0x00
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off offset:2047 glc
+0xff,0x47,0x0a,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off offset:2047 glc slc
+0xff,0xc7,0x0a,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off glc
+0x00,0x40,0x0a,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v[3:4], v[5:8], off glc slc
+0x00,0xc0,0x0a,0xdd,0x03,0x05,0x7c,0x01
+
+# GFX11: global_load_d16_u8 v1, v[3:4], off
+0x00,0x00,0x7a,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_hi_u8 v1, v[3:4], off
+0x00,0x00,0x86,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_i8 v1, v[3:4], off
+0x00,0x00,0x7e,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_hi_i8 v1, v[3:4], off
+0x00,0x00,0x8a,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_b16 v1, v[3:4], off
+0x00,0x00,0x82,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_load_d16_hi_b16 v1, v[3:4], off
+0x00,0x00,0x8e,0xdc,0x03,0x00,0x7c,0x01
+
+# GFX11: global_store_d16_hi_b8 v[3:4], v1, off
+0x00,0x00,0x92,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: global_store_d16_hi_b16 v[3:4], v1, off
+0x00,0x00,0x96,0xdc,0x03,0x01,0x7c,0x00
+
+# GFX11: global_load_addtid_b32 v1, off
+0x00,0x00,0xa2,0xdc,0x00,0x00,0x7c,0x01
+
+# GFX11: global_atomic_add_f32 v[1:2], v2, off offset:-4096
+0x00,0x10,0x5a,0xdd,0x01,0x02,0x7c,0x00
+
+# GFX11: global_atomic_add_f32 v[1:2], v2, off offset:4095
+0xff,0x0f,0x5a,0xdd,0x01,0x02,0x7c,0x00
+
+
+# GLOBAL With saddr
+
+
+# GFX11: global_load_u8 v1, v3, s[2:3]
+0x00,0x00,0x42,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_i8 v1, v3, s[2:3]
+0x00,0x00,0x46,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_u16 v1, v3, s[2:3]
+0x00,0x00,0x4a,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_i16 v1, v3, s[2:3]
+0x00,0x00,0x4e,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_b16 v1, v3, s[2:3]
+0x00,0x00,0x82,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b32 v1, v3, s[2:3]
+0x00,0x00,0x52,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b32 v1, v3, s[2:3] offset:2047
+0xff,0x07,0x52,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b32 v1, v3, s[2:3] offset:4 glc
+0x04,0x40,0x52,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b32 v1, v3, s[2:3] offset:4 glc slc
+0x04,0xc0,0x52,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b32 v1, v3, s[2:3] offset:4 glc slc dlc
+0x04,0xe0,0x52,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b64 v[1:2], v3, s[2:3]
+0x00,0x00,0x56,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_b96 v[1:3], v5, s[2:3]
+0x00,0x00,0x5a,0xdc,0x05,0x00,0x02,0x01
+
+# GFX11: global_load_b128 v[1:4], v5, s[2:3]
+0x00,0x00,0x5e,0xdc,0x05,0x00,0x02,0x01
+
+# GFX11: global_load_d16_i8 v1, v3, s[2:3]
+0x00,0x00,0x7e,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_hi_i8 v1, v3, s[2:3]
+0x00,0x00,0x8a,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_store_b8 v3, v1, s[2:3]
+0x00,0x00,0x62,0xdc,0x03,0x01,0x02,0x00
+
+# GFX11: global_store_b16 v3, v1, s[2:3]
+0x00,0x00,0x66,0xdc,0x03,0x01,0x02,0x00
+
+# GFX11: global_store_b32 v3, v1, s[2:3] offset:16
+0x10,0x00,0x6a,0xdc,0x03,0x01,0x02,0x00
+
+# GFX11: global_store_b64 v1, v[2:3], s[2:3]
+0x00,0x00,0x6e,0xdc,0x01,0x02,0x02,0x00
+
+# GFX11: global_store_b96 v1, v[3:5], s[2:3]
+0x00,0x00,0x72,0xdc,0x01,0x03,0x02,0x00
+
+# GFX11: global_store_b128 v1, v[3:6], s[2:3]
+0x00,0x00,0x76,0xdc,0x01,0x03,0x02,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v1, v3, s[2:3] offset:2047 glc
+0xff,0x47,0xce,0xdc,0x01,0x03,0x02,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v1, v3, s[2:3] offset:2047 glc slc
+0xff,0xc7,0xce,0xdc,0x01,0x03,0x02,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v1, v3, s[2:3] glc
+0x00,0x40,0xce,0xdc,0x01,0x03,0x02,0x00
+
+# GFX11: global_atomic_swap_b32 v0, v1, v3, s[2:3] glc slc
+0x00,0xc0,0xce,0xdc,0x01,0x03,0x02,0x00
+
+# GFX11: global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] offset:2047 glc
+0xff,0x47,0x06,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] offset:2047 glc slc
+0xff,0xc7,0x06,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] glc
+0x00,0x40,0x06,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_swap_b64 v[1:2], v3, v[5:6], s[2:3] glc slc
+0x00,0xc0,0x06,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] offset:2047 glc
+0xff,0x47,0xd2,0xdc,0x01,0x02,0x02,0x00
+
+# GFX11: global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] offset:2047 glc slc
+0xff,0xc7,0xd2,0xdc,0x01,0x02,0x02,0x00
+
+# GFX11: global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] glc
+0x00,0x40,0xd2,0xdc,0x01,0x02,0x02,0x00
+
+# GFX11: global_atomic_cmpswap_b32 v0, v1, v[2:3], s[2:3] glc slc
+0x00,0xc0,0xd2,0xdc,0x01,0x02,0x02,0x00
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] offset:2047 glc
+0xff,0x47,0x0a,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] offset:2047 glc slc
+0xff,0xc7,0x0a,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] glc
+0x00,0x40,0x0a,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_atomic_cmpswap_b64 v[1:2], v3, v[5:8], s[2:3] glc slc
+0x00,0xc0,0x0a,0xdd,0x03,0x05,0x02,0x01
+
+# GFX11: global_load_d16_u8 v1, v3, s[2:3]
+0x00,0x00,0x7a,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_hi_u8 v1, v3, s[2:3]
+0x00,0x00,0x86,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_i8 v1, v3, s[2:3]
+0x00,0x00,0x7e,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_hi_i8 v1, v3, s[2:3]
+0x00,0x00,0x8a,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_b16 v1, v3, s[2:3]
+0x00,0x00,0x82,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_load_d16_hi_b16 v1, v3, s[2:3]
+0x00,0x00,0x8e,0xdc,0x03,0x00,0x02,0x01
+
+# GFX11: global_store_d16_hi_b8 v3, v1, s[2:3]
+0x00,0x00,0x92,0xdc,0x03,0x01,0x02,0x00
+
+# GFX11: global_store_d16_hi_b16 v3, v1, s[2:3]
+0x00,0x00,0x96,0xdc,0x03,0x01,0x02,0x00
+
+# GFX11: global_load_addtid_b32 v1, s[2:3]
+0x00,0x00,0xa2,0xdc,0x00,0x00,0x02,0x01
+
+
+# SCRATCH
+
+
+# GFX11: scratch_load_u8 v1, v2, s1
+0x00,0x00,0x41,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_i8 v1, v2, s1
+0x00,0x00,0x45,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_u16 v1, v2, s1
+0x00,0x00,0x49,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_i16 v1, v2, s1
+0x00,0x00,0x4d,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_b32 v1, v2, s1
+0x00,0x00,0x51,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_b64 v[1:2], v2, s1
+0x00,0x00,0x55,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_b96 v[1:3], v2, s1
+0x00,0x00,0x59,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_b128 v[1:4], v2, s1
+0x00,0x00,0x5d,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_store_b8 v1, v2, s3
+0x00,0x00,0x61,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_b16 v1, v2, s3
+0x00,0x00,0x65,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_b32 v1, v2, s3
+0x00,0x00,0x69,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_b64 v1, v[2:3], s3
+0x00,0x00,0x6d,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_b96 v1, v[2:4], s3
+0x00,0x00,0x71,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_b128 v1, v[2:5], s3
+0x00,0x00,0x75,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_load_d16_u8 v1, v2, s1
+0x00,0x00,0x79,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_d16_hi_u8 v1, v2, s1
+0x00,0x00,0x85,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_d16_i8 v1, v2, s1
+0x00,0x00,0x7d,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_d16_hi_i8 v1, v2, s1
+0x00,0x00,0x89,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_d16_b16 v1, v2, s1
+0x00,0x00,0x81,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_d16_hi_b16 v1, v2, s1
+0x00,0x00,0x8d,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_store_d16_hi_b8 v1, v2, s3
+0x00,0x00,0x91,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_d16_hi_b16 v1, v2, s3
+0x00,0x00,0x95,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_load_b32 v1, v2, s1 offset:2047
+0xff,0x07,0x51,0xdc,0x02,0x00,0x81,0x01
+
+# GFX11: scratch_load_b32 v1, v2, off offset:2047
+0xff,0x07,0x51,0xdc,0x02,0x00,0xfc,0x01
+
+# GFX11: scratch_load_b32 v1, off, s1 offset:2047
+0xff,0x07,0x51,0xdc,0x00,0x00,0x01,0x01
+
+# GFX11: scratch_load_b32 v1, off, off offset:2047
+0xff,0x07,0x51,0xdc,0x00,0x00,0x7c,0x01
+
+# GFX11: scratch_load_b32 v1, off, off
+0x00,0x00,0x51,0xdc,0x00,0x00,0x7c,0x01
+
+# GFX11: scratch_store_b32 v1, v2, s3 offset:2047
+0xff,0x07,0x69,0xdc,0x01,0x02,0x83,0x00
+
+# GFX11: scratch_store_b32 v1, v2, off offset:2047
+0xff,0x07,0x69,0xdc,0x01,0x02,0xfc,0x00
+
+# GFX11: scratch_store_b32 off, v2, s3 offset:2047
+0xff,0x07,0x69,0xdc,0x00,0x02,0x03,0x00
+
+# GFX11: scratch_store_b32 off, v2, off offset:2047
+0xff,0x07,0x69,0xdc,0x00,0x02,0x7c,0x00
+
+# GFX11: scratch_store_b32 off, v2, off
+0x00,0x00,0x69,0xdc,0x00,0x02,0x7c,0x00
+
+# GFX11: scratch_load_b32 v5, off, off offset:-4096
+0x00,0x10,0x51,0xdc,0x00,0x00,0x7c,0x05
+
+# GFX11: scratch_load_b32 v5, off, off offset:4095
+0xff,0x0f,0x51,0xdc,0x00,0x00,0x7c,0x05

diff  --git a/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_all.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_all.txt
index 4a4d98529767..2d9057ec018d 100644
--- a/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_all.txt
+++ b/llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_all.txt
@@ -1,7 +1,6 @@
 # RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -disassemble -show-encoding < %s | FileCheck -check-prefixes=GFX11 %s
 # RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=-WavefrontSize32,+WavefrontSize64 -disassemble -show-encoding < %s | FileCheck -check-prefixes=GFX11 %s
 
-
 # GFX11: s_abs
diff _i32 exec_hi, s1, s2           ; encoding: [0x01,0x02,0x7f,0x83]
 0x01,0x02,0x7f,0x83
 


        


More information about the llvm-commits mailing list