[llvm] [AMDGPU][MC] Add GFX12 VIMAGE and VSAMPLE encodings (PR #74062)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 1 03:29:31 PST 2023


https://github.com/artagnon updated https://github.com/llvm/llvm-project/pull/74062

>From 99da323eea0a7c99392e510bd8bb5796954fdf8c Mon Sep 17 00:00:00 2001
From: Mirko Brkusanin <Mirko.Brkusanin at amd.com>
Date: Fri, 1 Dec 2023 12:29:05 +0100
Subject: [PATCH]  [AMDGPU][MC] Add GFX12 VIMAGE and VSAMPLE encodings

---
 llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp    |    3 +
 .../AMDGPU/AsmParser/AMDGPUAsmParser.cpp      |  222 ++-
 .../Disassembler/AMDGPUDisassembler.cpp       |   27 +-
 .../AMDGPU/Disassembler/AMDGPUDisassembler.h  |    1 +
 llvm/lib/Target/AMDGPU/GCNSubtarget.h         |    4 +-
 .../AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp |   94 ++
 .../AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h   |    2 +
 llvm/lib/Target/AMDGPU/MIMGInstructions.td    |  759 ++++++----
 llvm/lib/Target/AMDGPU/SIDefines.h            |   58 +-
 llvm/lib/Target/AMDGPU/SIInstrFormats.td      |   69 +-
 llvm/lib/Target/AMDGPU/SIInstrInfo.h          |   28 +-
 .../Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp    |    4 +-
 llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h |    2 +-
 llvm/test/MC/AMDGPU/gfx12_asm_vimage.s        |  944 +++++++++++++
 llvm/test/MC/AMDGPU/gfx12_asm_vimage_alias.s  |   25 +
 llvm/test/MC/AMDGPU/gfx12_asm_vsample.s       | 1216 +++++++++++++++++
 llvm/test/MC/AMDGPU/gfx12_err.s               |   43 +
 .../MC/Disassembler/AMDGPU/decode-err.txt     |   11 +-
 .../Disassembler/AMDGPU/gfx12_dasm_vimage.txt |  944 +++++++++++++
 .../AMDGPU/gfx12_dasm_vsample.txt             | 1216 +++++++++++++++++
 20 files changed, 5378 insertions(+), 294 deletions(-)
 create mode 100644 llvm/test/MC/AMDGPU/gfx12_asm_vimage.s
 create mode 100644 llvm/test/MC/AMDGPU/gfx12_asm_vimage_alias.s
 create mode 100644 llvm/test/MC/AMDGPU/gfx12_asm_vsample.s
 create mode 100644 llvm/test/MC/AMDGPU/gfx12_err.s
 create mode 100644 llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vimage.txt
 create mode 100644 llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vsample.txt

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
index 4326f3c3fbe1ae7..3c9f9cfd834facf 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
@@ -1001,6 +1001,9 @@ GCNSubtarget::createFillMFMAShadowMutation(const TargetInstrInfo *TII) const {
 }
 
 unsigned GCNSubtarget::getNSAThreshold(const MachineFunction &MF) const {
+  if (getGeneration() >= AMDGPUSubtarget::GFX12)
+    return 0; // Not MIMG encoding.
+
   if (NSAThreshold.getNumOccurrences() > 0)
     return std::max(NSAThreshold.getValue(), 2u);
 
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
index be74c627d213756..649ca9d3e748793 100644
--- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
@@ -1460,6 +1460,10 @@ class AMDGPUAsmParser : public MCTargetAsmParser {
     return AMDGPU::isGFX11Plus(getSTI());
   }
 
+  bool isGFX12() const { return AMDGPU::isGFX12(getSTI()); }
+
+  bool isGFX12Plus() const { return AMDGPU::isGFX12Plus(getSTI()); }
+
   bool isGFX10_AEncoding() const { return AMDGPU::isGFX10_AEncoding(getSTI()); }
 
   bool isGFX10_BEncoding() const {
@@ -1492,8 +1496,8 @@ class AMDGPUAsmParser : public MCTargetAsmParser {
     return getFeatureBits()[AMDGPU::FeaturePartialNSAEncoding];
   }
 
-  unsigned getNSAMaxSize() const {
-    return AMDGPU::getNSAMaxSize(getSTI());
+  unsigned getNSAMaxSize(bool HasSampler = false) const {
+    return AMDGPU::getNSAMaxSize(getSTI(), HasSampler);
   }
 
   unsigned getMaxNumUserSGPRs() const {
@@ -1572,6 +1576,8 @@ class AMDGPUAsmParser : public MCTargetAsmParser {
                 AMDGPUOperand::ImmTy ImmTy = AMDGPUOperand::ImmTyNone);
   unsigned getCPolKind(StringRef Id, StringRef Mnemo, bool &Disabling) const;
   ParseStatus parseCPol(OperandVector &Operands);
+  ParseStatus parseScope(OperandVector &Operands, int64_t &Scope);
+  ParseStatus parseTH(OperandVector &Operands, int64_t &TH);
   ParseStatus parseStringWithPrefix(StringRef Prefix, StringRef &Value,
                                     SMLoc &StringLoc);
 
@@ -1689,6 +1695,8 @@ class AMDGPUAsmParser : public MCTargetAsmParser {
   bool validateWaitCnt(const MCInst &Inst, const OperandVector &Operands);
   bool validateCoherencyBits(const MCInst &Inst, const OperandVector &Operands,
                              const SMLoc &IDLoc);
+  bool validateTHAndScopeBits(const MCInst &Inst, const OperandVector &Operands,
+                              const unsigned CPol);
   bool validateExeczVcczOperands(const OperandVector &Operands);
   bool validateTFE(const MCInst &Inst, const OperandVector &Operands);
   std::optional<StringRef> validateLdsDirect(const MCInst &Inst);
@@ -3600,13 +3608,16 @@ bool AMDGPUAsmParser::validateIntClampSupported(const MCInst &Inst) {
   return true;
 }
 
+constexpr uint64_t MIMGFlags =
+    SIInstrFlags::MIMG | SIInstrFlags::VIMAGE | SIInstrFlags::VSAMPLE;
+
 bool AMDGPUAsmParser::validateMIMGDataSize(const MCInst &Inst,
                                            const SMLoc &IDLoc) {
 
   const unsigned Opc = Inst.getOpcode();
   const MCInstrDesc &Desc = MII.get(Opc);
 
-  if ((Desc.TSFlags & SIInstrFlags::MIMG) == 0)
+  if ((Desc.TSFlags & MIMGFlags) == 0)
     return true;
 
   int VDataIdx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::vdata);
@@ -3652,7 +3663,7 @@ bool AMDGPUAsmParser::validateMIMGAddrSize(const MCInst &Inst,
   const unsigned Opc = Inst.getOpcode();
   const MCInstrDesc &Desc = MII.get(Opc);
 
-  if ((Desc.TSFlags & SIInstrFlags::MIMG) == 0 || !isGFX10Plus())
+  if ((Desc.TSFlags & MIMGFlags) == 0 || !isGFX10Plus())
     return true;
 
   const AMDGPU::MIMGInfo *Info = AMDGPU::getMIMGInfo(Opc);
@@ -3660,7 +3671,9 @@ bool AMDGPUAsmParser::validateMIMGAddrSize(const MCInst &Inst,
   const AMDGPU::MIMGBaseOpcodeInfo *BaseOpcode =
       AMDGPU::getMIMGBaseOpcodeInfo(Info->BaseOpcode);
   int VAddr0Idx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::vaddr0);
-  int SrsrcIdx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::srsrc);
+  int RSrcOpName = Desc.TSFlags & SIInstrFlags::MIMG ? AMDGPU::OpName::srsrc
+                                                     : AMDGPU::OpName::rsrc;
+  int SrsrcIdx = AMDGPU::getNamedOperandIdx(Opc, RSrcOpName);
   int DimIdx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::dim);
   int A16Idx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::a16);
 
@@ -3668,7 +3681,7 @@ bool AMDGPUAsmParser::validateMIMGAddrSize(const MCInst &Inst,
   assert(SrsrcIdx != -1);
   assert(SrsrcIdx > VAddr0Idx);
 
-  bool IsA16 = Inst.getOperand(A16Idx).getImm();
+  bool IsA16 = (A16Idx != -1 && Inst.getOperand(A16Idx).getImm());
   if (BaseOpcode->BVH) {
     if (IsA16 == BaseOpcode->A16)
       return true;
@@ -3687,7 +3700,9 @@ bool AMDGPUAsmParser::validateMIMGAddrSize(const MCInst &Inst,
       AMDGPU::getAddrSizeMIMGOp(BaseOpcode, DimInfo, IsA16, hasG16());
 
   if (IsNSA) {
-    if (hasPartialNSAEncoding() && ExpectedAddrSize > getNSAMaxSize()) {
+    if (hasPartialNSAEncoding() &&
+        ExpectedAddrSize >
+            getNSAMaxSize(Desc.TSFlags & SIInstrFlags::VSAMPLE)) {
       int VAddrLastIdx = SrsrcIdx - 1;
       unsigned VAddrLastSize =
           AMDGPU::getRegOperandSize(getMRI(), Desc, VAddrLastIdx) / 4;
@@ -3717,7 +3732,7 @@ bool AMDGPUAsmParser::validateMIMGAtomicDMask(const MCInst &Inst) {
   const unsigned Opc = Inst.getOpcode();
   const MCInstrDesc &Desc = MII.get(Opc);
 
-  if ((Desc.TSFlags & SIInstrFlags::MIMG) == 0)
+  if ((Desc.TSFlags & MIMGFlags) == 0)
     return true;
   if (!Desc.mayLoad() || !Desc.mayStore())
     return true; // Not atomic
@@ -3755,7 +3770,7 @@ bool AMDGPUAsmParser::validateMIMGMSAA(const MCInst &Inst) {
   const unsigned Opc = Inst.getOpcode();
   const MCInstrDesc &Desc = MII.get(Opc);
 
-  if ((Desc.TSFlags & SIInstrFlags::MIMG) == 0)
+  if ((Desc.TSFlags & MIMGFlags) == 0)
     return true;
 
   const AMDGPU::MIMGInfo *Info = AMDGPU::getMIMGInfo(Opc);
@@ -3932,7 +3947,7 @@ bool AMDGPUAsmParser::validateMIMGD16(const MCInst &Inst) {
   const unsigned Opc = Inst.getOpcode();
   const MCInstrDesc &Desc = MII.get(Opc);
 
-  if ((Desc.TSFlags & SIInstrFlags::MIMG) == 0)
+  if ((Desc.TSFlags & MIMGFlags) == 0)
     return true;
 
   int D16Idx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::d16);
@@ -4570,6 +4585,9 @@ bool AMDGPUAsmParser::validateCoherencyBits(const MCInst &Inst,
 
   unsigned CPol = Inst.getOperand(CPolPos).getImm();
 
+  if (isGFX12Plus())
+    return validateTHAndScopeBits(Inst, Operands, CPol);
+
   uint64_t TSFlags = MII.get(Inst.getOpcode()).TSFlags;
   if (TSFlags & SIInstrFlags::SMRD) {
     if (CPol && (isSI() || isCI())) {
@@ -4621,6 +4639,60 @@ bool AMDGPUAsmParser::validateCoherencyBits(const MCInst &Inst,
   return true;
 }
 
+bool AMDGPUAsmParser::validateTHAndScopeBits(const MCInst &Inst,
+                                             const OperandVector &Operands,
+                                             const unsigned CPol) {
+  const unsigned TH = CPol & AMDGPU::CPol::TH;
+  const unsigned Scope = CPol & AMDGPU::CPol::SCOPE;
+
+  const unsigned Opcode = Inst.getOpcode();
+  const MCInstrDesc &TID = MII.get(Opcode);
+
+  auto PrintError = [&](StringRef Msg) {
+    SMLoc S = getImmLoc(AMDGPUOperand::ImmTyCPol, Operands);
+    Error(S, Msg);
+    return false;
+  };
+
+  if ((TID.TSFlags & SIInstrFlags::IsAtomicRet) &&
+      (TID.TSFlags & (SIInstrFlags::FLAT | SIInstrFlags::MUBUF)) &&
+      (!(TH & AMDGPU::CPol::TH_ATOMIC_RETURN)))
+    return PrintError("instruction must use th:TH_ATOMIC_RETURN");
+
+  if (TH == 0)
+    return true;
+
+  if ((TID.TSFlags & SIInstrFlags::SMRD) &&
+      ((TH == AMDGPU::CPol::TH_NT_RT) || (TH == AMDGPU::CPol::TH_RT_NT) ||
+       (TH == AMDGPU::CPol::TH_NT_HT)))
+    return PrintError("invalid th value for SMEM instruction");
+
+  if (TH == AMDGPU::CPol::TH_BYPASS) {
+    if ((Scope != AMDGPU::CPol::SCOPE_SYS &&
+         CPol & AMDGPU::CPol::TH_REAL_BYPASS) ||
+        (Scope == AMDGPU::CPol::SCOPE_SYS &&
+         !(CPol & AMDGPU::CPol::TH_REAL_BYPASS)))
+      return PrintError("scope and th combination is not valid");
+  }
+
+  bool IsStore = TID.mayStore();
+  bool IsAtomic =
+      TID.TSFlags & (SIInstrFlags::IsAtomicNoRet | SIInstrFlags::IsAtomicRet);
+
+  if (IsAtomic) {
+    if (!(CPol & AMDGPU::CPol::TH_TYPE_ATOMIC))
+      return PrintError("invalid th value for atomic instructions");
+  } else if (IsStore) {
+    if (!(CPol & AMDGPU::CPol::TH_TYPE_STORE))
+      return PrintError("invalid th value for store instructions");
+  } else {
+    if (!(CPol & AMDGPU::CPol::TH_TYPE_LOAD))
+      return PrintError("invalid th value for load instructions");
+  }
+
+  return true;
+}
+
 bool AMDGPUAsmParser::validateExeczVcczOperands(const OperandVector &Operands) {
   if (!isGFX11Plus())
     return true;
@@ -6094,6 +6166,47 @@ unsigned AMDGPUAsmParser::getCPolKind(StringRef Id, StringRef Mnemo,
 }
 
 ParseStatus AMDGPUAsmParser::parseCPol(OperandVector &Operands) {
+  if (isGFX12Plus()) {
+    SMLoc StringLoc = getLoc();
+
+    int64_t CPolVal = 0;
+    ParseStatus ResTH = ParseStatus::NoMatch;
+    ParseStatus ResScope = ParseStatus::NoMatch;
+
+    for (;;) {
+      if (ResTH.isNoMatch()) {
+        int64_t TH;
+        ResTH = parseTH(Operands, TH);
+        if (ResTH.isFailure())
+          return ResTH;
+        if (ResTH.isSuccess()) {
+          CPolVal |= TH;
+          continue;
+        }
+      }
+
+      if (ResScope.isNoMatch()) {
+        int64_t Scope;
+        ResScope = parseScope(Operands, Scope);
+        if (ResScope.isFailure())
+          return ResScope;
+        if (ResScope.isSuccess()) {
+          CPolVal |= Scope;
+          continue;
+        }
+      }
+
+      break;
+    }
+
+    if (ResTH.isNoMatch() && ResScope.isNoMatch())
+      return ParseStatus::NoMatch;
+
+    Operands.push_back(AMDGPUOperand::CreateImm(this, CPolVal, StringLoc,
+                                                AMDGPUOperand::ImmTyCPol));
+    return ParseStatus::Success;
+  }
+
   StringRef Mnemo = ((AMDGPUOperand &)*Operands[0]).getToken();
   SMLoc OpLoc = getLoc();
   unsigned Enabled = 0, Seen = 0;
@@ -6129,6 +6242,95 @@ ParseStatus AMDGPUAsmParser::parseCPol(OperandVector &Operands) {
   return ParseStatus::Success;
 }
 
+ParseStatus AMDGPUAsmParser::parseScope(OperandVector &Operands,
+                                        int64_t &Scope) {
+  Scope = AMDGPU::CPol::SCOPE_CU; // default;
+
+  StringRef Value;
+  SMLoc StringLoc;
+  ParseStatus Res;
+
+  Res = parseStringWithPrefix("scope", Value, StringLoc);
+  if (!Res.isSuccess())
+    return Res;
+
+  Scope = StringSwitch<int64_t>(Value)
+              .Case("SCOPE_CU", AMDGPU::CPol::SCOPE_CU)
+              .Case("SCOPE_SE", AMDGPU::CPol::SCOPE_SE)
+              .Case("SCOPE_DEV", AMDGPU::CPol::SCOPE_DEV)
+              .Case("SCOPE_SYS", AMDGPU::CPol::SCOPE_SYS)
+              .Default(0xffffffff);
+
+  if (Scope == 0xffffffff)
+    return Error(StringLoc, "invalid scope value");
+
+  return ParseStatus::Success;
+}
+
+ParseStatus AMDGPUAsmParser::parseTH(OperandVector &Operands, int64_t &TH) {
+  TH = AMDGPU::CPol::TH_RT; // default
+
+  StringRef Value;
+  SMLoc StringLoc;
+  ParseStatus Res = parseStringWithPrefix("th", Value, StringLoc);
+  if (!Res.isSuccess())
+    return Res;
+
+  if (Value == "TH_DEFAULT")
+    TH = AMDGPU::CPol::TH_RT;
+  else if (Value == "TH_STORE_LU" || Value == "TH_LOAD_RT_WB" ||
+           Value == "TH_LOAD_NT_WB") {
+    return Error(StringLoc, "invalid th value");
+  } else if (Value.startswith("TH_ATOMIC_")) {
+    Value = Value.drop_front(10);
+    TH = AMDGPU::CPol::TH_TYPE_ATOMIC;
+  } else if (Value.startswith("TH_LOAD_")) {
+    Value = Value.drop_front(8);
+    TH = AMDGPU::CPol::TH_TYPE_LOAD;
+  } else if (Value.startswith("TH_STORE_")) {
+    Value = Value.drop_front(9);
+    TH = AMDGPU::CPol::TH_TYPE_STORE;
+  } else {
+    return Error(StringLoc, "invalid th value");
+  }
+
+  if (Value == "BYPASS")
+    TH |= AMDGPU::CPol::TH_REAL_BYPASS;
+
+  if (TH != 0) {
+    if (TH & AMDGPU::CPol::TH_TYPE_ATOMIC)
+      TH |= StringSwitch<int64_t>(Value)
+                .Case("RETURN", AMDGPU::CPol::TH_ATOMIC_RETURN)
+                .Case("RT", AMDGPU::CPol::TH_RT)
+                .Case("RT_RETURN", AMDGPU::CPol::TH_ATOMIC_RETURN)
+                .Case("NT", AMDGPU::CPol::TH_ATOMIC_NT)
+                .Case("NT_RETURN", AMDGPU::CPol::TH_ATOMIC_NT |
+                                       AMDGPU::CPol::TH_ATOMIC_RETURN)
+                .Case("CASCADE_RT", AMDGPU::CPol::TH_ATOMIC_CASCADE)
+                .Case("CASCADE_NT", AMDGPU::CPol::TH_ATOMIC_CASCADE |
+                                        AMDGPU::CPol::TH_ATOMIC_NT)
+                .Default(0xffffffff);
+    else
+      TH |= StringSwitch<int64_t>(Value)
+                .Case("RT", AMDGPU::CPol::TH_RT)
+                .Case("NT", AMDGPU::CPol::TH_NT)
+                .Case("HT", AMDGPU::CPol::TH_HT)
+                .Case("LU", AMDGPU::CPol::TH_LU)
+                .Case("RT_WB", AMDGPU::CPol::TH_RT_WB)
+                .Case("NT_RT", AMDGPU::CPol::TH_NT_RT)
+                .Case("RT_NT", AMDGPU::CPol::TH_RT_NT)
+                .Case("NT_HT", AMDGPU::CPol::TH_NT_HT)
+                .Case("NT_WB", AMDGPU::CPol::TH_NT_WB)
+                .Case("BYPASS", AMDGPU::CPol::TH_BYPASS)
+                .Default(0xffffffff);
+  }
+
+  if (TH == 0xffffffff)
+    return Error(StringLoc, "invalid th value");
+
+  return ParseStatus::Success;
+}
+
 static void addOptionalImmOperand(
   MCInst& Inst, const OperandVector& Operands,
   AMDGPUAsmParser::OptionalImmIndexMap& OptionalIdx,
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
index 1b301ee5f49b216..6f7dd8cd947f5ef 100644
--- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
@@ -507,6 +507,10 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
       Res = tryDecodeInst(DecoderTableGFX1196, MI, DecW, Address, CS);
       if (Res)
         break;
+
+      Res = tryDecodeInst(DecoderTableGFX1296, MI, DecW, Address, CS);
+      if (Res)
+        break;
     }
     // Reinitialize Bytes
     Bytes = Bytes_.slice(0, MaxInstBytesNum);
@@ -714,6 +718,10 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
       Res = convertMIMGInst(MI);
   }
 
+  if (Res && (MCII->get(MI.getOpcode()).TSFlags &
+              (SIInstrFlags::VIMAGE | SIInstrFlags::VSAMPLE)))
+    Res = convertMIMGInst(MI);
+
   if (Res && (MCII->get(MI.getOpcode()).TSFlags & SIInstrFlags::EXP))
     Res = convertEXPInst(MI);
 
@@ -914,6 +922,7 @@ DecodeStatus AMDGPUDisassembler::convertVOP3DPPInst(MCInst &MI) const {
 // VADDR size. Consequently, decoded instructions always show address as if it
 // has 1 dword, which could be not really so.
 DecodeStatus AMDGPUDisassembler::convertMIMGInst(MCInst &MI) const {
+  auto TSFlags = MCII->get(MI.getOpcode()).TSFlags;
 
   int VDstIdx = AMDGPU::getNamedOperandIdx(MI.getOpcode(),
                                            AMDGPU::OpName::vdst);
@@ -922,8 +931,9 @@ DecodeStatus AMDGPUDisassembler::convertMIMGInst(MCInst &MI) const {
                                             AMDGPU::OpName::vdata);
   int VAddr0Idx =
       AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::vaddr0);
-  int RsrcIdx =
-      AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::srsrc);
+  int RsrcOpName = TSFlags & SIInstrFlags::MIMG ? AMDGPU::OpName::srsrc
+                                                : AMDGPU::OpName::rsrc;
+  int RsrcIdx = AMDGPU::getNamedOperandIdx(MI.getOpcode(), RsrcOpName);
   int DMaskIdx = AMDGPU::getNamedOperandIdx(MI.getOpcode(),
                                             AMDGPU::OpName::dmask);
 
@@ -944,7 +954,8 @@ DecodeStatus AMDGPUDisassembler::convertMIMGInst(MCInst &MI) const {
   }
 
   bool IsAtomic = (VDstIdx != -1);
-  bool IsGather4 = MCII->get(MI.getOpcode()).TSFlags & SIInstrFlags::Gather4;
+  bool IsGather4 = TSFlags & SIInstrFlags::Gather4;
+  bool IsVSample = TSFlags & SIInstrFlags::VSAMPLE;
   bool IsNSA = false;
   bool IsPartialNSA = false;
   unsigned AddrSize = Info->VAddrDwords;
@@ -961,10 +972,13 @@ DecodeStatus AMDGPUDisassembler::convertMIMGInst(MCInst &MI) const {
     AddrSize =
         AMDGPU::getAddrSizeMIMGOp(BaseOpcode, Dim, IsA16, AMDGPU::hasG16(STI));
 
+    // VSAMPLE insts that do not use vaddr3 behave the same as NSA forms.
+    // VIMAGE insts other than BVH never use vaddr4.
     IsNSA = Info->MIMGEncoding == AMDGPU::MIMGEncGfx10NSA ||
-            Info->MIMGEncoding == AMDGPU::MIMGEncGfx11NSA;
+            Info->MIMGEncoding == AMDGPU::MIMGEncGfx11NSA ||
+            Info->MIMGEncoding == AMDGPU::MIMGEncGfx12;
     if (!IsNSA) {
-      if (AddrSize > 12)
+      if (!IsVSample && AddrSize > 12)
         AddrSize = 16;
     } else {
       if (AddrSize > Info->VAddrDwords) {
@@ -1713,6 +1727,9 @@ bool AMDGPUDisassembler::isGFX11Plus() const {
   return AMDGPU::isGFX11Plus(STI);
 }
 
+bool AMDGPUDisassembler::isGFX12Plus() const {
+  return AMDGPU::isGFX12Plus(STI);
+}
 
 bool AMDGPUDisassembler::hasArchitectedFlatScratch() const {
   return STI.hasFeature(AMDGPU::FeatureArchitectedFlatScratch);
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
index 91b73b593d61617..7e233dcb54ea160 100644
--- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
+++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
@@ -264,6 +264,7 @@ class AMDGPUDisassembler : public MCDisassembler {
   bool isGFX10Plus() const;
   bool isGFX11() const;
   bool isGFX11Plus() const;
+  bool isGFX12Plus() const;
 
   bool hasArchitectedFlatScratch() const;
   bool hasKernargPreload() const;
diff --git a/llvm/lib/Target/AMDGPU/GCNSubtarget.h b/llvm/lib/Target/AMDGPU/GCNSubtarget.h
index 0074d1632161d18..94b9e49b765a6fd 100644
--- a/llvm/lib/Target/AMDGPU/GCNSubtarget.h
+++ b/llvm/lib/Target/AMDGPU/GCNSubtarget.h
@@ -967,7 +967,9 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo,
 
   bool hasPartialNSAEncoding() const { return HasPartialNSAEncoding; }
 
-  unsigned getNSAMaxSize() const { return AMDGPU::getNSAMaxSize(*this); }
+  unsigned getNSAMaxSize(bool HasSampler = false) const {
+    return AMDGPU::getNSAMaxSize(*this, HasSampler);
+  }
 
   bool hasGFX10_AEncoding() const {
     return GFX10_AEncoding;
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
index 9459ee088dddee5..7ba015cdea2413d 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
@@ -168,6 +168,17 @@ void AMDGPUInstPrinter::printSMRDLiteralOffset(const MCInst *MI, unsigned OpNo,
 void AMDGPUInstPrinter::printCPol(const MCInst *MI, unsigned OpNo,
                                   const MCSubtargetInfo &STI, raw_ostream &O) {
   auto Imm = MI->getOperand(OpNo).getImm();
+
+  if (AMDGPU::isGFX12Plus(STI)) {
+    const int64_t TH = Imm & CPol::TH;
+    const int64_t Scope = Imm & CPol::SCOPE;
+
+    printTH(MI, TH, Scope, O);
+    printScope(Scope, O);
+
+    return;
+  }
+
   if (Imm & CPol::GLC)
     O << ((AMDGPU::isGFX940(STI) &&
            !(MII.get(MI->getOpcode()).TSFlags & SIInstrFlags::SMRD)) ? " sc0"
@@ -182,6 +193,89 @@ void AMDGPUInstPrinter::printCPol(const MCInst *MI, unsigned OpNo,
     O << " /* unexpected cache policy bit */";
 }
 
+void AMDGPUInstPrinter::printTH(const MCInst *MI, int64_t TH, int64_t Scope,
+                                raw_ostream &O) {
+  // For th = 0 do not print this field
+  if (TH == 0)
+    return;
+
+  const unsigned Opcode = MI->getOpcode();
+  const MCInstrDesc &TID = MII.get(Opcode);
+  bool IsStore = TID.mayStore();
+  bool IsAtomic =
+      TID.TSFlags & (SIInstrFlags::IsAtomicNoRet | SIInstrFlags::IsAtomicRet);
+
+  O << " th:";
+
+  if (IsAtomic) {
+    O << "TH_ATOMIC_";
+    if (TH & AMDGPU::CPol::TH_ATOMIC_CASCADE) {
+      if (Scope >= AMDGPU::CPol::SCOPE_DEV)
+        O << "CASCADE" << (TH & AMDGPU::CPol::TH_ATOMIC_NT ? "_NT" : "_RT");
+      else
+        O << formatHex(TH);
+    } else if (TH & AMDGPU::CPol::TH_ATOMIC_NT)
+      O << "NT" << (TH & AMDGPU::CPol::TH_ATOMIC_RETURN ? "_RETURN" : "");
+    else if (TH & AMDGPU::CPol::TH_ATOMIC_RETURN)
+      O << "RETURN";
+    else
+      O << formatHex(TH);
+  } else {
+    if (!IsStore && TH == AMDGPU::CPol::TH_RESERVED)
+      O << formatHex(TH);
+    else {
+      // This will default to printing load variants when neither MayStore nor
+      // MayLoad flag is present which is the case with instructions like
+      // image_get_resinfo.
+      O << (IsStore ? "TH_STORE_" : "TH_LOAD_");
+      switch (TH) {
+      case AMDGPU::CPol::TH_NT:
+        O << "NT";
+        break;
+      case AMDGPU::CPol::TH_HT:
+        O << "HT";
+        break;
+      case AMDGPU::CPol::TH_BYPASS: // or LU or RT_WB
+        O << (Scope == AMDGPU::CPol::SCOPE_SYS ? "BYPASS"
+                                               : (IsStore ? "RT_WB" : "LU"));
+        break;
+      case AMDGPU::CPol::TH_NT_RT:
+        O << "NT_RT";
+        break;
+      case AMDGPU::CPol::TH_RT_NT:
+        O << "RT_NT";
+        break;
+      case AMDGPU::CPol::TH_NT_HT:
+        O << "NT_HT";
+        break;
+      case AMDGPU::CPol::TH_NT_WB:
+        O << "NT_WB";
+        break;
+      default:
+        llvm_unreachable("unexpected th value");
+      }
+    }
+  }
+}
+
+void AMDGPUInstPrinter::printScope(int64_t Scope, raw_ostream &O) {
+  if (Scope == CPol::SCOPE_CU)
+    return;
+
+  O << " scope:";
+
+  if (Scope == CPol::SCOPE_SE)
+    O << "SCOPE_SE";
+  else if (Scope == CPol::SCOPE_DEV)
+    O << "SCOPE_DEV";
+  else if (Scope == CPol::SCOPE_SYS)
+    O << "SCOPE_SYS";
+  else
+    llvm_unreachable("unexpected scope policy value");
+
+  return;
+}
+
 void AMDGPUInstPrinter::printDMask(const MCInst *MI, unsigned OpNo,
                                    const MCSubtargetInfo &STI, raw_ostream &O) {
   if (MI->getOperand(OpNo).getImm()) {
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
index dc83547a4afe049..95c26de6299ef55 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
@@ -66,6 +66,8 @@ class AMDGPUInstPrinter : public MCInstPrinter {
                               const MCSubtargetInfo &STI, raw_ostream &O);
   void printCPol(const MCInst *MI, unsigned OpNo,
                  const MCSubtargetInfo &STI, raw_ostream &O);
+  void printTH(const MCInst *MI, int64_t TH, int64_t Scope, raw_ostream &O);
+  void printScope(int64_t Scope, raw_ostream &O);
   void printDMask(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
                   raw_ostream &O);
   void printDim(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI,
diff --git a/llvm/lib/Target/AMDGPU/MIMGInstructions.td b/llvm/lib/Target/AMDGPU/MIMGInstructions.td
index d924f733624a9ad..240366c8e7daaee 100644
--- a/llvm/lib/Target/AMDGPU/MIMGInstructions.td
+++ b/llvm/lib/Target/AMDGPU/MIMGInstructions.td
@@ -25,6 +25,7 @@ def MIMGEncGfx10Default : MIMGEncoding;
 def MIMGEncGfx10NSA : MIMGEncoding;
 def MIMGEncGfx11Default : MIMGEncoding;
 def MIMGEncGfx11NSA : MIMGEncoding;
+def MIMGEncGfx12 : MIMGEncoding;
 
 def MIMGEncoding : GenericEnum {
   let FilterClass = "MIMGEncoding";
@@ -95,11 +96,13 @@ def MIMG {
   int NOP = -1;
 }
 
-class mimgopc <int gfx11, int gfx10m, int vi = gfx10m, int si = gfx10m> {
+class mimgopc <int gfx12, int gfx11, int gfx10m, int vi = gfx10m, int si = gfx10m> {
+  field bits<8> GFX12 = gfx12;
   field bits<8> GFX11 = gfx11;
   field bits<8> GFX10M = gfx10m; // GFX10minus for all but atomics
   field bits<8> VI = vi; // VI is only used for atomic/sampler/gather instructions
   field bits<8> SI = si; // SI is only used for atomic instructions
+  bit HAS_GFX12 = !ne(gfx12, MIMG.NOP);
   bit HAS_GFX11 = !ne(gfx11, MIMG.NOP);
   bit HAS_GFX10M = !ne(gfx10m, MIMG.NOP);
   bit HAS_VI = !ne(vi, MIMG.NOP);
@@ -218,6 +221,16 @@ class MIMG <dag outs, string dns = "">
   bits<8> VAddrOperands;
 }
 
+class VIMAGE <dag outs, string dns = ""> : MIMG<outs, dns> {
+  let MIMG = 0;
+  let VIMAGE = 1;
+}
+
+class VSAMPLE <dag outs, string dns = ""> : MIMG<outs, dns> {
+  let MIMG = 0;
+  let VSAMPLE = 1;
+}
+
 def MIMGInfoTable : GenericTable {
   let FilterClass = "MIMG";
   let CppTypeName = "MIMGInfo";
@@ -327,8 +340,8 @@ class MIMG_nsa_gfx10<int op, dag outs, int num_addrs, string dns="">
 // Base class of all non-NSA gfx11 MIMG instructions.
 class MIMG_gfx11<int op, dag outs, string dns = "">
   : MIMG<outs, dns>, MIMGe_gfx11<op> {
-  let SubtargetPredicate = isGFX11Plus;
-  let AssemblerPredicate = isGFX11Plus;
+  let SubtargetPredicate = isGFX11Only;
+  let AssemblerPredicate = isGFX11Only;
 
   let MIMGEncoding = MIMGEncGfx11Default;
   let VAddrOperands = 1;
@@ -343,8 +356,8 @@ class MIMG_nsa_gfx11<int op, dag outs, int num_addrs, string dns="",
                      list<RegisterClass> addr_types=[],
                      RegisterClass LastAddrRC = VGPR_32>
   : MIMG<outs, dns>, MIMGe_gfx11<op> {
-  let SubtargetPredicate = isGFX11Plus;
-  let AssemblerPredicate = isGFX11Plus;
+  let SubtargetPredicate = isGFX11Only;
+  let AssemblerPredicate = isGFX11Only;
 
   let MIMGEncoding = MIMGEncGfx11NSA;
   let VAddrOperands = num_addrs;
@@ -359,6 +372,48 @@ class MIMG_nsa_gfx11<int op, dag outs, int num_addrs, string dns="",
   let nsa = nsah.NSA;
 }
 
+class VIMAGE_gfx12<int op, dag outs, int num_addrs, string dns="",
+                   list<RegisterClass> addr_types=[]>
+  : VIMAGE<outs, dns>, VIMAGEe<op> {
+  let SubtargetPredicate = isGFX12Plus;
+  let AssemblerPredicate = isGFX12Plus;
+
+  let MIMGEncoding = MIMGEncGfx12;
+  let VAddrOperands = num_addrs;
+
+  MIMGNSAHelper nsah = !if(!empty(addr_types),
+                           MIMGNSAHelper<num_addrs>,
+                           MIMGNSAHelper<num_addrs, addr_types>);
+  dag AddrIns = nsah.AddrIns;
+  string AddrAsm = !if(!eq(num_addrs, 1), "$vaddr0", nsah.AddrAsm);
+
+  let d16 = !if(BaseOpcode.HasD16, ?, 0);
+  let vaddr1 = !if(!lt(num_addrs, 2), 0, ?);
+  let vaddr2 = !if(!lt(num_addrs, 3), 0, ?);
+  let vaddr3 = !if(!lt(num_addrs, 4), 0, ?);
+  let vaddr4 = !if(!lt(num_addrs, 5), 0, ?);
+}
+
+class VSAMPLE_gfx12<int op, dag outs, int num_addrs, string dns="",
+                    RegisterClass Addr3RC>
+  : VSAMPLE<outs, dns>, VSAMPLEe<op> {
+  let SubtargetPredicate = isGFX12Plus;
+  let AssemblerPredicate = isGFX12Plus;
+
+  let MIMGEncoding = MIMGEncGfx12;
+  let VAddrOperands = num_addrs;
+
+  PartialNSAHelper nsah = PartialNSAHelper<num_addrs, 4, Addr3RC>;
+
+  dag AddrIns = nsah.AddrIns;
+  string AddrAsm = !if(!eq(num_addrs, 1), "$vaddr0", nsah.AddrAsm);
+
+  let d16 = !if(BaseOpcode.HasD16, ?, 0);
+  let vaddr1 = !if(!lt(num_addrs, 2), 0, ?);
+  let vaddr2 = !if(!lt(num_addrs, 3), 0, ?);
+  let vaddr3 = !if(!lt(num_addrs, 4), 0, ?);
+}
+
 class MIMG_NoSampler_Helper <mimgopc op, string asm,
                              RegisterClass dst_rc,
                              RegisterClass addr_rc,
@@ -435,12 +490,41 @@ class MIMG_NoSampler_nsa_gfx11<mimgopc op, string opcode,
                     #!if(BaseOpcode.HasD16, "$d16", "");
 }
 
+class VIMAGE_NoSampler_gfx12<mimgopc op, string opcode,
+                             RegisterClass DataRC, int num_addrs,
+                             string dns="">
+  : VIMAGE_gfx12<op.GFX11, (outs DataRC:$vdata), num_addrs, dns> {
+  let InOperandList = !con(AddrIns,
+                           (ins SReg_256:$rsrc, DMask:$dmask, Dim:$dim,
+                                CPol:$cpol, R128A16:$r128, A16:$a16, TFE:$tfe),
+                           !if(BaseOpcode.HasD16, (ins D16:$d16), (ins)));
+  let AsmString = opcode#" $vdata, "#AddrAsm#", $rsrc$dmask$dim$cpol$r128$a16$tfe"
+                    #!if(BaseOpcode.HasD16, "$d16", "");
+}
+
+class VSAMPLE_Sampler_gfx12<mimgopc op, string opcode, RegisterClass DataRC,
+                            int num_addrs, RegisterClass Addr3RC = VGPR_32,
+                            string dns="">
+  : VSAMPLE_gfx12<op.GFX12, (outs DataRC:$vdata), num_addrs, dns, Addr3RC> {
+  let InOperandList = !con(AddrIns,
+                           (ins SReg_256:$rsrc),
+                           !if(BaseOpcode.Sampler, (ins SReg_128:$samp), (ins)),
+                           (ins DMask:$dmask, Dim:$dim, UNorm:$unorm,
+                                CPol:$cpol, R128A16:$r128, A16:$a16, TFE:$tfe,
+                                LWE:$lwe),
+                           !if(BaseOpcode.HasD16, (ins D16:$d16), (ins)));
+  let AsmString = opcode#" $vdata, "#AddrAsm#", $rsrc"
+                    #!if(BaseOpcode.Sampler, ", $samp", "")
+                    #"$dmask$dim$unorm$cpol$r128$a16$tfe$lwe"
+                    #!if(BaseOpcode.HasD16, "$d16", "");
+}
+
 multiclass MIMG_NoSampler_Src_Helper <mimgopc op, string asm,
-                                             RegisterClass dst_rc,
-                                             bit enableDisasm,
-                                             bit ExtendedImageInst = 1> {
-  let ssamp = 0 in {
-    let VAddrDwords = 1 in {
+                                      RegisterClass dst_rc, bit enableDisasm,
+                                      bit ExtendedImageInst = 1,
+                                      bit isVSample = 0> {
+  let VAddrDwords = 1 in {
+    let ssamp = 0 in {
       if op.HAS_GFX10M then {
         def _V1 : MIMG_NoSampler_Helper <op, asm, dst_rc, VGPR_32,
                                          !if(enableDisasm, "AMDGPU", "")>;
@@ -455,8 +539,19 @@ multiclass MIMG_NoSampler_Src_Helper <mimgopc op, string asm,
                                              !if(enableDisasm, "AMDGPU", "")>;
       }
     }
-
-    let VAddrDwords = 2 in {
+    if op.HAS_GFX12 then {
+      if isVSample then {
+        let samp = 0 in
+          def _V1_gfx12 : VSAMPLE_Sampler_gfx12<op, asm, dst_rc, 1>;
+      }
+      else {
+        def _V1_gfx12 : VIMAGE_NoSampler_gfx12<op, asm, dst_rc, 1,
+                                               !if(enableDisasm, "GFX12", "")>;
+      }
+    }
+  }
+  let VAddrDwords = 2 in {
+    let ssamp = 0 in {
       if op.HAS_GFX10M then {
         def _V2 : MIMG_NoSampler_Helper <op, asm, dst_rc, VReg_64>;
         if !not(ExtendedImageInst) then
@@ -469,8 +564,18 @@ multiclass MIMG_NoSampler_Src_Helper <mimgopc op, string asm,
         def _V2_nsa_gfx11 : MIMG_NoSampler_nsa_gfx11<op, asm, dst_rc, 2>;
       }
     }
-
-    let VAddrDwords = 3 in {
+    if op.HAS_GFX12 then {
+      if isVSample then {
+        let samp = 0 in
+          def _V2_gfx12 : VSAMPLE_Sampler_gfx12<op, asm, dst_rc, 2>;
+      }
+      else {
+        def _V2_gfx12 : VIMAGE_NoSampler_gfx12<op, asm, dst_rc, 2>;
+      }
+    }
+  }
+  let VAddrDwords = 3 in {
+    let ssamp = 0 in {
       if op.HAS_GFX10M then {
         def _V3 : MIMG_NoSampler_Helper <op, asm, dst_rc, VReg_96>;
         if !not(ExtendedImageInst) then
@@ -483,8 +588,18 @@ multiclass MIMG_NoSampler_Src_Helper <mimgopc op, string asm,
         def _V3_nsa_gfx11 : MIMG_NoSampler_nsa_gfx11<op, asm, dst_rc, 3>;
       }
     }
-
-    let VAddrDwords = 4 in {
+    if op.HAS_GFX12 then {
+      if isVSample then {
+        let samp = 0 in
+          def _V3_gfx12 : VSAMPLE_Sampler_gfx12<op, asm, dst_rc, 3>;
+      }
+      else {
+        def _V3_gfx12 : VIMAGE_NoSampler_gfx12<op, asm, dst_rc, 3>;
+      }
+    }
+  }
+  let VAddrDwords = 4 in {
+    let ssamp = 0 in {
       if op.HAS_GFX10M then {
         def _V4 : MIMG_NoSampler_Helper <op, asm, dst_rc, VReg_128>;
         if !not(ExtendedImageInst) then
@@ -499,6 +614,17 @@ multiclass MIMG_NoSampler_Src_Helper <mimgopc op, string asm,
                                                      !if(enableDisasm, "AMDGPU", "")>;
       }
     }
+    if op.HAS_GFX12 then {
+      if isVSample then {
+        let samp = 0 in
+          def _V4_gfx12 : VSAMPLE_Sampler_gfx12<op, asm, dst_rc, 4, VGPR_32,
+                                                !if(enableDisasm, "GFX12", "")>;
+      }
+      else {
+        def _V4_gfx12 : VIMAGE_NoSampler_gfx12<op, asm, dst_rc, 4,
+                                               !if(enableDisasm, "GFX12", "")>;
+      }
+    }
   }
 }
 
@@ -606,62 +732,97 @@ class MIMG_Store_nsa_gfx11<mimgopc op, string opcode,
                     #!if(BaseOpcode.HasD16, "$d16", "");
 }
 
+class VIMAGE_Store_gfx12<mimgopc op, string opcode,
+                         RegisterClass DataRC, int num_addrs,
+                         string dns="">
+  : VIMAGE_gfx12<op.GFX12, (outs), num_addrs, dns> {
+  let InOperandList = !con((ins DataRC:$vdata),
+                           AddrIns,
+                           (ins SReg_256:$rsrc, DMask:$dmask, Dim:$dim,
+                                CPol:$cpol, R128A16:$r128, A16:$a16, TFE:$tfe),
+                           !if(BaseOpcode.HasD16, (ins D16:$d16), (ins)));
+  let AsmString = opcode#" $vdata, "#AddrAsm#", $rsrc$dmask$dim$cpol$r128$a16$tfe"
+                    #!if(BaseOpcode.HasD16, "$d16", "");
+}
+
 multiclass MIMG_Store_Addr_Helper <mimgopc op, string asm,
                                   RegisterClass data_rc,
                                   bit enableDisasm> {
   let mayLoad = 0, mayStore = 1, hasSideEffects = 0, hasPostISelHook = 0,
-      DisableWQM = 1, ssamp = 0 in {
+      DisableWQM = 1 in {
     let VAddrDwords = 1 in {
-      if op.HAS_GFX10M then {
-        def _V1 : MIMG_Store_Helper <op, asm, data_rc, VGPR_32,
-                                     !if(enableDisasm, "AMDGPU", "")>;
-        let hasPostISelHook = 1 in
-        def _V1_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VGPR_32,
-                                     !if(enableDisasm, "GFX90A", "")>;
-        def _V1_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VGPR_32,
-                                          !if(enableDisasm, "AMDGPU", "")>;
+      let ssamp = 0 in {
+        if op.HAS_GFX10M then {
+          def _V1 : MIMG_Store_Helper <op, asm, data_rc, VGPR_32,
+                                      !if(enableDisasm, "AMDGPU", "")>;
+          let hasPostISelHook = 1 in
+          def _V1_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VGPR_32,
+                                      !if(enableDisasm, "GFX90A", "")>;
+          def _V1_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VGPR_32,
+                                            !if(enableDisasm, "AMDGPU", "")>;
+        }
+        if op.HAS_GFX11 then {
+          def _V1_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VGPR_32,
+                                            !if(enableDisasm, "AMDGPU", "")>;
+        }
       }
-      if op.HAS_GFX11 then {
-        def _V1_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VGPR_32,
-                                          !if(enableDisasm, "AMDGPU", "")>;
+      if op.HAS_GFX12 then {
+        def _V1_gfx12 : VIMAGE_Store_gfx12 <op, asm, data_rc, 1,
+                                            !if(enableDisasm, "GFX12", "")>;
       }
     }
     let VAddrDwords = 2 in {
-      if op.HAS_GFX10M then {
-        def _V2 : MIMG_Store_Helper <op, asm, data_rc, VReg_64>;
-        def _V2_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VReg_64>;
-        def _V2_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VReg_64>;
-        def _V2_nsa_gfx10 : MIMG_Store_nsa_gfx10 <op, asm, data_rc, 2>;
+      let ssamp = 0 in {
+        if op.HAS_GFX10M then {
+          def _V2 : MIMG_Store_Helper <op, asm, data_rc, VReg_64>;
+          def _V2_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VReg_64>;
+          def _V2_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VReg_64>;
+          def _V2_nsa_gfx10 : MIMG_Store_nsa_gfx10 <op, asm, data_rc, 2>;
+        }
+        if op.HAS_GFX11 then {
+          def _V2_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VReg_64>;
+          def _V2_nsa_gfx11 : MIMG_Store_nsa_gfx11 <op, asm, data_rc, 2>;
+        }
       }
-      if op.HAS_GFX11 then {
-        def _V2_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VReg_64>;
-        def _V2_nsa_gfx11 : MIMG_Store_nsa_gfx11 <op, asm, data_rc, 2>;
+      if op.HAS_GFX12 then {
+        def _V2_gfx12 : VIMAGE_Store_gfx12 <op, asm, data_rc, 2>;
       }
     }
     let VAddrDwords = 3 in {
-      if op.HAS_GFX10M then {
-        def _V3 : MIMG_Store_Helper <op, asm, data_rc, VReg_96>;
-        def _V3_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VReg_96>;
-        def _V3_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VReg_96>;
-        def _V3_nsa_gfx10 : MIMG_Store_nsa_gfx10 <op, asm, data_rc, 3>;
+      let ssamp = 0 in {
+        if op.HAS_GFX10M then {
+          def _V3 : MIMG_Store_Helper <op, asm, data_rc, VReg_96>;
+          def _V3_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VReg_96>;
+          def _V3_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VReg_96>;
+          def _V3_nsa_gfx10 : MIMG_Store_nsa_gfx10 <op, asm, data_rc, 3>;
+        }
+        if op.HAS_GFX11 then {
+          def _V3_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VReg_96>;
+          def _V3_nsa_gfx11 : MIMG_Store_nsa_gfx11 <op, asm, data_rc, 3>;
+        }
       }
-      if op.HAS_GFX11 then {
-        def _V3_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VReg_96>;
-        def _V3_nsa_gfx11 : MIMG_Store_nsa_gfx11 <op, asm, data_rc, 3>;
+      if op.HAS_GFX12 then {
+        def _V3_gfx12 : VIMAGE_Store_gfx12 <op, asm, data_rc, 3>;
       }
     }
     let VAddrDwords = 4 in {
-      if op.HAS_GFX10M then {
-        def _V4 : MIMG_Store_Helper <op, asm, data_rc, VReg_128>;
-        def _V4_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VReg_128>;
-        def _V4_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VReg_128>;
-        def _V4_nsa_gfx10 : MIMG_Store_nsa_gfx10 <op, asm, data_rc, 4,
-                                                         !if(enableDisasm, "AMDGPU", "")>;
+      let ssamp = 0 in {
+        if op.HAS_GFX10M then {
+          def _V4 : MIMG_Store_Helper <op, asm, data_rc, VReg_128>;
+          def _V4_gfx90a : MIMG_Store_Helper_gfx90a <op, asm, data_rc, VReg_128>;
+          def _V4_gfx10 : MIMG_Store_gfx10 <op, asm, data_rc, VReg_128>;
+          def _V4_nsa_gfx10 : MIMG_Store_nsa_gfx10 <op, asm, data_rc, 4,
+                                                          !if(enableDisasm, "AMDGPU", "")>;
+        }
+        if op.HAS_GFX11 then {
+          def _V4_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VReg_128>;
+          def _V4_nsa_gfx11 : MIMG_Store_nsa_gfx11 <op, asm, data_rc, 4,
+                                                          !if(enableDisasm, "AMDGPU", "")>;
+        }
       }
-      if op.HAS_GFX11 then {
-        def _V4_gfx11 : MIMG_Store_gfx11 <op, asm, data_rc, VReg_128>;
-        def _V4_nsa_gfx11 : MIMG_Store_nsa_gfx11 <op, asm, data_rc, 4,
-                                                         !if(enableDisasm, "AMDGPU", "")>;
+      if op.HAS_GFX12 then {
+        def _V4_gfx12 : VIMAGE_Store_gfx12 <op, asm, data_rc, 4,
+                                            !if(enableDisasm, "GFX12", "")>;
       }
     }
   }
@@ -788,84 +949,137 @@ class MIMG_Atomic_nsa_gfx11<mimgopc op, string opcode,
   let AsmString = opcode#" $vdata, "#AddrAsm#", $srsrc$dmask$dim$unorm$cpol$r128$a16$tfe$lwe";
 }
 
+class VIMAGE_Atomic_gfx12<mimgopc op, string opcode, RegisterClass DataRC,
+                          int num_addrs, bit enableDisasm = 0>
+  : VIMAGE_gfx12<!cast<int>(op.GFX12), (outs DataRC:$vdst), num_addrs,
+                  !if(enableDisasm, "GFX12", "")> {
+  let Constraints = "$vdst = $vdata";
+
+  let InOperandList = !con((ins DataRC:$vdata),
+                           AddrIns,
+                           (ins SReg_256:$rsrc, DMask:$dmask, Dim:$dim,
+                                 CPol:$cpol, R128A16:$r128, A16:$a16, TFE:$tfe));
+  let AsmString = opcode#" $vdata, "#AddrAsm#", $rsrc$dmask$dim$cpol$r128$a16$tfe";
+}
+
+class VIMAGE_Atomic_gfx12_Renamed<mimgopc op, string opcode, string renamed,
+                                  RegisterClass DataRC, int num_addrs,
+                                  bit enableDisasm = 0>
+   : VIMAGE_Atomic_gfx12<op, renamed, DataRC, num_addrs, enableDisasm>,
+     MnemonicAlias<opcode, renamed>, Requires<[isGFX12Plus]>;
+
 multiclass MIMG_Atomic_Addr_Helper_m <mimgopc op, string asm,
                                       RegisterClass data_rc,
                                       bit enableDasm = 0,
-                                      bit isFP = 0> {
+                                      bit isFP = 0,
+                                      string renamed = ""> {
   let hasSideEffects = 1, // FIXME: remove this
       mayLoad = 1, mayStore = 1, hasPostISelHook = 0, DisableWQM = 1,
-      ssamp = 0, FPAtomic = isFP in {
+      FPAtomic = isFP in {
     let VAddrDwords = 1 in {
-      if op.HAS_SI then {
-        def _V1_si : MIMG_Atomic_si <op, asm, data_rc, VGPR_32, enableDasm>;
-      }
-      if op.HAS_VI then {
-        def _V1_vi : MIMG_Atomic_vi <op, asm, data_rc, VGPR_32, enableDasm>;
-        let hasPostISelHook = 1 in
-        def _V1_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VGPR_32, enableDasm>;
+      let ssamp = 0 in {
+        if op.HAS_SI then {
+          def _V1_si : MIMG_Atomic_si <op, asm, data_rc, VGPR_32, enableDasm>;
+        }
+        if op.HAS_VI then {
+          def _V1_vi : MIMG_Atomic_vi <op, asm, data_rc, VGPR_32, enableDasm>;
+          let hasPostISelHook = 1 in
+          def _V1_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VGPR_32, enableDasm>;
+        }
+        if op.HAS_GFX10M then {
+          def _V1_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VGPR_32, enableDasm>;
+        }
+        if op.HAS_GFX11 then {
+          def _V1_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VGPR_32, enableDasm>;
+        }
       }
-      if op.HAS_GFX10M then {
-        def _V1_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VGPR_32, enableDasm>;
-      }
-      if op.HAS_GFX11 then {
-        def _V1_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VGPR_32, enableDasm>;
+      if op.HAS_GFX12 then {
+        if !empty(renamed) then
+          def _V1_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 1, enableDasm>;
+        else
+          def _V1_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, asm, renamed, data_rc, 1, enableDasm>;
       }
     }
     let VAddrDwords = 2 in {
-      if op.HAS_SI then {
-        def _V2_si : MIMG_Atomic_si <op, asm, data_rc, VReg_64, 0>;
+      let ssamp = 0 in {
+        if op.HAS_SI then {
+          def _V2_si : MIMG_Atomic_si <op, asm, data_rc, VReg_64, 0>;
+        }
+        if op.HAS_VI then {
+          def _V2_vi : MIMG_Atomic_vi <op, asm, data_rc, VReg_64, 0>;
+          def _V2_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VReg_64, 0>;
+        }
+        if op.HAS_GFX10M then {
+          def _V2_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VReg_64, 0>;
+          def _V2_nsa_gfx10 : MIMG_Atomic_nsa_gfx10 <op, asm, data_rc, 2, 0>;
+        }
+        if op.HAS_GFX11 then {
+          def _V2_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VReg_64, 0>;
+          def _V2_nsa_gfx11 : MIMG_Atomic_nsa_gfx11 <op, asm, data_rc, 2, 0>;
+        }
       }
-      if op.HAS_VI then {
-        def _V2_vi : MIMG_Atomic_vi <op, asm, data_rc, VReg_64, 0>;
-        def _V2_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VReg_64, 0>;
-      }
-      if op.HAS_GFX10M then {
-        def _V2_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VReg_64, 0>;
-        def _V2_nsa_gfx10 : MIMG_Atomic_nsa_gfx10 <op, asm, data_rc, 2, 0>;
-      }
-      if op.HAS_GFX11 then {
-        def _V2_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VReg_64, 0>;
-        def _V2_nsa_gfx11 : MIMG_Atomic_nsa_gfx11 <op, asm, data_rc, 2, 0>;
+      if op.HAS_GFX12 then {
+        if !empty(renamed) then
+          def _V2_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 2, 0>;
+        else
+          def _V2_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, asm, renamed, data_rc, 2, 0>;
       }
     }
     let VAddrDwords = 3 in {
-      if op.HAS_SI then {
-        def _V3_si : MIMG_Atomic_si <op, asm, data_rc, VReg_96, 0>;
-      }
-      if op.HAS_VI then {
-        def _V3_vi : MIMG_Atomic_vi <op, asm, data_rc, VReg_96, 0>;
-        def _V3_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VReg_96, 0>;
-      }
-      if op.HAS_GFX10M then {
-        def _V3_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VReg_96, 0>;
-        def _V3_nsa_gfx10 : MIMG_Atomic_nsa_gfx10 <op, asm, data_rc, 3, 0>;
+      let ssamp = 0 in {
+        if op.HAS_SI then {
+          def _V3_si : MIMG_Atomic_si <op, asm, data_rc, VReg_96, 0>;
+        }
+        if op.HAS_VI then {
+          def _V3_vi : MIMG_Atomic_vi <op, asm, data_rc, VReg_96, 0>;
+          def _V3_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VReg_96, 0>;
+        }
+        if op.HAS_GFX10M then {
+          def _V3_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VReg_96, 0>;
+          def _V3_nsa_gfx10 : MIMG_Atomic_nsa_gfx10 <op, asm, data_rc, 3, 0>;
+        }
+        if op.HAS_GFX11 then {
+          def _V3_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VReg_96, 0>;
+          def _V3_nsa_gfx11 : MIMG_Atomic_nsa_gfx11 <op, asm, data_rc, 3, 0>;
+        }
       }
-      if op.HAS_GFX11 then {
-        def _V3_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VReg_96, 0>;
-        def _V3_nsa_gfx11 : MIMG_Atomic_nsa_gfx11 <op, asm, data_rc, 3, 0>;
+      if op.HAS_GFX12 then {
+        if !empty(renamed) then
+          def _V3_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 3, 0>;
+        else
+          def _V3_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, asm, renamed, data_rc, 3, 0>;
       }
     }
     let VAddrDwords = 4 in {
-      if op.HAS_SI then {
-        def _V4_si : MIMG_Atomic_si <op, asm, data_rc, VReg_128, 0>;
-      }
-      if op.HAS_VI then {
-        def _V4_vi : MIMG_Atomic_vi <op, asm, data_rc, VReg_128, 0>;
-        def _V4_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VReg_128, 0>;
+      let ssamp = 0 in {
+        if op.HAS_SI then {
+          def _V4_si : MIMG_Atomic_si <op, asm, data_rc, VReg_128, 0>;
+        }
+        if op.HAS_VI then {
+          def _V4_vi : MIMG_Atomic_vi <op, asm, data_rc, VReg_128, 0>;
+          def _V4_gfx90a : MIMG_Atomic_gfx90a <op, asm, data_rc, VReg_128, 0>;
+        }
+        if op.HAS_GFX10M then {
+          def _V4_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VReg_128, 0>;
+          def _V4_nsa_gfx10 : MIMG_Atomic_nsa_gfx10 <op, asm, data_rc, 4, enableDasm>;
+        }
+        if op.HAS_GFX11 then {
+          def _V4_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VReg_128, 0>;
+          def _V4_nsa_gfx11 : MIMG_Atomic_nsa_gfx11 <op, asm, data_rc, 4, enableDasm>;
+        }
       }
-      if op.HAS_GFX10M then {
-        def _V4_gfx10 : MIMG_Atomic_gfx10 <op, asm, data_rc, VReg_128, 0>;
-        def _V4_nsa_gfx10 : MIMG_Atomic_nsa_gfx10 <op, asm, data_rc, 4, enableDasm>;
-      }
-      if op.HAS_GFX11 then {
-        def _V4_gfx11 : MIMG_Atomic_gfx11 <op, asm, data_rc, VReg_128, 0>;
-        def _V4_nsa_gfx11 : MIMG_Atomic_nsa_gfx11 <op, asm, data_rc, 4, enableDasm>;
+      if op.HAS_GFX12 then {
+        if !empty(renamed) then
+          def _V4_gfx12 : VIMAGE_Atomic_gfx12 <op, asm, data_rc, 4, enableDasm>;
+        else
+          def _V4_gfx12 : VIMAGE_Atomic_gfx12_Renamed <op, asm, renamed, data_rc, 4, enableDasm>;
       }
     }
   }
 }
 
-multiclass MIMG_Atomic <mimgopc op, string asm, bit isCmpSwap = 0, bit isFP = 0> { // 64-bit atomics
+multiclass MIMG_Atomic <mimgopc op, string asm, bit isCmpSwap = 0, bit isFP = 0,
+                        string renamed = ""> { // 64-bit atomics
   let IsAtomicRet = 1 in {
     def "" : MIMGBaseOpcode {
       let Atomic = 1;
@@ -877,13 +1091,17 @@ multiclass MIMG_Atomic <mimgopc op, string asm, bit isCmpSwap = 0, bit isFP = 0>
       // using dmask and tfe. Only 32-bit variant is registered with disassembler.
       // Other variants are reconstructed by disassembler using dmask and tfe.
       let VDataDwords = !if(isCmpSwap, 2, 1) in
-      defm _V1 : MIMG_Atomic_Addr_Helper_m <op, asm, !if(isCmpSwap, VReg_64, VGPR_32), 1, isFP>;
+      defm _V1 : MIMG_Atomic_Addr_Helper_m <op, asm, !if(isCmpSwap, VReg_64, VGPR_32), 1, isFP, renamed>;
       let VDataDwords = !if(isCmpSwap, 4, 2) in
-      defm _V2 : MIMG_Atomic_Addr_Helper_m <op, asm, !if(isCmpSwap, VReg_128, VReg_64), 0, isFP>;
+      defm _V2 : MIMG_Atomic_Addr_Helper_m <op, asm, !if(isCmpSwap, VReg_128, VReg_64), 0, isFP, renamed>;
     }
   } // End IsAtomicRet = 1
 }
 
+multiclass MIMG_Atomic_Renamed <mimgopc op, string asm, string renamed,
+                                bit isCmpSwap = 0, bit isFP = 0>
+  : MIMG_Atomic <op, asm, isCmpSwap, isFP, renamed>;
+
 class MIMG_Sampler_Helper <mimgopc op, string asm, RegisterClass dst_rc,
                            RegisterClass src_rc, string dns="">
   : MIMG_gfx6789 <op.VI, (outs dst_rc:$vdata), dns> {
@@ -1006,7 +1224,7 @@ class MIMGAddrSizes_dw_range<list<int> range> {
 }
 
 class MIMG_Sampler_AddrSizes<AMDGPUSampleVariant sample, bit isG16,
-                             int nsa_max_addr = 5> {
+                             int nsa_max_addr = 5, bit includeNSA1 = 0> {
   // List of all possible numbers of address words, taking all combinations of
   // A16 and image dimension into account (note: no MSAA, since this is for
   // sample/gather ops).
@@ -1061,8 +1279,10 @@ class MIMG_Sampler_AddrSizes<AMDGPUSampleVariant sample, bit isG16,
   // it is the only one that could have a register other than VGPR32.
   int EnableDisasmNum = !foldl(!head(AllNumAddrWords), !tail(AllNumAddrWords),
                                acc, var, !if(!le(var, nsa_max_addr), var, acc));
+  list<int> PossibleVariants =
+    !listconcat([12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2], !if(includeNSA1, [1], []));
   list<LastVAddrSize> PartialNSAInstrs =
-        !foldl([]<LastVAddrSize>, [12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2], lhs, dw,
+        !foldl([]<LastVAddrSize>, PossibleVariants, lhs, dw,
                !if(isIntInList<dw, AllNumAddrWords>.ret,
                    !listconcat(lhs, [LastVAddrSize<dw, !sub(nsa_max_addr, 1),
                                                    !eq(dw, EnableDisasmNum)>]),
@@ -1114,6 +1334,16 @@ multiclass MIMG_Sampler_Src_Helper <mimgopc op, string asm,
       }
     }
   }
+
+  foreach addr = MIMG_Sampler_AddrSizes<sample, isG16, 4/*MaxNSASize*/, 1>.PartialNSAInstrs in {
+    let VAddrDwords = addr.NumWords in {
+      if op.HAS_GFX12 then {
+        def _V # addr.NumWords # _gfx12
+          : VSAMPLE_Sampler_gfx12<op, asm, dst_rc, addr.NumWords, addr.RegClass,
+                                  !if(!and(enableDisasm, addr.Disassemble), "GFX12", "")>;
+      }
+    }
+  }
 }
 
 class MIMG_Sampler_BaseOpcode<AMDGPUSampleVariant sample>
@@ -1177,12 +1407,12 @@ class MIMG_IntersectRay_Helper<bit Is64, bit IsA16> {
   RegisterClass RegClass = MIMGAddrSize<num_addrs, 0>.RegClass;
   int VAddrDwords = !srl(RegClass.Size, 5);
 
-  int gfx11_nsa_addrs = !if(IsA16, 4, 5);
+  int GFX11PlusNSAAddrs = !if(IsA16, 4, 5);
   RegisterClass node_ptr_type = !if(Is64, VReg_64, VGPR_32);
-  list<RegisterClass> gfx11_addr_types =
-    !if(IsA16,
-        [node_ptr_type, VGPR_32, VReg_96, VReg_96],
-        [node_ptr_type, VGPR_32, VReg_96, VReg_96, VReg_96]);
+  list<RegisterClass> GFX11PlusAddrTypes =
+          !if(IsA16,
+              [node_ptr_type, VGPR_32, VReg_96, VReg_96],
+              [node_ptr_type, VGPR_32, VReg_96, VReg_96, VReg_96]);
 }
 
 class MIMG_IntersectRay_gfx10<mimgopc op, string opcode, RegisterClass AddrRC>
@@ -1215,6 +1445,14 @@ class MIMG_IntersectRay_nsa_gfx11<mimgopc op, string opcode, int num_addrs,
   let AsmString = opcode#" $vdata, "#nsah.AddrAsm#", $srsrc$a16";
 }
 
+class VIMAGE_IntersectRay_gfx12<mimgopc op, string opcode, int num_addrs,
+                                list<RegisterClass> addr_types>
+    : VIMAGE_gfx12<op.GFX12, (outs VReg_128:$vdata),
+                   num_addrs, "GFX12", addr_types> {
+  let InOperandList = !con(nsah.AddrIns, (ins SReg_128:$rsrc, A16:$a16));
+  let AsmString = opcode#" $vdata, "#nsah.AddrAsm#", $rsrc$a16";
+}
+
 multiclass MIMG_IntersectRay<mimgopc op, string opcode, bit Is64, bit IsA16> {
   defvar info = MIMG_IntersectRay_Helper<Is64, IsA16>;
   def "" : MIMGBaseOpcode {
@@ -1222,30 +1460,39 @@ multiclass MIMG_IntersectRay<mimgopc op, string opcode, bit Is64, bit IsA16> {
     let A16 = IsA16;
   }
   let dmask = 0xf,
-      unorm = 1,
       d16 = 0,
       cpol = 0,
       tfe = 0,
-      lwe = 0,
       r128 = 1,
-      ssamp = 0,
       dim = {0, 0, 0},
       a16 = IsA16,
       d16 = 0,
       BaseOpcode = !cast<MIMGBaseOpcode>(NAME),
       VDataDwords = 4 in {
-    def _sa_gfx10 : MIMG_IntersectRay_gfx10<op, opcode, info.RegClass> {
-      let VAddrDwords = info.VAddrDwords;
-    }
-    def _sa_gfx11 : MIMG_IntersectRay_gfx11<op, opcode, info.RegClass> {
-      let VAddrDwords = info.VAddrDwords;
-    }
-    def _nsa_gfx10 : MIMG_IntersectRay_nsa_gfx10<op, opcode, info.num_addrs> {
-      let VAddrDwords = info.num_addrs;
+    let unorm = 1,
+        lwe = 0,
+        ssamp = 0 in {
+      if op.HAS_GFX10M then
+      def _sa_gfx10 : MIMG_IntersectRay_gfx10<op, opcode, info.RegClass> {
+        let VAddrDwords = info.VAddrDwords;
+      }
+      if op.HAS_GFX11 then
+      def _sa_gfx11 : MIMG_IntersectRay_gfx11<op, opcode, info.RegClass> {
+        let VAddrDwords = info.VAddrDwords;
+      }
+      if op.HAS_GFX10M then
+      def _nsa_gfx10 : MIMG_IntersectRay_nsa_gfx10<op, opcode, info.num_addrs> {
+        let VAddrDwords = info.num_addrs;
+      }
+      if op.HAS_GFX11 then
+      def _nsa_gfx11 : MIMG_IntersectRay_nsa_gfx11<op, opcode,
+                                                  info.GFX11PlusNSAAddrs,
+                                                  info.GFX11PlusAddrTypes> {
+        let VAddrDwords = info.num_addrs;
+      }
     }
-    def _nsa_gfx11 : MIMG_IntersectRay_nsa_gfx11<op, opcode,
-                                                 info.gfx11_nsa_addrs,
-                                                 info.gfx11_addr_types> {
+    def _gfx12 : VIMAGE_IntersectRay_gfx12<op, opcode, info.GFX11PlusNSAAddrs,
+                                           info.GFX11PlusAddrTypes> {
       let VAddrDwords = info.num_addrs;
     }
   }
@@ -1261,13 +1508,13 @@ multiclass MIMG_MSAA_Load <mimgopc op, string asm> {
   let BaseOpcode = !cast<MIMGBaseOpcode>(NAME),
     Gather4 = 1, hasPostISelHook = 0, mayLoad = 1 in {
     let VDataDwords = 2 in
-    defm _V2 : MIMG_NoSampler_Src_Helper<op, asm, VReg_64, 0>; /* packed D16 */
+    defm _V2 : MIMG_NoSampler_Src_Helper<op, asm, VReg_64, 0, 0, 1>; /* packed D16 */
     let VDataDwords = 3 in
-    defm _V3 : MIMG_NoSampler_Src_Helper<op, asm, VReg_96, 0>; /* packed D16 + tfe */
+    defm _V3 : MIMG_NoSampler_Src_Helper<op, asm, VReg_96, 0, 0, 1>; /* packed D16 + tfe */
     let VDataDwords = 4 in
-    defm _V4 : MIMG_NoSampler_Src_Helper<op, asm, VReg_128, 1>;
+    defm _V4 : MIMG_NoSampler_Src_Helper<op, asm, VReg_128, 1, 0, 1>;
     let VDataDwords = 5 in
-    defm _V5 : MIMG_NoSampler_Src_Helper<op, asm, VReg_160, 0>;
+    defm _V5 : MIMG_NoSampler_Src_Helper<op, asm, VReg_160, 0, 0, 1>;
   }
 }
 
@@ -1276,143 +1523,143 @@ multiclass MIMG_MSAA_Load <mimgopc op, string asm> {
 //===----------------------------------------------------------------------===//
 let OtherPredicates = [HasImageInsts] in {
 
-defm IMAGE_LOAD                 : MIMG_NoSampler <mimgopc<0x00, 0x00>, "image_load", 1>;
-defm IMAGE_LOAD_MIP             : MIMG_NoSampler <mimgopc<0x01, 0x01>, "image_load_mip", 1, 1>;
-defm IMAGE_LOAD_PCK             : MIMG_NoSampler <mimgopc<0x02, 0x02>, "image_load_pck", 0>;
-defm IMAGE_LOAD_PCK_SGN         : MIMG_NoSampler <mimgopc<0x03, 0x03>, "image_load_pck_sgn", 0>;
-defm IMAGE_LOAD_MIP_PCK         : MIMG_NoSampler <mimgopc<0x04, 0x04>, "image_load_mip_pck", 0, 1>;
-defm IMAGE_LOAD_MIP_PCK_SGN     : MIMG_NoSampler <mimgopc<0x05, 0x05>, "image_load_mip_pck_sgn", 0, 1>;
-defm IMAGE_STORE                : MIMG_Store <mimgopc<0x06, 0x08>, "image_store", 1>;
-defm IMAGE_STORE_MIP            : MIMG_Store <mimgopc<0x07, 0x09>, "image_store_mip", 1, 1>;
-defm IMAGE_STORE_PCK            : MIMG_Store <mimgopc<0x08, 0x0a>, "image_store_pck", 0>;
-defm IMAGE_STORE_MIP_PCK        : MIMG_Store <mimgopc<0x09, 0x0b>, "image_store_mip_pck", 0, 1>;
-
-defm IMAGE_GET_RESINFO          : MIMG_NoSampler <mimgopc<0x17, 0x0e>, "image_get_resinfo", 0, 1, 1>;
-
-defm IMAGE_ATOMIC_SWAP          : MIMG_Atomic <mimgopc<0x0a, 0x0f, 0x10, 0x0f>, "image_atomic_swap">;
-defm IMAGE_ATOMIC_CMPSWAP       : MIMG_Atomic <mimgopc<0x0b, 0x10, 0x11, 0x10>, "image_atomic_cmpswap", 1>;
-defm IMAGE_ATOMIC_ADD           : MIMG_Atomic <mimgopc<0x0c, 0x11, 0x12, 0x11>, "image_atomic_add">;
-defm IMAGE_ATOMIC_SUB           : MIMG_Atomic <mimgopc<0x0d, 0x12, 0x13, 0x12>, "image_atomic_sub">;
-defm IMAGE_ATOMIC_RSUB          : MIMG_Atomic <mimgopc<MIMG.NOP, MIMG.NOP, MIMG.NOP, 0x13>, "image_atomic_rsub">;
-defm IMAGE_ATOMIC_SMIN          : MIMG_Atomic <mimgopc<0x0e, 0x14>, "image_atomic_smin">;
-defm IMAGE_ATOMIC_UMIN          : MIMG_Atomic <mimgopc<0x0f, 0x15>, "image_atomic_umin">;
-defm IMAGE_ATOMIC_SMAX          : MIMG_Atomic <mimgopc<0x10, 0x16>, "image_atomic_smax">;
-defm IMAGE_ATOMIC_UMAX          : MIMG_Atomic <mimgopc<0x11, 0x17>, "image_atomic_umax">;
-defm IMAGE_ATOMIC_AND           : MIMG_Atomic <mimgopc<0x12, 0x18>, "image_atomic_and">;
-defm IMAGE_ATOMIC_OR            : MIMG_Atomic <mimgopc<0x13, 0x19>, "image_atomic_or">;
-defm IMAGE_ATOMIC_XOR           : MIMG_Atomic <mimgopc<0x14, 0x1a>, "image_atomic_xor">;
-defm IMAGE_ATOMIC_INC           : MIMG_Atomic <mimgopc<0x15, 0x1b>, "image_atomic_inc">;
-defm IMAGE_ATOMIC_DEC           : MIMG_Atomic <mimgopc<0x16, 0x1c>, "image_atomic_dec">;
-defm IMAGE_ATOMIC_FCMPSWAP      : MIMG_Atomic <mimgopc<MIMG.NOP, 0x1d, MIMG.NOP>, "image_atomic_fcmpswap", 1, 1>;
-defm IMAGE_ATOMIC_FMIN          : MIMG_Atomic <mimgopc<MIMG.NOP, 0x1e, MIMG.NOP>, "image_atomic_fmin", 0, 1>;
-defm IMAGE_ATOMIC_FMAX          : MIMG_Atomic <mimgopc<MIMG.NOP, 0x1f, MIMG.NOP>, "image_atomic_fmax", 0, 1>;
-
-defm IMAGE_SAMPLE               : MIMG_Sampler_WQM <mimgopc<0x1b, 0x20>, AMDGPUSample>;
+defm IMAGE_LOAD                 : MIMG_NoSampler <mimgopc<0x00, 0x00, 0x00>, "image_load", 1>;
+defm IMAGE_LOAD_MIP             : MIMG_NoSampler <mimgopc<0x01, 0x01, 0x01>, "image_load_mip", 1, 1>;
+defm IMAGE_LOAD_PCK             : MIMG_NoSampler <mimgopc<0x02, 0x02, 0x02>, "image_load_pck", 0>;
+defm IMAGE_LOAD_PCK_SGN         : MIMG_NoSampler <mimgopc<0x03, 0x03, 0x03>, "image_load_pck_sgn", 0>;
+defm IMAGE_LOAD_MIP_PCK         : MIMG_NoSampler <mimgopc<0x04, 0x04, 0x04>, "image_load_mip_pck", 0, 1>;
+defm IMAGE_LOAD_MIP_PCK_SGN     : MIMG_NoSampler <mimgopc<0x05, 0x05, 0x05>, "image_load_mip_pck_sgn", 0, 1>;
+defm IMAGE_STORE                : MIMG_Store <mimgopc<0x06, 0x06, 0x08>, "image_store", 1>;
+defm IMAGE_STORE_MIP            : MIMG_Store <mimgopc<0x07, 0x07, 0x09>, "image_store_mip", 1, 1>;
+defm IMAGE_STORE_PCK            : MIMG_Store <mimgopc<0x08, 0x08, 0x0a>, "image_store_pck", 0>;
+defm IMAGE_STORE_MIP_PCK        : MIMG_Store <mimgopc<0x09, 0x09, 0x0b>, "image_store_mip_pck", 0, 1>;
+
+defm IMAGE_GET_RESINFO          : MIMG_NoSampler <mimgopc<0x17, 0x17, 0x0e, 0x0e, 0x0e>, "image_get_resinfo", 0, 1, 1>;
+
+defm IMAGE_ATOMIC_SWAP          : MIMG_Atomic <mimgopc<0x0a, 0x0a, 0x0f, 0x10, 0x0f>, "image_atomic_swap">;
+defm IMAGE_ATOMIC_CMPSWAP       : MIMG_Atomic <mimgopc<0x0b, 0x0b, 0x10, 0x11, 0x10>, "image_atomic_cmpswap", 1>;
+defm IMAGE_ATOMIC_ADD           : MIMG_Atomic_Renamed <mimgopc<0x0c, 0x0c, 0x11, 0x12, 0x11>, "image_atomic_add", "image_atomic_add_uint">;
+defm IMAGE_ATOMIC_SUB           : MIMG_Atomic_Renamed <mimgopc<0x0d, 0x0d, 0x12, 0x13, 0x12>, "image_atomic_sub", "image_atomic_sub_uint">;
+defm IMAGE_ATOMIC_RSUB          : MIMG_Atomic <mimgopc<MIMG.NOP, MIMG.NOP, MIMG.NOP, MIMG.NOP, 0x13>, "image_atomic_rsub">;
+defm IMAGE_ATOMIC_SMIN          : MIMG_Atomic_Renamed <mimgopc<0x0e, 0x0e, 0x14>, "image_atomic_smin", "image_atomic_min_int">;
+defm IMAGE_ATOMIC_UMIN          : MIMG_Atomic_Renamed <mimgopc<0x0f, 0x0f, 0x15>, "image_atomic_umin", "image_atomic_min_uint">;
+defm IMAGE_ATOMIC_SMAX          : MIMG_Atomic_Renamed <mimgopc<0x10, 0x10, 0x16>, "image_atomic_smax", "image_atomic_max_int">;
+defm IMAGE_ATOMIC_UMAX          : MIMG_Atomic_Renamed <mimgopc<0x11, 0x11, 0x17>, "image_atomic_umax", "image_atomic_max_uint">;
+defm IMAGE_ATOMIC_AND           : MIMG_Atomic <mimgopc<0x12, 0x12, 0x18>, "image_atomic_and">;
+defm IMAGE_ATOMIC_OR            : MIMG_Atomic <mimgopc<0x13, 0x13, 0x19>, "image_atomic_or">;
+defm IMAGE_ATOMIC_XOR           : MIMG_Atomic <mimgopc<0x14, 0x14, 0x1a>, "image_atomic_xor">;
+defm IMAGE_ATOMIC_INC           : MIMG_Atomic_Renamed <mimgopc<0x15, 0x15, 0x1b>, "image_atomic_inc", "image_atomic_inc_uint">;
+defm IMAGE_ATOMIC_DEC           : MIMG_Atomic_Renamed <mimgopc<0x16, 0x16, 0x1c>, "image_atomic_dec", "image_atomic_dec_uint">;
+defm IMAGE_ATOMIC_FCMPSWAP      : MIMG_Atomic <mimgopc<MIMG.NOP, MIMG.NOP, 0x1d, MIMG.NOP>, "image_atomic_fcmpswap", 1, 1>;
+defm IMAGE_ATOMIC_FMIN          : MIMG_Atomic <mimgopc<MIMG.NOP, MIMG.NOP, 0x1e, MIMG.NOP>, "image_atomic_fmin", 0, 1>;
+defm IMAGE_ATOMIC_FMAX          : MIMG_Atomic <mimgopc<MIMG.NOP, MIMG.NOP, 0x1f, MIMG.NOP>, "image_atomic_fmax", 0, 1>;
+
+defm IMAGE_SAMPLE               : MIMG_Sampler_WQM <mimgopc<0x1b, 0x1b, 0x20>, AMDGPUSample>;
 let OtherPredicates = [HasExtendedImageInsts] in {
-defm IMAGE_SAMPLE_CL            : MIMG_Sampler_WQM <mimgopc<0x40, 0x21>, AMDGPUSample_cl>;
-defm IMAGE_SAMPLE_D             : MIMG_Sampler <mimgopc<0x1c, 0x22>, AMDGPUSample_d>;
-defm IMAGE_SAMPLE_D_CL          : MIMG_Sampler <mimgopc<0x41, 0x23>, AMDGPUSample_d_cl>;
-defm IMAGE_SAMPLE_L             : MIMG_Sampler <mimgopc<0x1d, 0x24>, AMDGPUSample_l>;
-defm IMAGE_SAMPLE_B             : MIMG_Sampler_WQM <mimgopc<0x1e, 0x25>, AMDGPUSample_b>;
-defm IMAGE_SAMPLE_B_CL          : MIMG_Sampler_WQM <mimgopc<0x42, 0x26>, AMDGPUSample_b_cl>;
-defm IMAGE_SAMPLE_LZ            : MIMG_Sampler <mimgopc<0x1f, 0x27>, AMDGPUSample_lz>;
-defm IMAGE_SAMPLE_C             : MIMG_Sampler_WQM <mimgopc<0x20, 0x28>, AMDGPUSample_c>;
-defm IMAGE_SAMPLE_C_CL          : MIMG_Sampler_WQM <mimgopc<0x43, 0x29>, AMDGPUSample_c_cl>;
-defm IMAGE_SAMPLE_C_D           : MIMG_Sampler <mimgopc<0x21, 0x2a>, AMDGPUSample_c_d>;
-defm IMAGE_SAMPLE_C_D_CL        : MIMG_Sampler <mimgopc<0x44, 0x2b>, AMDGPUSample_c_d_cl>;
-defm IMAGE_SAMPLE_C_L           : MIMG_Sampler <mimgopc<0x22, 0x2c>, AMDGPUSample_c_l>;
-defm IMAGE_SAMPLE_C_B           : MIMG_Sampler_WQM <mimgopc<0x23, 0x2d>, AMDGPUSample_c_b>;
-defm IMAGE_SAMPLE_C_B_CL        : MIMG_Sampler_WQM <mimgopc<0x45, 0x2e>, AMDGPUSample_c_b_cl>;
-defm IMAGE_SAMPLE_C_LZ          : MIMG_Sampler <mimgopc<0x24, 0x2f>, AMDGPUSample_c_lz>;
-defm IMAGE_SAMPLE_O             : MIMG_Sampler_WQM <mimgopc<0x25, 0x30>, AMDGPUSample_o>;
-defm IMAGE_SAMPLE_CL_O          : MIMG_Sampler_WQM <mimgopc<0x46, 0x31>, AMDGPUSample_cl_o>;
-defm IMAGE_SAMPLE_D_O           : MIMG_Sampler <mimgopc<0x26, 0x32>, AMDGPUSample_d_o>;
-defm IMAGE_SAMPLE_D_CL_O        : MIMG_Sampler <mimgopc<0x47, 0x33>, AMDGPUSample_d_cl_o>;
-defm IMAGE_SAMPLE_L_O           : MIMG_Sampler <mimgopc<0x27, 0x34>, AMDGPUSample_l_o>;
-defm IMAGE_SAMPLE_B_O           : MIMG_Sampler_WQM <mimgopc<0x28, 0x35>, AMDGPUSample_b_o>;
-defm IMAGE_SAMPLE_B_CL_O        : MIMG_Sampler_WQM <mimgopc<0x48, 0x36>, AMDGPUSample_b_cl_o>;
-defm IMAGE_SAMPLE_LZ_O          : MIMG_Sampler <mimgopc<0x29, 0x37>, AMDGPUSample_lz_o>;
-defm IMAGE_SAMPLE_C_O           : MIMG_Sampler_WQM <mimgopc<0x2a, 0x38>, AMDGPUSample_c_o>;
-defm IMAGE_SAMPLE_C_CL_O        : MIMG_Sampler_WQM <mimgopc<0x49, 0x39>, AMDGPUSample_c_cl_o>;
-defm IMAGE_SAMPLE_C_D_O         : MIMG_Sampler <mimgopc<0x2b, 0x3a>, AMDGPUSample_c_d_o>;
-defm IMAGE_SAMPLE_C_D_CL_O      : MIMG_Sampler <mimgopc<0x4a, 0x3b>, AMDGPUSample_c_d_cl_o>;
-defm IMAGE_SAMPLE_C_L_O         : MIMG_Sampler <mimgopc<0x2c, 0x3c>, AMDGPUSample_c_l_o>;
-defm IMAGE_SAMPLE_C_B_CL_O      : MIMG_Sampler_WQM <mimgopc<0x4b, 0x3e>, AMDGPUSample_c_b_cl_o>;
-defm IMAGE_SAMPLE_C_B_O         : MIMG_Sampler_WQM <mimgopc<0x2d, 0x3d>, AMDGPUSample_c_b_o>;
-defm IMAGE_SAMPLE_C_LZ_O        : MIMG_Sampler <mimgopc<0x2e, 0x3f>, AMDGPUSample_c_lz_o>;
-defm IMAGE_GATHER4              : MIMG_Gather_WQM <mimgopc<0x2f, 0x40>, AMDGPUSample>;
-defm IMAGE_GATHER4_CL           : MIMG_Gather_WQM <mimgopc<0x60, 0x41>, AMDGPUSample_cl>;
-defm IMAGE_GATHER4_L            : MIMG_Gather <mimgopc<0x30, 0x44>, AMDGPUSample_l>;
-defm IMAGE_GATHER4_B            : MIMG_Gather_WQM <mimgopc<0x31, 0x45>, AMDGPUSample_b>;
-defm IMAGE_GATHER4_B_CL         : MIMG_Gather_WQM <mimgopc<0x61, 0x46>, AMDGPUSample_b_cl>;
-defm IMAGE_GATHER4_LZ           : MIMG_Gather <mimgopc<0x32, 0x47>, AMDGPUSample_lz>;
-defm IMAGE_GATHER4_C            : MIMG_Gather_WQM <mimgopc<0x33, 0x48>, AMDGPUSample_c>;
-defm IMAGE_GATHER4_C_CL         : MIMG_Gather_WQM <mimgopc<0x62, 0x49>, AMDGPUSample_c_cl>;
-defm IMAGE_GATHER4_C_L          : MIMG_Gather <mimgopc<0x63, 0x4c>, AMDGPUSample_c_l>;
-defm IMAGE_GATHER4_C_B          : MIMG_Gather_WQM <mimgopc<0x64, 0x4d>, AMDGPUSample_c_b>;
-defm IMAGE_GATHER4_C_B_CL       : MIMG_Gather_WQM <mimgopc<0x65, 0x4e>, AMDGPUSample_c_b_cl>;
-defm IMAGE_GATHER4_C_LZ         : MIMG_Gather <mimgopc<0x34, 0x4f>, AMDGPUSample_c_lz>;
-defm IMAGE_GATHER4_O            : MIMG_Gather_WQM <mimgopc<0x35, 0x50>, AMDGPUSample_o>;
-defm IMAGE_GATHER4_CL_O         : MIMG_Gather_WQM <mimgopc<MIMG.NOP, 0x51>, AMDGPUSample_cl_o>;
-defm IMAGE_GATHER4_L_O          : MIMG_Gather <mimgopc<MIMG.NOP, 0x54>, AMDGPUSample_l_o>;
-defm IMAGE_GATHER4_B_O          : MIMG_Gather_WQM <mimgopc<MIMG.NOP, 0x55>, AMDGPUSample_b_o>;
-defm IMAGE_GATHER4_B_CL_O       : MIMG_Gather <mimgopc<MIMG.NOP, 0x56>, AMDGPUSample_b_cl_o>;
-defm IMAGE_GATHER4_LZ_O         : MIMG_Gather <mimgopc<0x36, 0x57>, AMDGPUSample_lz_o>;
-defm IMAGE_GATHER4_C_O          : MIMG_Gather_WQM <mimgopc<MIMG.NOP, 0x58>, AMDGPUSample_c_o>;
-defm IMAGE_GATHER4_C_CL_O       : MIMG_Gather_WQM <mimgopc<MIMG.NOP, 0x59>, AMDGPUSample_c_cl_o>;
-defm IMAGE_GATHER4_C_L_O        : MIMG_Gather <mimgopc<MIMG.NOP, 0x5c>, AMDGPUSample_c_l_o>;
-defm IMAGE_GATHER4_C_B_O        : MIMG_Gather_WQM <mimgopc<MIMG.NOP, 0x5d>, AMDGPUSample_c_b_o>;
-defm IMAGE_GATHER4_C_B_CL_O     : MIMG_Gather_WQM <mimgopc<MIMG.NOP, 0x5e>, AMDGPUSample_c_b_cl_o>;
-defm IMAGE_GATHER4_C_LZ_O       : MIMG_Gather <mimgopc<0x37, 0x5f>, AMDGPUSample_c_lz_o>;
+defm IMAGE_SAMPLE_CL            : MIMG_Sampler_WQM <mimgopc<0x40, 0x40, 0x21>, AMDGPUSample_cl>;
+defm IMAGE_SAMPLE_D             : MIMG_Sampler <mimgopc<0x1c, 0x1c, 0x22>, AMDGPUSample_d>;
+defm IMAGE_SAMPLE_D_CL          : MIMG_Sampler <mimgopc<0x41, 0x41, 0x23>, AMDGPUSample_d_cl>;
+defm IMAGE_SAMPLE_L             : MIMG_Sampler <mimgopc<0x1d, 0x1d, 0x24>, AMDGPUSample_l>;
+defm IMAGE_SAMPLE_B             : MIMG_Sampler_WQM <mimgopc<0x1e, 0x1e, 0x25>, AMDGPUSample_b>;
+defm IMAGE_SAMPLE_B_CL          : MIMG_Sampler_WQM <mimgopc<0x42, 0x42, 0x26>, AMDGPUSample_b_cl>;
+defm IMAGE_SAMPLE_LZ            : MIMG_Sampler <mimgopc<0x1f, 0x1f, 0x27>, AMDGPUSample_lz>;
+defm IMAGE_SAMPLE_C             : MIMG_Sampler_WQM <mimgopc<0x20, 0x20, 0x28>, AMDGPUSample_c>;
+defm IMAGE_SAMPLE_C_CL          : MIMG_Sampler_WQM <mimgopc<0x43, 0x43, 0x29>, AMDGPUSample_c_cl>;
+defm IMAGE_SAMPLE_C_D           : MIMG_Sampler <mimgopc<0x21, 0x21, 0x2a>, AMDGPUSample_c_d>;
+defm IMAGE_SAMPLE_C_D_CL        : MIMG_Sampler <mimgopc<0x44, 0x44, 0x2b>, AMDGPUSample_c_d_cl>;
+defm IMAGE_SAMPLE_C_L           : MIMG_Sampler <mimgopc<0x22, 0x22, 0x2c>, AMDGPUSample_c_l>;
+defm IMAGE_SAMPLE_C_B           : MIMG_Sampler_WQM <mimgopc<0x23, 0x23, 0x2d>, AMDGPUSample_c_b>;
+defm IMAGE_SAMPLE_C_B_CL        : MIMG_Sampler_WQM <mimgopc<0x45, 0x45, 0x2e>, AMDGPUSample_c_b_cl>;
+defm IMAGE_SAMPLE_C_LZ          : MIMG_Sampler <mimgopc<0x24, 0x24, 0x2f>, AMDGPUSample_c_lz>;
+defm IMAGE_SAMPLE_O             : MIMG_Sampler_WQM <mimgopc<0x25, 0x25, 0x30>, AMDGPUSample_o>;
+defm IMAGE_SAMPLE_CL_O          : MIMG_Sampler_WQM <mimgopc<0x46, 0x46, 0x31>, AMDGPUSample_cl_o>;
+defm IMAGE_SAMPLE_D_O           : MIMG_Sampler <mimgopc<0x26, 0x26, 0x32>, AMDGPUSample_d_o>;
+defm IMAGE_SAMPLE_D_CL_O        : MIMG_Sampler <mimgopc<0x47, 0x47, 0x33>, AMDGPUSample_d_cl_o>;
+defm IMAGE_SAMPLE_L_O           : MIMG_Sampler <mimgopc<0x27, 0x27, 0x34>, AMDGPUSample_l_o>;
+defm IMAGE_SAMPLE_B_O           : MIMG_Sampler_WQM <mimgopc<0x28, 0x28, 0x35>, AMDGPUSample_b_o>;
+defm IMAGE_SAMPLE_B_CL_O        : MIMG_Sampler_WQM <mimgopc<0x48, 0x48, 0x36>, AMDGPUSample_b_cl_o>;
+defm IMAGE_SAMPLE_LZ_O          : MIMG_Sampler <mimgopc<0x29, 0x29, 0x37>, AMDGPUSample_lz_o>;
+defm IMAGE_SAMPLE_C_O           : MIMG_Sampler_WQM <mimgopc<0x2a, 0x2a, 0x38>, AMDGPUSample_c_o>;
+defm IMAGE_SAMPLE_C_CL_O        : MIMG_Sampler_WQM <mimgopc<0x49, 0x49, 0x39>, AMDGPUSample_c_cl_o>;
+defm IMAGE_SAMPLE_C_D_O         : MIMG_Sampler <mimgopc<0x2b, 0x2b, 0x3a>, AMDGPUSample_c_d_o>;
+defm IMAGE_SAMPLE_C_D_CL_O      : MIMG_Sampler <mimgopc<0x4a, 0x4a, 0x3b>, AMDGPUSample_c_d_cl_o>;
+defm IMAGE_SAMPLE_C_L_O         : MIMG_Sampler <mimgopc<0x2c, 0x2c, 0x3c>, AMDGPUSample_c_l_o>;
+defm IMAGE_SAMPLE_C_B_CL_O      : MIMG_Sampler_WQM <mimgopc<0x4b, 0x4b, 0x3e>, AMDGPUSample_c_b_cl_o>;
+defm IMAGE_SAMPLE_C_B_O         : MIMG_Sampler_WQM <mimgopc<0x2d, 0x2d, 0x3d>, AMDGPUSample_c_b_o>;
+defm IMAGE_SAMPLE_C_LZ_O        : MIMG_Sampler <mimgopc<0x2e, 0x2e, 0x3f>, AMDGPUSample_c_lz_o>;
+defm IMAGE_GATHER4              : MIMG_Gather_WQM <mimgopc<0x2f, 0x2f, 0x40>, AMDGPUSample>;
+defm IMAGE_GATHER4_CL           : MIMG_Gather_WQM <mimgopc<0x60, 0x60, 0x41>, AMDGPUSample_cl>;
+defm IMAGE_GATHER4_L            : MIMG_Gather <mimgopc<0x30, 0x30, 0x44>, AMDGPUSample_l>;
+defm IMAGE_GATHER4_B            : MIMG_Gather_WQM <mimgopc<0x31, 0x31, 0x45>, AMDGPUSample_b>;
+defm IMAGE_GATHER4_B_CL         : MIMG_Gather_WQM <mimgopc<0x61, 0x61, 0x46>, AMDGPUSample_b_cl>;
+defm IMAGE_GATHER4_LZ           : MIMG_Gather <mimgopc<0x32, 0x32, 0x47>, AMDGPUSample_lz>;
+defm IMAGE_GATHER4_C            : MIMG_Gather_WQM <mimgopc<0x33, 0x33, 0x48>, AMDGPUSample_c>;
+defm IMAGE_GATHER4_C_CL         : MIMG_Gather_WQM <mimgopc<0x62, 0x62, 0x49>, AMDGPUSample_c_cl>;
+defm IMAGE_GATHER4_C_L          : MIMG_Gather <mimgopc<0x63, 0x63, 0x4c>, AMDGPUSample_c_l>;
+defm IMAGE_GATHER4_C_B          : MIMG_Gather_WQM <mimgopc<0x64, 0x64, 0x4d>, AMDGPUSample_c_b>;
+defm IMAGE_GATHER4_C_B_CL       : MIMG_Gather_WQM <mimgopc<0x65, 0x65, 0x4e>, AMDGPUSample_c_b_cl>;
+defm IMAGE_GATHER4_C_LZ         : MIMG_Gather <mimgopc<0x34, 0x34, 0x4f>, AMDGPUSample_c_lz>;
+defm IMAGE_GATHER4_O            : MIMG_Gather_WQM <mimgopc<0x35, 0x35, 0x50>, AMDGPUSample_o>;
+defm IMAGE_GATHER4_CL_O         : MIMG_Gather_WQM <mimgopc<MIMG.NOP, MIMG.NOP, 0x51>, AMDGPUSample_cl_o>;
+defm IMAGE_GATHER4_L_O          : MIMG_Gather <mimgopc<MIMG.NOP, MIMG.NOP, 0x54>, AMDGPUSample_l_o>;
+defm IMAGE_GATHER4_B_O          : MIMG_Gather_WQM <mimgopc<MIMG.NOP, MIMG.NOP, 0x55>, AMDGPUSample_b_o>;
+defm IMAGE_GATHER4_B_CL_O       : MIMG_Gather <mimgopc<MIMG.NOP, MIMG.NOP, 0x56>, AMDGPUSample_b_cl_o>;
+defm IMAGE_GATHER4_LZ_O         : MIMG_Gather <mimgopc<0x36, 0x36, 0x57>, AMDGPUSample_lz_o>;
+defm IMAGE_GATHER4_C_O          : MIMG_Gather_WQM <mimgopc<MIMG.NOP, MIMG.NOP, 0x58>, AMDGPUSample_c_o>;
+defm IMAGE_GATHER4_C_CL_O       : MIMG_Gather_WQM <mimgopc<MIMG.NOP, MIMG.NOP, 0x59>, AMDGPUSample_c_cl_o>;
+defm IMAGE_GATHER4_C_L_O        : MIMG_Gather <mimgopc<MIMG.NOP, MIMG.NOP, 0x5c>, AMDGPUSample_c_l_o>;
+defm IMAGE_GATHER4_C_B_O        : MIMG_Gather_WQM <mimgopc<MIMG.NOP, MIMG.NOP, 0x5d>, AMDGPUSample_c_b_o>;
+defm IMAGE_GATHER4_C_B_CL_O     : MIMG_Gather_WQM <mimgopc<MIMG.NOP, MIMG.NOP, 0x5e>, AMDGPUSample_c_b_cl_o>;
+defm IMAGE_GATHER4_C_LZ_O       : MIMG_Gather <mimgopc<0x37, 0x37, 0x5f>, AMDGPUSample_c_lz_o>;
 
 let SubtargetPredicate = isGFX9Plus in
-defm IMAGE_GATHER4H             : MIMG_Gather <mimgopc<0x90, 0x61, 0x42>, AMDGPUSample, 1, "image_gather4h">;
-
-defm IMAGE_GET_LOD              : MIMG_Sampler <mimgopc<0x38, 0x60>, AMDGPUSample, 1, 0, 1, "image_get_lod">;
-
-defm IMAGE_SAMPLE_CD            : MIMG_Sampler <mimgopc<MIMG.NOP, 0x68>, AMDGPUSample_cd>;
-defm IMAGE_SAMPLE_CD_CL         : MIMG_Sampler <mimgopc<MIMG.NOP, 0x69>, AMDGPUSample_cd_cl>;
-defm IMAGE_SAMPLE_C_CD          : MIMG_Sampler <mimgopc<MIMG.NOP, 0x6a>, AMDGPUSample_c_cd>;
-defm IMAGE_SAMPLE_C_CD_CL       : MIMG_Sampler <mimgopc<MIMG.NOP, 0x6b>, AMDGPUSample_c_cd_cl>;
-defm IMAGE_SAMPLE_CD_O          : MIMG_Sampler <mimgopc<MIMG.NOP, 0x6c>, AMDGPUSample_cd_o>;
-defm IMAGE_SAMPLE_CD_CL_O       : MIMG_Sampler <mimgopc<MIMG.NOP, 0x6d>, AMDGPUSample_cd_cl_o>;
-defm IMAGE_SAMPLE_C_CD_O        : MIMG_Sampler <mimgopc<MIMG.NOP, 0x6e>, AMDGPUSample_c_cd_o>;
-defm IMAGE_SAMPLE_C_CD_CL_O     : MIMG_Sampler <mimgopc<MIMG.NOP, 0x6f>, AMDGPUSample_c_cd_cl_o>;
+defm IMAGE_GATHER4H             : MIMG_Gather <mimgopc<0x90, 0x90, 0x61, 0x42>, AMDGPUSample, 1, "image_gather4h">;
+
+defm IMAGE_GET_LOD              : MIMG_Sampler <mimgopc<0x38, 0x38, 0x60>, AMDGPUSample, 1, 0, 1, "image_get_lod">;
+
+defm IMAGE_SAMPLE_CD            : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x68>, AMDGPUSample_cd>;
+defm IMAGE_SAMPLE_CD_CL         : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x69>, AMDGPUSample_cd_cl>;
+defm IMAGE_SAMPLE_C_CD          : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x6a>, AMDGPUSample_c_cd>;
+defm IMAGE_SAMPLE_C_CD_CL       : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x6b>, AMDGPUSample_c_cd_cl>;
+defm IMAGE_SAMPLE_CD_O          : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x6c>, AMDGPUSample_cd_o>;
+defm IMAGE_SAMPLE_CD_CL_O       : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x6d>, AMDGPUSample_cd_cl_o>;
+defm IMAGE_SAMPLE_C_CD_O        : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x6e>, AMDGPUSample_c_cd_o>;
+defm IMAGE_SAMPLE_C_CD_CL_O     : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x6f>, AMDGPUSample_c_cd_cl_o>;
 } // End OtherPredicates = [HasExtendedImageInsts]
 
 let OtherPredicates = [HasExtendedImageInsts,HasG16] in {
-defm IMAGE_SAMPLE_D_G16         : MIMG_Sampler <mimgopc<0x39, 0xa2>, AMDGPUSample_d, 0, 1>;
-defm IMAGE_SAMPLE_D_CL_G16      : MIMG_Sampler <mimgopc<0x5f, 0xa3>, AMDGPUSample_d_cl, 0, 1>;
-defm IMAGE_SAMPLE_C_D_G16       : MIMG_Sampler <mimgopc<0x3a, 0xaa>, AMDGPUSample_c_d, 0, 1>;
-defm IMAGE_SAMPLE_C_D_CL_G16    : MIMG_Sampler <mimgopc<0x54, 0xab>, AMDGPUSample_c_d_cl, 0, 1>;
-defm IMAGE_SAMPLE_D_O_G16       : MIMG_Sampler <mimgopc<0x3b, 0xb2>, AMDGPUSample_d_o, 0, 1>;
-defm IMAGE_SAMPLE_D_CL_O_G16    : MIMG_Sampler <mimgopc<0x55, 0xb3>, AMDGPUSample_d_cl_o, 0, 1>;
-defm IMAGE_SAMPLE_C_D_O_G16     : MIMG_Sampler <mimgopc<0x3c, 0xba>, AMDGPUSample_c_d_o, 0, 1>;
-defm IMAGE_SAMPLE_C_D_CL_O_G16  : MIMG_Sampler <mimgopc<0x56, 0xbb>, AMDGPUSample_c_d_cl_o, 0, 1>;
-defm IMAGE_SAMPLE_CD_G16        : MIMG_Sampler <mimgopc<MIMG.NOP, 0xe8>, AMDGPUSample_cd, 0, 1>;
-defm IMAGE_SAMPLE_CD_CL_G16     : MIMG_Sampler <mimgopc<MIMG.NOP, 0xe9>, AMDGPUSample_cd_cl, 0, 1>;
-defm IMAGE_SAMPLE_C_CD_G16      : MIMG_Sampler <mimgopc<MIMG.NOP, 0xea>, AMDGPUSample_c_cd, 0, 1>;
-defm IMAGE_SAMPLE_C_CD_CL_G16   : MIMG_Sampler <mimgopc<MIMG.NOP, 0xeb>, AMDGPUSample_c_cd_cl, 0, 1>;
-defm IMAGE_SAMPLE_CD_O_G16      : MIMG_Sampler <mimgopc<MIMG.NOP, 0xec>, AMDGPUSample_cd_o, 0, 1>;
-defm IMAGE_SAMPLE_CD_CL_O_G16   : MIMG_Sampler <mimgopc<MIMG.NOP, 0xed>, AMDGPUSample_cd_cl_o, 0, 1>;
-defm IMAGE_SAMPLE_C_CD_O_G16    : MIMG_Sampler <mimgopc<MIMG.NOP, 0xee>, AMDGPUSample_c_cd_o, 0, 1>;
-defm IMAGE_SAMPLE_C_CD_CL_O_G16 : MIMG_Sampler <mimgopc<MIMG.NOP, 0xef>, AMDGPUSample_c_cd_cl_o, 0, 1>;
+defm IMAGE_SAMPLE_D_G16         : MIMG_Sampler <mimgopc<0x39, 0x39, 0xa2>, AMDGPUSample_d, 0, 1>;
+defm IMAGE_SAMPLE_D_CL_G16      : MIMG_Sampler <mimgopc<0x5f, 0x5f, 0xa3>, AMDGPUSample_d_cl, 0, 1>;
+defm IMAGE_SAMPLE_C_D_G16       : MIMG_Sampler <mimgopc<0x3a, 0x3a, 0xaa>, AMDGPUSample_c_d, 0, 1>;
+defm IMAGE_SAMPLE_C_D_CL_G16    : MIMG_Sampler <mimgopc<0x54, 0x54, 0xab>, AMDGPUSample_c_d_cl, 0, 1>;
+defm IMAGE_SAMPLE_D_O_G16       : MIMG_Sampler <mimgopc<0x3b, 0x3b, 0xb2>, AMDGPUSample_d_o, 0, 1>;
+defm IMAGE_SAMPLE_D_CL_O_G16    : MIMG_Sampler <mimgopc<0x55, 0x55, 0xb3>, AMDGPUSample_d_cl_o, 0, 1>;
+defm IMAGE_SAMPLE_C_D_O_G16     : MIMG_Sampler <mimgopc<0x3c, 0x3c, 0xba>, AMDGPUSample_c_d_o, 0, 1>;
+defm IMAGE_SAMPLE_C_D_CL_O_G16  : MIMG_Sampler <mimgopc<0x56, 0x56, 0xbb>, AMDGPUSample_c_d_cl_o, 0, 1>;
+defm IMAGE_SAMPLE_CD_G16        : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xe8>, AMDGPUSample_cd, 0, 1>;
+defm IMAGE_SAMPLE_CD_CL_G16     : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xe9>, AMDGPUSample_cd_cl, 0, 1>;
+defm IMAGE_SAMPLE_C_CD_G16      : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xea>, AMDGPUSample_c_cd, 0, 1>;
+defm IMAGE_SAMPLE_C_CD_CL_G16   : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xeb>, AMDGPUSample_c_cd_cl, 0, 1>;
+defm IMAGE_SAMPLE_CD_O_G16      : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xec>, AMDGPUSample_cd_o, 0, 1>;
+defm IMAGE_SAMPLE_CD_CL_O_G16   : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xed>, AMDGPUSample_cd_cl_o, 0, 1>;
+defm IMAGE_SAMPLE_C_CD_O_G16    : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xee>, AMDGPUSample_c_cd_o, 0, 1>;
+defm IMAGE_SAMPLE_C_CD_CL_O_G16 : MIMG_Sampler <mimgopc<MIMG.NOP, MIMG.NOP, 0xef>, AMDGPUSample_c_cd_cl_o, 0, 1>;
 } // End OtherPredicates = [HasExtendedImageInsts,HasG16]
 
 //def IMAGE_RSRC256 : MIMG_NoPattern_RSRC256 <"image_rsrc256", mimgopc<0x7e>>;
 //def IMAGE_SAMPLER : MIMG_NoPattern_ <"image_sampler", mimgopc<0x7f>>;
 
 let SubtargetPredicate = isGFX10Only, OtherPredicates = [HasGFX10_AEncoding] in
-defm IMAGE_MSAA_LOAD_X : MIMG_NoSampler <mimgopc<MIMG.NOP, 0x80>, "image_msaa_load", 1, 0, 0, 1>;
+defm IMAGE_MSAA_LOAD_X : MIMG_NoSampler <mimgopc<MIMG.NOP, MIMG.NOP, 0x80>, "image_msaa_load", 1, 0, 0, 1>;
 
 let OtherPredicates = [HasGFX10_AEncoding] in
-defm IMAGE_MSAA_LOAD : MIMG_MSAA_Load <mimgopc<0x18, MIMG.NOP>, "image_msaa_load">;
+defm IMAGE_MSAA_LOAD : MIMG_MSAA_Load <mimgopc<0x18, 0x18, MIMG.NOP>, "image_msaa_load">;
 
 let OtherPredicates = [HasGFX10_AEncoding] in {
-defm IMAGE_BVH_INTERSECT_RAY       : MIMG_IntersectRay<mimgopc<0x19, 0xe6>, "image_bvh_intersect_ray", 0, 0>;
-defm IMAGE_BVH_INTERSECT_RAY_a16   : MIMG_IntersectRay<mimgopc<0x19, 0xe6>, "image_bvh_intersect_ray", 0, 1>;
-defm IMAGE_BVH64_INTERSECT_RAY     : MIMG_IntersectRay<mimgopc<0x1a, 0xe7>, "image_bvh64_intersect_ray", 1, 0>;
-defm IMAGE_BVH64_INTERSECT_RAY_a16 : MIMG_IntersectRay<mimgopc<0x1a, 0xe7>, "image_bvh64_intersect_ray", 1, 1>;
+defm IMAGE_BVH_INTERSECT_RAY       : MIMG_IntersectRay<mimgopc<0x19, 0x19, 0xe6>, "image_bvh_intersect_ray", 0, 0>;
+defm IMAGE_BVH_INTERSECT_RAY_a16   : MIMG_IntersectRay<mimgopc<0x19, 0x19, 0xe6>, "image_bvh_intersect_ray", 0, 1>;
+defm IMAGE_BVH64_INTERSECT_RAY     : MIMG_IntersectRay<mimgopc<0x1a, 0x1a, 0xe7>, "image_bvh64_intersect_ray", 1, 0>;
+defm IMAGE_BVH64_INTERSECT_RAY_a16 : MIMG_IntersectRay<mimgopc<0x1a, 0x1a, 0xe7>, "image_bvh64_intersect_ray", 1, 1>;
 } // End OtherPredicates = [HasGFX10_AEncoding]
 
 } // End let OtherPredicates = [HasImageInsts]
diff --git a/llvm/lib/Target/AMDGPU/SIDefines.h b/llvm/lib/Target/AMDGPU/SIDefines.h
index a3c409ee5bad12c..659ff75e13d01fb 100644
--- a/llvm/lib/Target/AMDGPU/SIDefines.h
+++ b/llvm/lib/Target/AMDGPU/SIDefines.h
@@ -81,19 +81,21 @@ enum : uint64_t {
   MTBUF = 1 << 18,
   SMRD = 1 << 19,
   MIMG = 1 << 20,
-  EXP = 1 << 21,
-  FLAT = 1 << 22,
-  DS = 1 << 23,
+  VIMAGE = 1 << 21,
+  VSAMPLE = 1 << 22,
+  EXP = 1 << 23,
+  FLAT = 1 << 24,
+  DS = 1 << 25,
 
   // Pseudo instruction formats.
-  VGPRSpill = 1 << 24,
-  SGPRSpill = 1 << 25,
+  VGPRSpill = 1 << 26,
+  SGPRSpill = 1 << 27,
 
   // LDSDIR instruction format.
-  LDSDIR = 1 << 26,
+  LDSDIR = 1 << 28,
 
   // VINTERP instruction format.
-  VINTERP = 1 << 27,
+  VINTERP = 1 << 29,
 
   // High bits - other information.
   VM_CNT = UINT64_C(1) << 32,
@@ -354,7 +356,47 @@ enum CPol {
   SC0 = GLC,
   SC1 = SCC,
   NT = SLC,
-  ALL = GLC | SLC | DLC | SCC
+  ALL_pregfx12 = GLC | SLC | DLC | SCC,
+  SWZ_pregfx12 = 8,
+
+  // Below are GFX12+ cache policy bits
+
+  // Temporal hint
+  TH = 0x7,      // All TH bits
+  TH_RT = 0,     // regular
+  TH_NT = 1,     // non-temporal
+  TH_HT = 2,     // high-temporal
+  TH_LU = 3,     // last use
+  TH_RT_WB = 3,  // regular (CU, SE), high-temporal with write-back (MALL)
+  TH_NT_RT = 4,  // non-temporal (CU, SE), regular (MALL)
+  TH_RT_NT = 5,  // regular (CU, SE), non-temporal (MALL)
+  TH_NT_HT = 6,  // non-temporal (CU, SE), high-temporal (MALL)
+  TH_NT_WB = 7,  // non-temporal (CU, SE), high-temporal with write-back (MALL)
+  TH_BYPASS = 3, // only to be used with scope = 3
+
+  TH_RESERVED = 7, // unused value for load insts
+
+  // Bits of TH for atomics
+  TH_ATOMIC_RETURN = GLC, // Returning vs non-returning
+  TH_ATOMIC_NT = SLC,     // Non-temporal vs regular
+  TH_ATOMIC_CASCADE = 4,  // Cascading vs regular
+
+  // Scope
+  SCOPE = 0x3 << 3, // All Scope bits
+  SCOPE_CU = 0 << 3,
+  SCOPE_SE = 1 << 3,
+  SCOPE_DEV = 2 << 3,
+  SCOPE_SYS = 3 << 3,
+
+  SWZ = 1 << 6, // Swizzle bit
+
+  ALL = TH | SCOPE,
+
+  // Helper bits
+  TH_TYPE_LOAD = 1 << 7,    // TH_LOAD policy
+  TH_TYPE_STORE = 1 << 8,   // TH_STORE policy
+  TH_TYPE_ATOMIC = 1 << 9,  // TH_ATOMIC policy
+  TH_REAL_BYPASS = 1 << 10, // is TH=3 bypass policy or not
 };
 
 } // namespace CPol
diff --git a/llvm/lib/Target/AMDGPU/SIInstrFormats.td b/llvm/lib/Target/AMDGPU/SIInstrFormats.td
index 230fbe7eca674f8..585a3eb7861878c 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrFormats.td
+++ b/llvm/lib/Target/AMDGPU/SIInstrFormats.td
@@ -40,6 +40,8 @@ class InstSI <dag outs, dag ins, string asm = "",
   field bit MTBUF = 0;
   field bit SMRD = 0;
   field bit MIMG = 0;
+  field bit VIMAGE = 0;
+  field bit VSAMPLE = 0;
   field bit EXP = 0;
   field bit FLAT = 0;
   field bit DS = 0;
@@ -184,15 +186,17 @@ class InstSI <dag outs, dag ins, string asm = "",
   let TSFlags{18} = MTBUF;
   let TSFlags{19} = SMRD;
   let TSFlags{20} = MIMG;
-  let TSFlags{21} = EXP;
-  let TSFlags{22} = FLAT;
-  let TSFlags{23} = DS;
+  let TSFlags{21} = VIMAGE;
+  let TSFlags{22} = VSAMPLE;
+  let TSFlags{23} = EXP;
+  let TSFlags{24} = FLAT;
+  let TSFlags{25} = DS;
 
-  let TSFlags{24} = VGPRSpill;
-  let TSFlags{25} = SGPRSpill;
+  let TSFlags{26} = VGPRSpill;
+  let TSFlags{27} = SGPRSpill;
 
-  let TSFlags{26} = LDSDIR;
-  let TSFlags{27} = VINTERP;
+  let TSFlags{28} = LDSDIR;
+  let TSFlags{29} = VINTERP;
 
   let TSFlags{32} = VM_CNT;
   let TSFlags{33} = EXP_CNT;
@@ -429,6 +433,57 @@ class MIMGe_gfx11 <bits<8> op> : Enc64 {
   let Inst{62-58} = ssamp{6-2};
 }
 
+class VIMAGE_VSAMPLE_Common <bits<8> op> : Enc96 {
+  bits<3> dim;
+  bits<1> tfe;
+  bits<1> r128;
+  bit d16;
+  bits<1> a16;
+  bits<4> dmask;
+  bits<8> vdata;
+  bits<9> rsrc;
+  bits<6> cpol;
+  bits<8> vaddr0;
+  bits<8> vaddr1;
+  bits<8> vaddr2;
+  bits<8> vaddr3;
+
+  let Inst{2-0} = dim;
+  let Inst{4} = r128;
+  let Inst{5} = d16;
+  let Inst{6} = a16;
+  let Inst{21-14} = op;
+  let Inst{25-22} = dmask;
+  let Inst{39-32} = vdata;
+  let Inst{49-41} = rsrc;
+  let Inst{51-50} = cpol{4-3}; // scope
+  let Inst{54-52} = cpol{2-0}; // th
+  let Inst{71-64} = vaddr0;
+  let Inst{79-72} = vaddr1;
+  let Inst{87-80} = vaddr2;
+  let Inst{95-88} = vaddr3;
+}
+
+class VSAMPLEe <bits<8> op> : VIMAGE_VSAMPLE_Common<op> {
+  bits<1> unorm;
+  bits<1> lwe;
+  bits<9> samp;
+
+  let Inst{3} = tfe;
+  let Inst{13} = unorm;
+  let Inst{31-26} = 0x39;
+  let Inst{40} = lwe;
+  let Inst{63-55} = samp;
+}
+
+class VIMAGEe <bits<8> op> : VIMAGE_VSAMPLE_Common<op> {
+  bits<8> vaddr4;
+
+  let Inst{31-26} = 0x34;
+  let Inst{55} = tfe;
+  let Inst{63-56} = vaddr4;
+}
+
 class EXPe : Enc64 {
   bits<4> en;
   bits<6> tgt;
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.h b/llvm/lib/Target/AMDGPU/SIInstrInfo.h
index eba817756e9c58e..e388b5550cb1043 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.h
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.h
@@ -409,12 +409,20 @@ class SIInstrInfo final : public AMDGPUGenInstrInfo {
     return get(Opcode).TSFlags & SIInstrFlags::VALU;
   }
 
+  static bool isImage(const MachineInstr &MI) {
+    return isMIMG(MI) || isVSAMPLE(MI) || isVIMAGE(MI);
+  }
+
+  bool isImage(uint16_t Opcode) const {
+    return isMIMG(Opcode) || isVSAMPLE(Opcode) || isVIMAGE(Opcode);
+  }
+
   static bool isVMEM(const MachineInstr &MI) {
-    return isMUBUF(MI) || isMTBUF(MI) || isMIMG(MI);
+    return isMUBUF(MI) || isMTBUF(MI) || isImage(MI);
   }
 
   bool isVMEM(uint16_t Opcode) const {
-    return isMUBUF(Opcode) || isMTBUF(Opcode) || isMIMG(Opcode);
+    return isMUBUF(Opcode) || isMTBUF(Opcode) || isImage(Opcode);
   }
 
   static bool isSOP1(const MachineInstr &MI) {
@@ -557,6 +565,22 @@ class SIInstrInfo final : public AMDGPUGenInstrInfo {
     return get(Opcode).TSFlags & SIInstrFlags::MIMG;
   }
 
+  static bool isVIMAGE(const MachineInstr &MI) {
+    return MI.getDesc().TSFlags & SIInstrFlags::VIMAGE;
+  }
+
+  bool isVIMAGE(uint16_t Opcode) const {
+    return get(Opcode).TSFlags & SIInstrFlags::VIMAGE;
+  }
+
+  static bool isVSAMPLE(const MachineInstr &MI) {
+    return MI.getDesc().TSFlags & SIInstrFlags::VSAMPLE;
+  }
+
+  bool isVSAMPLE(uint16_t Opcode) const {
+    return get(Opcode).TSFlags & SIInstrFlags::VSAMPLE;
+  }
+
   static bool isGather4(const MachineInstr &MI) {
     return MI.getDesc().TSFlags & SIInstrFlags::Gather4;
   }
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
index 627132cb87684dd..3aacde50523f4bd 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
@@ -1957,12 +1957,14 @@ bool hasGDS(const MCSubtargetInfo &STI) {
   return STI.hasFeature(AMDGPU::FeatureGDS);
 }
 
-unsigned getNSAMaxSize(const MCSubtargetInfo &STI) {
+unsigned getNSAMaxSize(const MCSubtargetInfo &STI, bool HasSampler) {
   auto Version = getIsaVersion(STI.getCPU());
   if (Version.Major == 10)
     return Version.Minor >= 3 ? 13 : 5;
   if (Version.Major == 11)
     return 5;
+  if (Version.Major >= 12)
+    return HasSampler ? 4 : 5;
   return 0;
 }
 
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
index 7b995589e860509..436a0ff5ce26806 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
@@ -1135,7 +1135,7 @@ bool hasA16(const MCSubtargetInfo &STI);
 bool hasG16(const MCSubtargetInfo &STI);
 bool hasPackedD16(const MCSubtargetInfo &STI);
 bool hasGDS(const MCSubtargetInfo &STI);
-unsigned getNSAMaxSize(const MCSubtargetInfo &STI);
+unsigned getNSAMaxSize(const MCSubtargetInfo &STI, bool HasSampler = false);
 unsigned getMaxNumUserSGPRs(const MCSubtargetInfo &STI);
 
 bool isSI(const MCSubtargetInfo &STI);
diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vimage.s b/llvm/test/MC/AMDGPU/gfx12_asm_vimage.s
new file mode 100644
index 000000000000000..72bc164c5e9bdc0
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx12_asm_vimage.s
@@ -0,0 +1,944 @@
+; RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s
+
+image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v[1:4], [v2, v3], s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0xc0,0xd3,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_load v[4:7], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xc0,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_load v[252:255], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0xc0,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_load v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_load v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_load v[0:3], [v4, v5, v6, v7], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_load v[0:1], v255, s[0:7] dmask:0x9 dim:1D
+// GFX12: encoding: [0x00,0x00,0x40,0xd2,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00]
+
+image_load v255, [v254, v255], s[0:7] dmask:0x1 dim:2D
+// GFX12: encoding: [0x01,0x00,0x40,0xd0,0xff,0x00,0x00,0x00,0xfe,0xff,0x00,0x00]
+
+image_load v0, [v2, v22, v222], s[0:7] dmask:0x1 dim:3D
+// GFX12: encoding: [0x02,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x16,0xde,0x00]
+
+image_load v0, [v2, v3, v4], s[0:7] dmask:0x1 dim:CUBE
+// GFX12: encoding: [0x03,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00]
+
+image_load v0, [v2, v3], s[0:7] dmask:0x1 dim:1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_load v0, [v2, v3, v4], s[0:7] dmask:0x1 dim:2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00]
+
+image_load v0, [v2, v3, v4], s[0:7] dmask:0x1 dim:2D_MSAA
+// GFX12: encoding: [0x06,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00]
+
+image_load v0, [v2, v3, v4, v5], s[0:7] dmask:0x1 dim:2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x05]
+
+image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16
+// GFX12: encoding: [0x40,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v[1:4], v2, s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0xc0,0xd3,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00]
+
+image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D a16
+// GFX12: encoding: [0x42,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_load v[0:3], v4, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16
+// GFX12: encoding: [0x44,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00]
+
+image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16
+// GFX12: encoding: [0x46,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16
+// GFX12: encoding: [0x47,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x6 dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x00,0x80,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v[0:1], v0, s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x00,0x80,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v[0:1], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v1, [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x40,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:2], [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x00,0x40,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:2], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0xc0,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:3], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x00,0xc0,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:3], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0xc0,0xd1,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:4], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x00,0xc0,0xd1,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:4], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0xc0,0xd3,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load v[1:5], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x00,0xc0,0xd3,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit RSRC.
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D r128
+// GFX12: encoding: [0x10,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_CU
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_DEV
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_HT
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_LU
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_RT
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT_NT
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_HT
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00]
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_BYPASS scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00]
+
+image_load v[0:2], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY th:TH_LOAD_HT scope:SCOPE_SE a16 tfe d16
+// GFX12: encoding: [0x65,0x00,0xc0,0xd3,0x00,0x10,0xa4,0x00,0x04,0x05,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit RSRC.
+image_load v[0:2], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY th:TH_LOAD_HT scope:SCOPE_SE r128 a16 tfe d16
+// GFX12: encoding: [0x75,0x00,0xc0,0xd3,0x00,0x10,0xa4,0x00,0x04,0x05,0x00,0x00]
+
+image_load_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0xc0,0xd3,0xfc,0x00,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load_mip v[253:255], [v255, v254], s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x80,0xd3,0xfd,0x00,0x00,0x00,0xff,0xfe,0x00,0x00]
+
+image_load_mip v[254:255], [v254, v255, v253], s[0:7] dmask:0xc dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x00,0xd3,0xfe,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+
+image_load_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+
+image_load_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+
+image_load_mip v255, [v254, v255, v253], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+
+image_load_mip v255, [v254, v255, v253, v255], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xff]
+
+image_load_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0x40,0xc0,0xd3,0xfc,0x00,0x10,0x00,0x00,0x01,0x00,0x00]
+
+image_load_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x40,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00]
+
+image_load_pck v[5:6], [v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0xc0,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_load_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0x00,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x80,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck v[5:7], [v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc0,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_load_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0x40,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0x7 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x80,0xc0,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck v[5:8], [v1, v2, v3, v4], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x80,0xc0,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04]
+
+image_load_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0x80,0x40,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00]
+
+image_load_pck_sgn v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x40,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00]
+
+image_load_pck_sgn v[5:6], [v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0xc0,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_load_pck_sgn v[5:6], [v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0x00,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck_sgn v[5:6], [v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x80,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck_sgn v[5:7], [v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc0,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_load_pck_sgn v[5:7], [v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0x40,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck_sgn v[5:7], [v1, v2, v3], s[8:15] dmask:0x7 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0xc0,0xc0,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_load_pck_sgn v[5:8], [v1, v2, v3, v4], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0xc0,0xc0,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04]
+
+image_load_pck_sgn v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0xc0,0x40,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00]
+
+image_load_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x41,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load_mip_pck v[5:6], [v0, v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0xc1,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+
+image_load_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0x01,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_load_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x81,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_load_mip_pck v[5:7], [v0, v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc1,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+
+image_load_mip_pck v[5:7], [v0, v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x41,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_load_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0x00,0x41,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00]
+
+image_load_mip_pck_sgn v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x41,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_load_mip_pck_sgn v[5:6], [v0, v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0xc1,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+
+image_load_mip_pck_sgn v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0x01,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_load_mip_pck_sgn v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x81,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_load_mip_pck_sgn v[5:7], [v0, v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc1,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+
+image_load_mip_pck_sgn v[5:7], [v0, v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x41,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_load_mip_pck_sgn v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0x40,0x41,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v[1:4], [v2, v3], s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0xc1,0xd3,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_store v[4:7], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xc1,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_store v[252:255], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0xc1,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_store v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_store v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_store v[0:3], [v4, v5, v6, v7], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_store v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16
+// GFX12: encoding: [0x40,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v[1:4], v2, s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x80,0xc1,0xd3,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00]
+
+image_store v[4:7], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D a16
+// GFX12: encoding: [0x42,0x80,0xc1,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_store v[252:255], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x80,0xc1,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_store v[0:3], v4, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16
+// GFX12: encoding: [0x44,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00]
+
+image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16
+// GFX12: encoding: [0x46,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16
+// GFX12: encoding: [0x47,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x6 dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x80,0x81,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v[0:1], v0, s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x80,0x81,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v[0:1], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v1, [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x41,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:2], [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x80,0x41,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:2], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0xc1,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:3], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x80,0xc1,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:3], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0xc1,0xd1,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:4], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x80,0xc1,0xd1,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:4], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0xc1,0xd3,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_store v[1:5], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D tfe
+// GFX12: encoding: [0x01,0x80,0xc1,0xd3,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit RSRC.
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D r128
+// GFX12: encoding: [0x10,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_CU
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_DEV
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_RT
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_HT
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_RT_WB
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT_RT
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_RT_NT
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT_HT
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT_WB
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00]
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_BYPASS scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00]
+
+image_store_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0xc1,0xd3,0xfc,0x00,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_store_mip v[253:255], [v255, v254], s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x81,0xd3,0xfd,0x00,0x00,0x00,0xff,0xfe,0x00,0x00]
+
+image_store_mip v[254:255], [v254, v255, v253], s[0:7] dmask:0xc dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x01,0xd3,0xfe,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+
+image_store_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+
+image_store_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+
+image_store_mip v255, [v254, v255, v253], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+
+image_store_mip v255, [v254, v255, v253, v255], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xff]
+
+image_store_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_STORE_NT
+// GFX12: encoding: [0x00,0xc0,0xc1,0xd3,0xfc,0x00,0x10,0x00,0x00,0x01,0x00,0x00]
+
+image_store_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x42,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00]
+
+image_store_pck v[5:6], [v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0xc2,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_store_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0x02,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_store_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x82,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_store_pck v[5:7], [v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc2,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_store_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x42,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_store_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0x7 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x00,0xc2,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_store_pck v[5:8], [v1, v2, v3, v4], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x00,0xc2,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04]
+
+image_store_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT
+// GFX12: encoding: [0x00,0x00,0x42,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00]
+
+image_store_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x42,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00]
+
+image_store_mip_pck v[5:6], [v0, v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0xc2,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+
+image_store_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0x02,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_store_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x82,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_store_mip_pck v[5:7], [v0, v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc2,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+
+image_store_mip_pck v[5:7], [v0, v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x42,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+
+image_store_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT
+// GFX12: encoding: [0x00,0x40,0x42,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x42,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_swap v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0x42,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_swap v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x42,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_swap v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc2,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_swap v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc2,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_swap v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x80,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_swap v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x80,0xc2,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_CU
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_DEV
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_RETURN
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_RT
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_RT_RETURN
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT_RETURN
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_CASCADE_RT scope:SCOPE_DEV
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x48,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_CASCADE_NT scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit RSRC.
+image_atomic_swap v0, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D r128
+// GFX12: encoding: [0x11,0x80,0x42,0xd0,0x00,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D a16
+// GFX12: encoding: [0x40,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_swap v1, v2, s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x80,0x42,0xd0,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00]
+
+image_atomic_swap v4, [v4, v5], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D a16
+// GFX12: encoding: [0x42,0x80,0x42,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_swap v255, [v4, v5], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x80,0x42,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_swap v[0:1], v4, s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY a16
+// GFX12: encoding: [0x44,0x80,0xc2,0xd0,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00]
+
+image_atomic_swap v[1:2], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x80,0xc2,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_swap v[3:4], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA a16
+// GFX12: encoding: [0x46,0x80,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_swap v[254:255], [v4, v5], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16
+// GFX12: encoding: [0x47,0x80,0xc2,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_cmpswap v[0:1], v0, s[0:7] dmask:0x3 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0xc2,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_cmpswap v[1:2], [v2, v3], s[4:11] dmask:0x3 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0xc2,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_cmpswap v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_cmpswap v[254:255], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0xc2,0xd0,0xfe,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_cmpswap v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc2,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_cmpswap v[1:4], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc2,0xd3,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_cmpswap v[4:7], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0xc0,0xc2,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_cmpswap v[252:255], [v4, v5, v6, v7], s[96:103] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0xc0,0xc2,0xd3,0xfc,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_cmpswap v[0:1], v0, s[0:7] dmask:0x3 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0xc0,0xc2,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_add_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_add_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_add_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_add_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_add_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_add_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_add_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x00,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_add_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x00,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_add_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x00,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_sub_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_sub_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_sub_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_sub_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_sub_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_sub_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_sub_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x40,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_sub_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x40,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_sub_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x40,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_min_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_min_int v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_min_int v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_int v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_int v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_min_int v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_int v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x80,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_int v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x80,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_min_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x80,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_min_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_min_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_min_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_min_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0xc0,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_min_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0xc0,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_min_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0xc0,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_max_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_max_int v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_max_int v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_int v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_int v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_max_int v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_int v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x00,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_int v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x00,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_max_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x00,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_max_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_max_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_max_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_max_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x40,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_max_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x40,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_max_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x40,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_and v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_and v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_and v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_and v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_and v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_and v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_and v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x80,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_and v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x80,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_and v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x80,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_or v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_or v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_or v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_or v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_or v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_or v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_or v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0xc0,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_or v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0xc0,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_or v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0xc0,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_xor v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_xor v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_xor v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_xor v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_xor v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_xor v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_xor v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x00,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_xor v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x00,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_xor v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x00,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_inc_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_inc_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_inc_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_inc_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_inc_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_inc_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_inc_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x40,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_inc_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x40,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_inc_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x40,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_dec_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_dec_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+
+image_atomic_dec_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_dec_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_dec_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+
+image_atomic_dec_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_dec_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x80,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+
+image_atomic_dec_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0x80,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+
+image_atomic_dec_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12: encoding: [0x00,0x80,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+
+image_bvh_intersect_ray v[4:7], [v9, v10, v[11:13], v[14:16], v[17:19]], s[4:7]
+// GFX12: encoding: [0x10,0x40,0xc6,0xd3,0x04,0x08,0x00,0x11,0x09,0x0a,0x0b,0x0e]
+
+image_bvh_intersect_ray v[4:7], [v9, v10, v[11:13], v[14:16]], s[4:7] a16
+// GFX12: encoding: [0x50,0x40,0xc6,0xd3,0x04,0x08,0x00,0x00,0x09,0x0a,0x0b,0x0e]
+
+image_bvh64_intersect_ray v[4:7], [v[9:10], v11, v[12:14], v[15:17], v[18:20]], s[4:7]
+// GFX12: encoding: [0x10,0x80,0xc6,0xd3,0x04,0x08,0x00,0x12,0x09,0x0b,0x0c,0x0f]
+
+image_bvh64_intersect_ray v[4:7], [v[9:10], v11, v[12:14], v[15:17]], s[4:7] a16
+// GFX12: encoding: [0x50,0x80,0xc6,0xd3,0x04,0x08,0x00,0x00,0x09,0x0b,0x0c,0x0f]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x2 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x85,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x8 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0x05,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v[4:5], v32, s[96:103] dmask:0x5 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x45,0xd1,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v[4:5], v32, s[96:103] dmask:0xa dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0x85,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v[4:6], v32, s[96:103] dmask:0xb dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc5,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v[4:6], v32, s[96:103] dmask:0xe dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0xc0,0x85,0xd3,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v[4:7], v32, s[96:103] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY
+// GFX12: encoding: [0x07,0xc0,0xc5,0xd3,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x10,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_HT
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x20,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_LU
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x30,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_RT
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x40,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT_NT
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x50,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_HT
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x60,0x00,0x20,0x00,0x00,0x00]
+
+image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_BYPASS scope:SCOPE_SYS
+// GFX12: encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x3c,0x00,0x20,0x00,0x00,0x00]
diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vimage_alias.s b/llvm/test/MC/AMDGPU/gfx12_asm_vimage_alias.s
new file mode 100644
index 000000000000000..70020949faa812f
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx12_asm_vimage_alias.s
@@ -0,0 +1,25 @@
+; RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s
+
+image_atomic_add v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_sub v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_smin v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_umin v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_smax v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_umax v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_inc v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+
+image_atomic_dec v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vsample.s b/llvm/test/MC/AMDGPU/gfx12_asm_vsample.s
new file mode 100644
index 000000000000000..2607612611776cc
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx12_asm_vsample.s
@@ -0,0 +1,1216 @@
+; RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s
+
+image_sample v64, v32, s[4:11], s[100:103] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x46,0xe4,0x40,0x08,0x00,0x32,0x20,0x00,0x00,0x00]
+
+image_sample v64, [v32, v33], s[4:11], s[100:103] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x06,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+
+image_sample v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xc6,0xe4,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+
+image_sample v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x06,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+
+image_sample v[64:66], [v32, v33], s[4:11], s[100:103] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc6,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+
+image_sample v[64:67], [v32, v33, v34], s[4:11], s[100:103] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc6,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+
+image_sample v0, v1, s[0:7], s[100:103] dmask:0x2 dim:SQ_RSRC_IMG_1D a16
+// GFX12: encoding: [0x40,0xc0,0x86,0xe4,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x00]
+
+image_sample v2, v3, s[4:11], s[96:99] dmask:0x4 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0xc0,0x06,0xe5,0x02,0x08,0x00,0x30,0x03,0x00,0x00,0x00]
+
+image_sample v[4:5], [v6, v7], s[8:15], s[92:95] dmask:0x6 dim:SQ_RSRC_IMG_3D a16
+// GFX12: encoding: [0x42,0xc0,0x86,0xe5,0x04,0x10,0x00,0x2e,0x06,0x07,0x00,0x00]
+
+image_sample v[8:9], [v10, v11], s[12:19], s[88:91] dmask:0x9 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0xc0,0x46,0xe6,0x08,0x18,0x00,0x2c,0x0a,0x0b,0x00,0x00]
+
+image_sample v[12:14], v15, s[16:23], s[84:87] dmask:0x7 dim:SQ_RSRC_IMG_1D_ARRAY a16
+// GFX12: encoding: [0x44,0xc0,0xc6,0xe5,0x0c,0x20,0x00,0x2a,0x0f,0x00,0x00,0x00]
+
+image_sample v[16:19], [v20, v21], s[20:27], s[80:83] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0xc0,0xc6,0xe7,0x10,0x28,0x00,0x28,0x14,0x15,0x00,0x00]
+
+image_sample v[22:24], v25, s[24:31], s[76:79] dmask:0xd dim:SQ_RSRC_IMG_1D unorm
+// GFX12: encoding: [0x00,0xe0,0x46,0xe7,0x16,0x30,0x00,0x26,0x19,0x00,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit SRSRC.
+image_sample v[22:24], v25, s[24:31], s[76:79] dmask:0xd dim:SQ_RSRC_IMG_1D r128
+// GFX12: encoding: [0x10,0xc0,0x46,0xe7,0x16,0x30,0x00,0x26,0x19,0x00,0x00,0x00]
+
+image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x1 dim:SQ_RSRC_IMG_2D scope:SCOPE_CU
+// GFX12: encoding: [0x01,0xc0,0x46,0xe4,0x1a,0x38,0x00,0x24,0x1b,0x1c,0x00,0x00]
+
+image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_SE
+// GFX12: encoding: [0x01,0xc0,0x86,0xe4,0x1a,0x38,0x04,0x24,0x1b,0x1c,0x00,0x00]
+
+image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x4 dim:SQ_RSRC_IMG_2D scope:SCOPE_DEV
+// GFX12: encoding: [0x01,0xc0,0x06,0xe5,0x1a,0x38,0x08,0x24,0x1b,0x1c,0x00,0x00]
+
+image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x8 dim:SQ_RSRC_IMG_2D scope:SCOPE_SYS
+// GFX12: encoding: [0x01,0xc0,0x06,0xe6,0x1a,0x38,0x0c,0x24,0x1b,0x1c,0x00,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x3 dim:SQ_RSRC_IMG_3D th:TH_LOAD_RT
+// GFX12: encoding: [0x02,0xc0,0xc6,0xe4,0x1d,0x40,0x00,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x5 dim:SQ_RSRC_IMG_3D th:TH_LOAD_NT
+// GFX12: encoding: [0x02,0xc0,0x46,0xe5,0x1d,0x40,0x10,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x9 dim:SQ_RSRC_IMG_3D th:TH_LOAD_HT
+// GFX12: encoding: [0x02,0xc0,0x46,0xe6,0x1d,0x40,0x20,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x6 dim:SQ_RSRC_IMG_3D th:TH_LOAD_LU
+// GFX12: encoding: [0x02,0xc0,0x86,0xe5,0x1d,0x40,0x30,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0xa dim:SQ_RSRC_IMG_3D th:TH_LOAD_NT_RT
+// GFX12: encoding: [0x02,0xc0,0x86,0xe6,0x1d,0x40,0x40,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0xc dim:SQ_RSRC_IMG_3D th:TH_LOAD_RT_NT
+// GFX12: encoding: [0x02,0xc0,0x06,0xe7,0x1d,0x40,0x50,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x3 dim:SQ_RSRC_IMG_3D th:TH_LOAD_NT_HT
+// GFX12: encoding: [0x02,0xc0,0xc6,0xe4,0x1d,0x40,0x60,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x5 dim:SQ_RSRC_IMG_3D th:TH_LOAD_BYPASS scope:SCOPE_SYS
+// GFX12: encoding: [0x02,0xc0,0x46,0xe5,0x1d,0x40,0x3c,0x22,0x1f,0x20,0x21,0x00]
+
+image_sample v[34:35], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+
+image_sample v[34:36], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D tfe
+// GFX12: encoding: [0x08,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+
+image_sample v34, v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D d16
+// GFX12: encoding: [0x20,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+
+image_sample v[34:35], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D tfe d16
+// GFX12: encoding: [0x28,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+
+image_sample v[34:35], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D lwe
+// GFX12: encoding: [0x00,0xc0,0xc6,0xe4,0x22,0x49,0x00,0x20,0x25,0x00,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit SRSRC.
+image_sample v[38:39], [v40, v41], s[40:47], s[60:63] dmask:0xc dim:SQ_RSRC_IMG_CUBE unorm th:TH_LOAD_HT scope:SCOPE_DEV r128 a16 tfe lwe d16
+// GFX12: encoding: [0x7b,0xe0,0x06,0xe7,0x26,0x51,0x28,0x1e,0x28,0x29,0x00,0x00]
+
+image_sample_d v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_d v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_l v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_l v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_b v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_b v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_lz v64, v32, s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+
+image_sample_lz v64, [v32, v33], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_lz v[64:65], [v32, v33, v34], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_lz v[64:65], [v32, v33, v34], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_lz v[64:66], [v32, v33], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_c v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_l v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_b v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_c_lz v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_lz v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_lz v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_o v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_o v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_l_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_l_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_b_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_lz_o v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_lz_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_lz_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_lz_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_lz_o v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o v64, [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o v[64:65], [v32, v33, v34, v[35:42]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o v[64:67], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_l_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_lz_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_lz_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4 v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4 v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x8b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4 v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0x0b,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4 v[64:67], v32, s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0xc0,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+
+image_gather4 v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0xc0,0x8b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4 v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0xc0,0x0b,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4 v[0:3], [v4, v5], s[0:7], s[100:103] dmask:0x8 dim:SQ_RSRC_IMG_2D unorm
+// GFX12: encoding: [0x01,0xe0,0x0b,0xe6,0x00,0x00,0x00,0x32,0x04,0x05,0x00,0x00]
+
+// FIXME: This test is incorrect because r128 assumes a 128-bit SRSRC.
+image_gather4 v[6:9], [v10, v11], s[8:15], s[96:99] dmask:0x1 dim:SQ_RSRC_IMG_2D r128
+// GFX12: encoding: [0x11,0xc0,0x4b,0xe4,0x06,0x10,0x00,0x30,0x0a,0x0b,0x00,0x00]
+
+image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_CU
+// GFX12: encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x00,0x2e,0x10,0x11,0x00,0x00]
+
+image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_SE
+// GFX12: encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x04,0x2e,0x10,0x11,0x00,0x00]
+
+image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_DEV
+// GFX12: encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x08,0x2e,0x10,0x11,0x00,0x00]
+
+image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_SYS
+// GFX12: encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x0c,0x2e,0x10,0x11,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_RT
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x00,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_NT
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x10,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_HT
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x20,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_LU
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x30,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_NT_RT
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x40,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_RT_NT
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x50,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_NT_HT
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x60,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_BYPASS scope:SCOPE_SYS
+// GFX12: encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x3c,0x2c,0x16,0x17,0x00,0x00]
+
+image_gather4 v[28:31], [v33, v34], s[40:47], s[80:83] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x4b,0xe4,0x1c,0x50,0x00,0x28,0x21,0x22,0x00,0x00]
+
+image_gather4 v[28:29], [v33, v34], s[40:47], s[80:83] dmask:0x1 dim:SQ_RSRC_IMG_2D d16
+// GFX12: encoding: [0x21,0xc0,0x4b,0xe4,0x1c,0x50,0x00,0x28,0x21,0x22,0x00,0x00]
+
+image_gather4 v[35:38], [v39, v40], s[48:55], s[76:79] dmask:0x2 dim:SQ_RSRC_IMG_2D lwe
+// GFX12: encoding: [0x01,0xc0,0x8b,0xe4,0x23,0x61,0x00,0x26,0x27,0x28,0x00,0x00]
+
+image_gather4_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_l v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_l v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_l v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_b v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x40,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x40,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x40,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_lz v[64:67], v32, s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x80,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+
+image_gather4_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x80,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x80,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_c v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0xc0,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_c v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0xc0,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0xc0,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_lz v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_lz v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_c_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_o v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x40,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x40,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x40,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_lz_o v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x80,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x80,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x80,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_lz_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_lz_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0xc0,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0xc0,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0xc0,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_get_lod v64, v32, s[4:11], s[100:103] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x4e,0xe4,0x40,0x08,0x00,0x32,0x20,0x00,0x00,0x00]
+
+image_get_lod v64, [v32, v33], s[4:11], s[100:103] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x0e,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+
+image_get_lod v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xce,0xe4,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+
+image_get_lod v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x0e,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+
+image_get_lod v[64:66], [v32, v33], s[4:11], s[100:103] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xce,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+
+image_get_lod v[64:67], [v32, v33, v34], s[4:11], s[100:103] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xce,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+
+image_sample_d_g16 v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_d_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_g16 v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_g16 v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_g16 v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_o_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x4f,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x0f,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xcf,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x0f,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xcf,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xcf,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D a16
+// GFX12: encoding: [0x40,0x00,0x4f,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0x0f,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D a16
+// GFX12: encoding: [0x42,0x00,0xcf,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0x0f,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY a16
+// GFX12: encoding: [0x44,0x00,0xcf,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_o_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0xcf,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_sample_cl v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_cl v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_b_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_c_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl v64, [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl v[64:65], [v32, v33, v34, v[35:42]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl v[64:67], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_sample_cl_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_cl_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o v64, [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o v[64:65], [v32, v33, v34, v[35:42]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o v[64:67], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_b_cl_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_cl_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o v64, [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o v[64:65], [v32, v33, v34, v[35:43]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o v[64:66], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o v[64:67], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl_o v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl_o v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl_o v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl_o v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_b_cl_o v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x00,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_g16 v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x00,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_g16 v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x00,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_g16 v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x40,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x40,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o_g16 v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x40,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_o_g16 v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0x80,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o_g16 v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0x80,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o_g16 v[64:66], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0x80,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_c_d_cl_o_g16 v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D
+// GFX12: encoding: [0x00,0xc0,0x57,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x17,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D
+// GFX12: encoding: [0x02,0xc0,0xd7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x17,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY
+// GFX12: encoding: [0x04,0xc0,0xd7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_sample_d_cl_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0xd7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_cl v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_cl v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_cl v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_b_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x40,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_b_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x40,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_b_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x40,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x80,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x80,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x80,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x80,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x80,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x80,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0xc0,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_l v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0xc0,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_l v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0xc0,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0xc0,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0xc0,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0xc0,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4_c_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x40,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b_cl v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x40,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b_cl v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x40,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x40,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x40,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4_c_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x40,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+
+image_gather4h v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D
+// GFX12: encoding: [0x01,0x00,0x64,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4h v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE
+// GFX12: encoding: [0x03,0x00,0xa4,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4h v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY
+// GFX12: encoding: [0x05,0x00,0x24,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+
+image_gather4h v[64:67], v32, s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D a16
+// GFX12: encoding: [0x41,0x00,0x24,0xe6,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+
+image_gather4h v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16
+// GFX12: encoding: [0x43,0x00,0xa4,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_gather4h v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16
+// GFX12: encoding: [0x45,0x00,0x24,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+
+image_msaa_load v[1:4], [v5, v6, v7], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA
+// GFX12: encoding: [0x06,0x00,0x46,0xe4,0x01,0x10,0x00,0x00,0x05,0x06,0x07,0x00]
+
+image_msaa_load v[1:4], [v5, v6, v7], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA unorm
+// GFX12: encoding: [0x06,0x20,0x46,0xe4,0x01,0x10,0x00,0x00,0x05,0x06,0x07,0x00]
+
+image_msaa_load v[1:2], [v1, v2, v3], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA unorm d16
+// GFX12: encoding: [0x26,0x20,0x46,0xe4,0x01,0x20,0x00,0x00,0x01,0x02,0x03,0x00]
+
+image_msaa_load v[1:4], [v1, v2], s[8:15] dmask:0x2 dim:SQ_RSRC_IMG_2D_MSAA unorm a16
+// GFX12: encoding: [0x46,0x20,0x86,0xe4,0x01,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+
+image_msaa_load v[1:2], [v2, v1], s[8:15] dmask:0x2 dim:SQ_RSRC_IMG_2D_MSAA unorm a16 d16
+// GFX12: encoding: [0x66,0x20,0x86,0xe4,0x01,0x10,0x00,0x00,0x02,0x01,0x00,0x00]
+
+image_msaa_load v[1:4], [v8, v6, v5, v7], s[8:15] dmask:0x4 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm
+// GFX12: encoding: [0x07,0x20,0x06,0xe5,0x01,0x10,0x00,0x00,0x08,0x06,0x05,0x07]
+
+image_msaa_load v[1:2], [v204, v11, v14, v19], s[96:103] dmask:0x4 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm d16
+// GFX12: encoding: [0x27,0x20,0x06,0xe5,0x01,0xc0,0x00,0x00,0xcc,0x0b,0x0e,0x13]
+
+image_msaa_load v[1:4], [v8, v6], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
+// GFX12: encoding: [0x47,0x20,0x06,0xe6,0x01,0x10,0x00,0x00,0x08,0x06,0x00,0x00]
+
+image_msaa_load v[1:2], [v5, v7], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 d16
+// GFX12: encoding: [0x67,0x20,0x06,0xe6,0x01,0x10,0x00,0x00,0x05,0x07,0x00,0x00]
+
+image_msaa_load v[0:4], [v5, v7, v11, v55], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm tfe
+// GFX12: encoding: [0x0f,0x20,0x06,0xe6,0x00,0x10,0x00,0x00,0x05,0x07,0x0b,0x37]
+
+image_msaa_load v[1:4], [v5, v6, v7, v8], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY lwe
+// GFX12: encoding: [0x07,0x00,0x06,0xe6,0x01,0x11,0x00,0x00,0x05,0x06,0x07,0x08]
+
+image_msaa_load v[0:2], [v5, v7, v11, v55], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm tfe d16
+// GFX12: encoding: [0x2f,0x20,0x06,0xe6,0x00,0x10,0x00,0x00,0x05,0x07,0x0b,0x37]
+
+image_msaa_load v[1:4], [v5, v6, v7], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA unorm th:TH_LOAD_NT
+// GFX12: encoding: [0x06,0x20,0x46,0xe4,0x01,0x10,0x10,0x00,0x05,0x06,0x07,0x00]
diff --git a/llvm/test/MC/AMDGPU/gfx12_err.s b/llvm/test/MC/AMDGPU/gfx12_err.s
new file mode 100644
index 000000000000000..93e3cc1498d261f
--- /dev/null
+++ b/llvm/test/MC/AMDGPU/gfx12_err.s
@@ -0,0 +1,43 @@
+// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1200 -show-encoding %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR --implicit-check-not=error: -strict-whitespace %s
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:0x7
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected an identifier
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value for load instructions
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value for load instructions
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value for store instructions
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value for store instructions
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value for atomic instructions
+
+image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value for atomic instructions
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_LU
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT_WB
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_WB
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: invalid th value
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_RT_WB scope:SCOPE_SYS
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: scope and th combination is not valid
+
+image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_BYPASS scope:SCOPE_DEV
+// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: scope and th combination is not valid
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_HT scope:SCOPE_SE th:TH_LOAD_HT
+// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand
+
+image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE th:TH_LOAD_HT scope:SCOPE_SE
+// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand
diff --git a/llvm/test/MC/Disassembler/AMDGPU/decode-err.txt b/llvm/test/MC/Disassembler/AMDGPU/decode-err.txt
index 22fec90318673e6..24716b1226e49a3 100644
--- a/llvm/test/MC/Disassembler/AMDGPU/decode-err.txt
+++ b/llvm/test/MC/Disassembler/AMDGPU/decode-err.txt
@@ -1,16 +1,17 @@
 # RUN: llvm-mc -triple=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s 2>&1 | FileCheck -check-prefix=GCN %s
 # RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -disassemble -show-encoding < %s 2>&1 | FileCheck -check-prefixes=GFX11,W32 %s
 # RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=-WavefrontSize32,+WavefrontSize64 -disassemble -show-encoding < %s 2>&1 | FileCheck -check-prefixes=GFX11,W64 %s
+# RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -disassemble -show-encoding < %s 2>&1 | FileCheck -check-prefix=GFX12 %s
 
-# GCN: warning: invalid instruction encoding
+# GCN: [[@LINE+1]]:1: warning: invalid instruction encoding
 0xdf,0x00,0x00,0x02
 
 # this is s_singleuse_vdst 0x1234, which is only valid on gfx1150
-# GFX11: warning: invalid instruction encoding
+# GFX11: [[@LINE+1]]:1: warning: invalid instruction encoding
 0x34,0x12,0x93,0xbf
 
 # W32: v_dual_add_f32 v5, 0xaf123456, v2 :: v_dual_fmaak_f32 v6, v3, v1, 0xaf123456 ; encoding: [0xff,0x04,0x02,0xc9,0x03,0x03,0x06,0x05,0x56,0x34,0x12,0xaf]
-# W64: warning: invalid instruction encoding
+# W64: [[@LINE+1]]:1: warning: invalid instruction encoding
 0xff,0x04,0x02,0xc9,0x03,0x03,0x06,0x05,0x56,0x34,0x12,0xaf
 
 # W32: v_wmma_f32_16x16x16_f16 v[16:23], v[0:7], v[8:15], v[16:23] ; encoding: [0x10,0x40,0x40,0xcc,0x00,0x11,0x42,0x1c]
@@ -32,3 +33,7 @@
 # W32: v_wmma_f32_16x16x16_f16 v[16:23], v[0:7], v[8:15], s[0:7]/*Invalid register, operand has 'VReg_256' register class*/ ; encoding: [0x10,0x40,0x40,0xcc,0x00,0x11,0x02,0x18]
 # W64: v_wmma_f32_16x16x16_f16 v[16:19], v[0:7], v[8:15], s[0:3]/*Invalid register, operand has 'VReg_128' register class*/ ; encoding: [0x10,0x40,0x40,0xcc,0x00,0x11,0x02,0x18]
 0x10,0x40,0x40,0xcc,0x00,0x11,0x02,0x18 # src2 sgpr0
+
+# this is image_msaa_load where samp field for gfx12 VSAMPLE is not all zeros
+# GFX12: [[@LINE+1]]:1: warning: invalid instruction encoding
+0x06,0x00,0x46,0xe4,0x01,0x10,0x80,0x00,0x05,0x06,0x07,0x00
diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vimage.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vimage.txt
new file mode 100644
index 000000000000000..eff2e09e31b1fe4
--- /dev/null
+++ b/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vimage.txt
@@ -0,0 +1,944 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -disassemble -show-encoding %s | FileCheck --check-prefixes=GFX12 %s
+
+# GFX12: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v[1:4], [v2, v3], s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0xc0,0xd3,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x00,0xc0,0xd3,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_load v[4:7], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xc0,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x00,0xc0,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_load v[252:255], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0xc0,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x00,0xc0,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_load v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_load v[0:3], [v4, v5, v6, v7], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_load v[0:1], v255, s[0:7] dmask:0x9 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x40,0xd2,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd2,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00
+
+# GFX12: image_load v255, [v254, v255], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x40,0xd0,0xff,0x00,0x00,0x00,0xfe,0xff,0x00,0x00]
+0x01,0x00,0x40,0xd0,0xff,0x00,0x00,0x00,0xfe,0xff,0x00,0x00
+
+# GFX12: image_load v0, [v2, v22, v222], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x16,0xde,0x00]
+0x02,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x16,0xde,0x00
+
+# GFX12: image_load v0, [v2, v3, v4], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00]
+0x03,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00
+
+# GFX12: image_load v0, [v2, v3], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00]
+0x04,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_load v0, [v2, v3, v4], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00]
+0x05,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00
+
+# GFX12: image_load v0, [v2, v3, v4], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00]
+0x06,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x00
+
+# GFX12: image_load v0, [v2, v3, v4, v5], s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x05]
+0x07,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x02,0x03,0x04,0x05
+
+# GFX12: image_load v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x40,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v[1:4], v2, s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0xc0,0xd3,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00]
+0x41,0x00,0xc0,0xd3,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00
+
+# GFX12: image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x42,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x43,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v[0:3], v4, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00]
+0x44,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00
+
+# GFX12: image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x45,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16 ; encoding: [0x46,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x46,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16 ; encoding: [0x47,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x47,0x00,0xc0,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x6 dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x00,0x80,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x00,0x80,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v[0:1], v0, s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x00,0x80,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x00,0x80,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v[0:1], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x00,0xc0,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v1, [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x40,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0x40,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:2], [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x00,0x40,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0x40,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:2], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0xc0,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0xc0,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:3], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x00,0xc0,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0xc0,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:3], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0xc0,0xd1,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0xc0,0xd1,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:4], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x00,0xc0,0xd1,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0xc0,0xd1,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:4], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0xc0,0xd3,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0xc0,0xd3,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v[1:5], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x00,0xc0,0xd3,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x00,0xc0,0xd3,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D r128 ; encoding: [0x10,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x10,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_DEV ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SYS ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_HT ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_LU ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_RT ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT_NT ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_HT ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00
+
+# This is invalid encoding
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:0x7 ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_BYPASS scope:SCOPE_SYS ; encoding: [0x00,0x00,0x40,0xd0,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x40,0xd0,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_load v[0:2], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY th:TH_LOAD_HT scope:SCOPE_SE a16 tfe d16 ; encoding: [0x65,0x00,0xc0,0xd3,0x00,0x10,0xa4,0x00,0x04,0x05,0x00,0x00]
+0x65,0x00,0xc0,0xd3,0x00,0x10,0xa4,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load v[0:2], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY th:TH_LOAD_HT scope:SCOPE_SE r128 a16 tfe d16 ; encoding: [0x75,0x00,0xc0,0xd3,0x00,0x10,0xa4,0x00,0x04,0x05,0x00,0x00]
+0x75,0x00,0xc0,0xd3,0x00,0x10,0xa4,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_load_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0xc0,0xd3,0xfc,0x00,0x00,0x00,0x00,0x01,0x00,0x00]
+0x00,0x40,0xc0,0xd3,0xfc,0x00,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load_mip v[253:255], [v255, v254], s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x80,0xd3,0xfd,0x00,0x00,0x00,0xff,0xfe,0x00,0x00]
+0x00,0x40,0x80,0xd3,0xfd,0x00,0x00,0x00,0xff,0xfe,0x00,0x00
+
+# GFX12: image_load_mip v[254:255], [v254, v255, v253], s[0:7] dmask:0xc dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x00,0xd3,0xfe,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+0x01,0x40,0x00,0xd3,0xfe,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00
+
+# GFX12: image_load_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+0x02,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc
+
+# GFX12: image_load_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+0x03,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc
+
+# GFX12: image_load_mip v255, [v254, v255, v253], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+0x04,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00
+
+# GFX12: image_load_mip v255, [v254, v255, v253, v255], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xff]
+0x05,0x40,0x00,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xff
+
+# GFX12: image_load_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0x40,0xc0,0xd3,0xfc,0x00,0x10,0x00,0x00,0x01,0x00,0x00]
+0x00,0x40,0xc0,0xd3,0xfc,0x00,0x10,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x40,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00]
+0x00,0x80,0x40,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00
+
+# GFX12: image_load_pck v[5:6], [v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0xc0,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+0x01,0x80,0xc0,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_load_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0x00,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x02,0x80,0x00,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x80,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x03,0x80,0x80,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck v[5:7], [v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc0,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+0x04,0x80,0xc0,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_load_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0x40,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x05,0x80,0x40,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0x7 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x80,0xc0,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x06,0x80,0xc0,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck v[5:8], [v1, v2, v3, v4], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x80,0xc0,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04]
+0x07,0x80,0xc0,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04
+
+# GFX12: image_load_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0x80,0x40,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00]
+0x00,0x80,0x40,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00
+
+# GFX12: image_load_pck_sgn v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x40,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00]
+0x00,0xc0,0x40,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00
+
+# GFX12: image_load_pck_sgn v[5:6], [v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0xc0,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+0x01,0xc0,0xc0,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_load_pck_sgn v[5:6], [v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0x00,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x02,0xc0,0x00,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck_sgn v[5:6], [v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x80,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x03,0xc0,0x80,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck_sgn v[5:7], [v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc0,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+0x04,0xc0,0xc0,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_load_pck_sgn v[5:7], [v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0x40,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x05,0xc0,0x40,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck_sgn v[5:7], [v1, v2, v3], s[8:15] dmask:0x7 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0xc0,0xc0,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x06,0xc0,0xc0,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_load_pck_sgn v[5:8], [v1, v2, v3, v4], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0xc0,0xc0,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04]
+0x07,0xc0,0xc0,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04
+
+# GFX12: image_load_pck_sgn v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0xc0,0x40,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00]
+0x00,0xc0,0x40,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00
+
+# GFX12: image_load_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x41,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00]
+0x00,0x00,0x41,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load_mip_pck v[5:6], [v0, v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0xc1,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+0x01,0x00,0xc1,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00
+
+# GFX12: image_load_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0x01,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x02,0x00,0x01,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_load_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x81,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x03,0x00,0x81,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_load_mip_pck v[5:7], [v0, v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc1,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+0x04,0x00,0xc1,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00
+
+# GFX12: image_load_mip_pck v[5:7], [v0, v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x41,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x05,0x00,0x41,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_load_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0x00,0x41,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00]
+0x00,0x00,0x41,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load_mip_pck_sgn v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x41,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00]
+0x00,0x40,0x41,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_load_mip_pck_sgn v[5:6], [v0, v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0xc1,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+0x01,0x40,0xc1,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00
+
+# GFX12: image_load_mip_pck_sgn v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0x01,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x02,0x40,0x01,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_load_mip_pck_sgn v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x81,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x03,0x40,0x81,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_load_mip_pck_sgn v[5:7], [v0, v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc1,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+0x04,0x40,0xc1,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00
+
+# GFX12: image_load_mip_pck_sgn v[5:7], [v0, v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x41,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x05,0x40,0x41,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_load_mip_pck_sgn v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0x40,0x41,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00]
+0x00,0x40,0x41,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v[1:4], [v2, v3], s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0xc1,0xd3,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x80,0xc1,0xd3,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_store v[4:7], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xc1,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x80,0xc1,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_store v[252:255], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0xc1,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x80,0xc1,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_store v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_store v[0:3], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_store v[0:3], [v4, v5, v6, v7], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_store v[0:3], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x40,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v[1:4], v2, s[4:11] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x80,0xc1,0xd3,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00]
+0x41,0x80,0xc1,0xd3,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00
+
+# GFX12: image_store v[4:7], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x80,0xc1,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x42,0x80,0xc1,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_store v[252:255], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x80,0xc1,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x43,0x80,0xc1,0xd3,0xfc,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_store v[0:3], v4, s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00]
+0x44,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00
+
+# GFX12: image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x45,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA a16 ; encoding: [0x46,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x46,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_store v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16 ; encoding: [0x47,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x47,0x80,0xc1,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x6 dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x80,0x81,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x80,0x81,0xd1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v[0:1], v0, s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x80,0x81,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x80,0x81,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v[0:1], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x20,0x80,0xc1,0xd3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v1, [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x41,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0x41,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:2], [v0, v1], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x80,0x41,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0x41,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:2], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0xc1,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0xc1,0xd0,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:3], [v0, v1], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x80,0xc1,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0xc1,0xd0,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:3], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0xc1,0xd1,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0xc1,0xd1,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:4], [v0, v1], s[16:23] dmask:0x7 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x80,0xc1,0xd1,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0xc1,0xd1,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:4], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0xc1,0xd3,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0xc1,0xd3,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v[1:5], [v0, v1], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x01,0x80,0xc1,0xd3,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00]
+0x01,0x80,0xc1,0xd3,0x01,0x20,0x80,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D r128 ; encoding: [0x10,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x10,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_DEV ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SYS ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_HT ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_RT_WB ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT_RT ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_RT_NT ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT_HT ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT_WB ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_BYPASS scope:SCOPE_SYS ; encoding: [0x00,0x80,0x41,0xd0,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x41,0xd0,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_store_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0xc1,0xd3,0xfc,0x00,0x00,0x00,0x00,0x01,0x00,0x00]
+0x00,0xc0,0xc1,0xd3,0xfc,0x00,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store_mip v[253:255], [v255, v254], s[0:7] dmask:0xe dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x81,0xd3,0xfd,0x00,0x00,0x00,0xff,0xfe,0x00,0x00]
+0x00,0xc0,0x81,0xd3,0xfd,0x00,0x00,0x00,0xff,0xfe,0x00,0x00
+
+# GFX12: image_store_mip v[254:255], [v254, v255, v253], s[0:7] dmask:0xc dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x01,0xd3,0xfe,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+0x01,0xc0,0x01,0xd3,0xfe,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00
+
+# GFX12: image_store_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+0x02,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc
+
+# GFX12: image_store_mip v255, [v254, v255, v253, v252], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc]
+0x03,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xfc
+
+# GFX12: image_store_mip v255, [v254, v255, v253], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00]
+0x04,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0x00
+
+# GFX12: image_store_mip v255, [v254, v255, v253, v255], s[0:7] dmask:0x8 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xff]
+0x05,0xc0,0x01,0xd2,0xff,0x00,0x00,0x00,0xfe,0xff,0xfd,0xff
+
+# GFX12: image_store_mip v[252:255], [v0, v1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D th:TH_STORE_NT ; encoding: [0x00,0xc0,0xc1,0xd3,0xfc,0x00,0x10,0x00,0x00,0x01,0x00,0x00]
+0x00,0xc0,0xc1,0xd3,0xfc,0x00,0x10,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x42,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00]
+0x00,0x00,0x42,0xd0,0x05,0x10,0x00,0x00,0x01,0x00,0x00,0x00
+
+# GFX12: image_store_pck v[5:6], [v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0xc2,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+0x01,0x00,0xc2,0xd0,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_store_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0x02,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x02,0x00,0x02,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_store_pck v[5:6], [v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x82,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x03,0x00,0x82,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_store_pck v[5:7], [v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc2,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00]
+0x04,0x00,0xc2,0xd2,0x05,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_store_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x42,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x05,0x00,0x42,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_store_pck v[5:7], [v1, v2, v3], s[8:15] dmask:0x7 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x00,0xc2,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00]
+0x06,0x00,0xc2,0xd1,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_store_pck v[5:8], [v1, v2, v3, v4], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x00,0xc2,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04]
+0x07,0x00,0xc2,0xd3,0x05,0x10,0x00,0x00,0x01,0x02,0x03,0x04
+
+# GFX12: image_store_pck v5, v1, s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT ; encoding: [0x00,0x00,0x42,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00]
+0x00,0x00,0x42,0xd0,0x05,0x10,0x10,0x00,0x01,0x00,0x00,0x00
+
+# GFX12: image_store_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x42,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00]
+0x00,0x40,0x42,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_store_mip_pck v[5:6], [v0, v1, v2], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0xc2,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+0x01,0x40,0xc2,0xd0,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00
+
+# GFX12: image_store_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xc dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0x02,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x02,0x40,0x02,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_store_mip_pck v[5:6], [v0, v1, v2, v3], s[8:15] dmask:0xa dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x82,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x03,0x40,0x82,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_store_mip_pck v[5:7], [v0, v1, v2], s[8:15] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc2,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00]
+0x04,0x40,0xc2,0xd2,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x00
+
+# GFX12: image_store_mip_pck v[5:7], [v0, v1, v2, v3], s[8:15] dmask:0xd dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x42,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03]
+0x05,0x40,0x42,0xd3,0x05,0x10,0x00,0x00,0x00,0x01,0x02,0x03
+
+# GFX12: image_store_mip_pck v5, [v0, v1], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_STORE_NT ; encoding: [0x00,0x40,0x42,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00]
+0x00,0x40,0x42,0xd0,0x05,0x10,0x10,0x00,0x00,0x01,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x42,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x80,0x42,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_swap v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0x42,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x80,0x42,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_swap v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x42,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x80,0x42,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_swap v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc2,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x80,0xc2,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_swap v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc2,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x80,0xc2,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_swap v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x80,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x80,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_swap v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x80,0xc2,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x80,0xc2,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SE ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_DEV ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D scope:SCOPE_SYS ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_RETURN ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_RETURN ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT_RETURN ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_CASCADE_RT scope:SCOPE_DEV ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x48,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x48,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_CASCADE_NT scope:SCOPE_SYS ; encoding: [0x00,0x80,0x42,0xd0,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x42,0xd0,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v0, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D r128 ; encoding: [0x11,0x80,0x42,0xd0,0x00,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x11,0x80,0x42,0xd0,0x00,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_swap v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x40,0x80,0x42,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v1, v2, s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x80,0x42,0xd0,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00]
+0x41,0x80,0x42,0xd0,0x01,0x08,0x00,0x00,0x02,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v4, [v4, v5], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x80,0x42,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x42,0x80,0x42,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_swap v255, [v4, v5], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x80,0x42,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x43,0x80,0x42,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_swap v[0:1], v4, s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x80,0xc2,0xd0,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00]
+0x44,0x80,0xc2,0xd0,0x00,0x10,0x00,0x00,0x04,0x00,0x00,0x00
+
+# GFX12: image_atomic_swap v[1:2], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x80,0xc2,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x45,0x80,0xc2,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_swap v[3:4], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA a16 ; encoding: [0x46,0x80,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x46,0x80,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_swap v[254:255], [v4, v5], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY a16 ; encoding: [0x47,0x80,0xc2,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x00,0x00]
+0x47,0x80,0xc2,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_cmpswap v[0:1], v0, s[0:7] dmask:0x3 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0xc2,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0xc0,0xc2,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_cmpswap v[1:2], [v2, v3], s[4:11] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0xc2,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0xc0,0xc2,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_cmpswap v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0xc0,0xc2,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_cmpswap v[254:255], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0xc2,0xd0,0xfe,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0xc0,0xc2,0xd0,0xfe,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_cmpswap v[0:3], [v4, v5], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc2,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0xc0,0xc2,0xd3,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_cmpswap v[1:4], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc2,0xd3,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0xc0,0xc2,0xd3,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_cmpswap v[4:7], [v4, v5, v6], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0xc0,0xc2,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0xc0,0xc2,0xd3,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_cmpswap v[252:255], [v4, v5, v6, v7], s[96:103] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0xc0,0xc2,0xd3,0xfc,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0xc0,0xc2,0xd3,0xfc,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_cmpswap v[0:1], v0, s[0:7] dmask:0x3 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0xc0,0xc2,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0xc0,0xc2,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_add_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_add_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x00,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_add_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x00,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_add_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x00,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_add_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x00,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_add_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x00,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_add_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x00,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x00,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_add_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x00,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x00,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_add_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x00,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_sub_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x40,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_sub_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x40,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_sub_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x40,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_sub_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x40,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_sub_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x40,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_sub_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x40,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_sub_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x40,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x40,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_sub_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x40,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x40,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_sub_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x40,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x40,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_min_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_min_int v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x80,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_min_int v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x80,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_int v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x80,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_int v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x80,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_min_int v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x80,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_int v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x80,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x80,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_int v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x80,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x80,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_min_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x80,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_min_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0xc0,0x43,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_min_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0xc0,0x43,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_min_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0xc0,0x43,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0xc0,0x43,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0xc0,0xc3,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_min_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0xc0,0xc3,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0xc0,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0xc0,0xc3,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_min_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0xc0,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0xc0,0xc3,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_min_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0xc0,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0xc0,0x43,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_max_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_max_int v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x00,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_max_int v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x00,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_int v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x00,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_int v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x00,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_max_int v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x00,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_int v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x00,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x00,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_int v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x00,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x00,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_max_int v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x00,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_max_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x40,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_max_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x40,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_max_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x40,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x40,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x40,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_max_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x40,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x40,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x40,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_max_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x40,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x40,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_max_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x40,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x40,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_and v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_and v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x80,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_and v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x80,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_and v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x80,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_and v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x80,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_and v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x80,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_and v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x80,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x80,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_and v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x80,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x80,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_and v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x80,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_or v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0xc0,0x44,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_or v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0xc0,0x44,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_or v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0xc0,0x44,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_or v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0xc0,0x44,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_or v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0xc0,0xc4,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_or v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0xc0,0xc4,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_or v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0xc0,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0xc0,0xc4,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_or v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0xc0,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0xc0,0xc4,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_or v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0xc0,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0xc0,0x44,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_xor v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_xor v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x00,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_xor v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x00,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_xor v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x00,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_xor v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x00,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_xor v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x00,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_xor v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x00,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x00,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_xor v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x00,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x00,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_xor v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x00,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x00,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_inc_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x40,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_inc_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x40,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_inc_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x40,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_inc_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x40,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_inc_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x40,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_inc_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x40,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_inc_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x40,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x40,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_inc_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x40,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x40,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_inc_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x40,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x40,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_dec_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x45,0xd0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_atomic_dec_uint v1, [v2, v3], s[4:11] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00]
+0x01,0x80,0x45,0xd0,0x01,0x08,0x00,0x00,0x02,0x03,0x00,0x00
+
+# GFX12: image_atomic_dec_uint v4, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x02,0x80,0x45,0xd0,0x04,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_dec_uint v255, [v4, v5, v6], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x03,0x80,0x45,0xd0,0xff,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_dec_uint v[0:1], [v4, v5], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00]
+0x04,0x80,0xc5,0xd0,0x00,0x10,0x00,0x00,0x04,0x05,0x00,0x00
+
+# GFX12: image_atomic_dec_uint v[1:2], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x05,0x80,0xc5,0xd0,0x01,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_dec_uint v[3:4], [v4, v5, v6], s[8:15] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0x80,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00]
+0x06,0x80,0xc5,0xd0,0x03,0x10,0x00,0x00,0x04,0x05,0x06,0x00
+
+# GFX12: image_atomic_dec_uint v[254:255], [v4, v5, v6, v7], s[96:103] dmask:0x3 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0x80,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07]
+0x07,0x80,0xc5,0xd0,0xfe,0xc0,0x00,0x00,0x04,0x05,0x06,0x07
+
+# GFX12: image_atomic_dec_uint v0, v0, s[0:7] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_ATOMIC_NT ; encoding: [0x00,0x80,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00]
+0x00,0x80,0x45,0xd0,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00
+
+# GFX12: image_bvh_intersect_ray v[4:7], [v9, v10, v[11:13], v[14:16], v[17:19]], s[4:7] ; encoding: [0x10,0x40,0xc6,0xd3,0x04,0x08,0x00,0x11,0x09,0x0a,0x0b,0x0e]
+0x10,0x40,0xc6,0xd3,0x04,0x08,0x00,0x11,0x09,0x0a,0x0b,0x0e
+
+# GFX12: image_bvh_intersect_ray v[4:7], [v9, v10, v[11:13], v[14:16]], s[4:7] a16 ; encoding: [0x50,0x40,0xc6,0xd3,0x04,0x08,0x00,0x00,0x09,0x0a,0x0b,0x0e]
+0x50,0x40,0xc6,0xd3,0x04,0x08,0x00,0x00,0x09,0x0a,0x0b,0x0e
+
+# GFX12: image_bvh64_intersect_ray v[4:7], [v[9:10], v11, v[12:14], v[15:17], v[18:20]], s[4:7] ; encoding: [0x10,0x80,0xc6,0xd3,0x04,0x08,0x00,0x12,0x09,0x0b,0x0c,0x0f]
+0x10,0x80,0xc6,0xd3,0x04,0x08,0x00,0x12,0x09,0x0b,0x0c,0x0f
+
+# GFX12: image_bvh64_intersect_ray v[4:7], [v[9:10], v11, v[12:14], v[15:17]], s[4:7] a16 ; encoding: [0x50,0x80,0xc6,0xd3,0x04,0x08,0x00,0x00,0x09,0x0b,0x0c,0x0f]
+0x50,0x80,0xc6,0xd3,0x04,0x08,0x00,0x00,0x09,0x0b,0x0c,0x0f
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x2 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x85,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x01,0xc0,0x85,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x8 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0x05,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x02,0xc0,0x05,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v[4:5], v32, s[96:103] dmask:0x5 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x45,0xd1,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x03,0xc0,0x45,0xd1,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v[4:5], v32, s[96:103] dmask:0xa dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0x85,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x04,0xc0,0x85,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v[4:6], v32, s[96:103] dmask:0xb dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc5,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x05,0xc0,0xc5,0xd2,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v[4:6], v32, s[96:103] dmask:0xe dim:SQ_RSRC_IMG_2D_MSAA ; encoding: [0x06,0xc0,0x85,0xd3,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x06,0xc0,0x85,0xd3,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v[4:7], v32, s[96:103] dmask:0xf dim:SQ_RSRC_IMG_2D_MSAA_ARRAY ; encoding: [0x07,0xc0,0xc5,0xd3,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x07,0xc0,0xc5,0xd3,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x00,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x10,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x10,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_HT ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x20,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x20,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_LU ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x30,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x30,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_RT ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x40,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x40,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_RT_NT ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x50,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x50,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_NT_HT ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x60,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x60,0x00,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_resinfo v4, v32, s[96:103] dmask:0x1 dim:SQ_RSRC_IMG_1D th:TH_LOAD_BYPASS scope:SCOPE_SYS ; encoding: [0x00,0xc0,0x45,0xd0,0x04,0xc0,0x3c,0x00,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x45,0xd0,0x04,0xc0,0x3c,0x00,0x20,0x00,0x00,0x00
diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vsample.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vsample.txt
new file mode 100644
index 000000000000000..e777d541502e0a1
--- /dev/null
+++ b/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vsample.txt
@@ -0,0 +1,1216 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1200 -disassemble -show-encoding < %s | FileCheck -check-prefixes=GFX12 %s
+
+# GFX12: image_sample v64, v32, s[4:11], s[100:103] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x46,0xe4,0x40,0x08,0x00,0x32,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x46,0xe4,0x40,0x08,0x00,0x32,0x20,0x00,0x00,0x00
+
+# GFX12: image_sample v64, [v32, v33], s[4:11], s[100:103] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x06,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+0x01,0xc0,0x06,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xc6,0xe4,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+0x02,0xc0,0xc6,0xe4,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x06,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+0x03,0xc0,0x06,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample v[64:66], [v32, v33], s[4:11], s[100:103] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc6,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+0x04,0xc0,0xc6,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample v[64:67], [v32, v33, v34], s[4:11], s[100:103] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc6,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+0x05,0xc0,0xc6,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample v0, v1, s[0:7], s[100:103] dmask:0x2 dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0xc0,0x86,0xe4,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x00]
+0x40,0xc0,0x86,0xe4,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x00
+
+# GFX12: image_sample v2, v3, s[4:11], s[96:99] dmask:0x4 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0x06,0xe5,0x02,0x08,0x00,0x30,0x03,0x00,0x00,0x00]
+0x41,0xc0,0x06,0xe5,0x02,0x08,0x00,0x30,0x03,0x00,0x00,0x00
+
+# GFX12: image_sample v[4:5], [v6, v7], s[8:15], s[92:95] dmask:0x6 dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0xc0,0x86,0xe5,0x04,0x10,0x00,0x2e,0x06,0x07,0x00,0x00]
+0x42,0xc0,0x86,0xe5,0x04,0x10,0x00,0x2e,0x06,0x07,0x00,0x00
+
+# GFX12: image_sample v[8:9], [v10, v11], s[12:19], s[88:91] dmask:0x9 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0x46,0xe6,0x08,0x18,0x00,0x2c,0x0a,0x0b,0x00,0x00]
+0x43,0xc0,0x46,0xe6,0x08,0x18,0x00,0x2c,0x0a,0x0b,0x00,0x00
+
+# GFX12: image_sample v[12:14], v15, s[16:23], s[84:87] dmask:0x7 dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0xc0,0xc6,0xe5,0x0c,0x20,0x00,0x2a,0x0f,0x00,0x00,0x00]
+0x44,0xc0,0xc6,0xe5,0x0c,0x20,0x00,0x2a,0x0f,0x00,0x00,0x00
+
+# GFX12: image_sample v[16:19], [v20, v21], s[20:27], s[80:83] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0xc6,0xe7,0x10,0x28,0x00,0x28,0x14,0x15,0x00,0x00]
+0x45,0xc0,0xc6,0xe7,0x10,0x28,0x00,0x28,0x14,0x15,0x00,0x00
+
+# GFX12: image_sample v[22:24], v25, s[24:31], s[76:79] dmask:0xd dim:SQ_RSRC_IMG_1D unorm ; encoding: [0x00,0xe0,0x46,0xe7,0x16,0x30,0x00,0x26,0x19,0x00,0x00,0x00]
+0x00,0xe0,0x46,0xe7,0x16,0x30,0x00,0x26,0x19,0x00,0x00,0x00
+
+# FIXME: This test is incorrect because r128 assumes a 128-bit SRSRC.
+# GFX12: image_sample v[22:24], v25, s[24:31], s[76:79] dmask:0xd dim:SQ_RSRC_IMG_1D r128 ; encoding: [0x10,0xc0,0x46,0xe7,0x16,0x30,0x00,0x26,0x19,0x00,0x00,0x00]
+0x10,0xc0,0x46,0xe7,0x16,0x30,0x00,0x26,0x19,0x00,0x00,0x00
+
+# GFX12: image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x46,0xe4,0x1a,0x38,0x00,0x24,0x1b,0x1c,0x00,0x00]
+0x01,0xc0,0x46,0xe4,0x1a,0x38,0x00,0x24,0x1b,0x1c,0x00,0x00
+
+# GFX12: image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_SE ; encoding: [0x01,0xc0,0x86,0xe4,0x1a,0x38,0x04,0x24,0x1b,0x1c,0x00,0x00]
+0x01,0xc0,0x86,0xe4,0x1a,0x38,0x04,0x24,0x1b,0x1c,0x00,0x00
+
+# GFX12: image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x4 dim:SQ_RSRC_IMG_2D scope:SCOPE_DEV ; encoding: [0x01,0xc0,0x06,0xe5,0x1a,0x38,0x08,0x24,0x1b,0x1c,0x00,0x00]
+0x01,0xc0,0x06,0xe5,0x1a,0x38,0x08,0x24,0x1b,0x1c,0x00,0x00
+
+# GFX12: image_sample v26, [v27, v28], s[28:35], s[72:75] dmask:0x8 dim:SQ_RSRC_IMG_2D scope:SCOPE_SYS ; encoding: [0x01,0xc0,0x06,0xe6,0x1a,0x38,0x0c,0x24,0x1b,0x1c,0x00,0x00]
+0x01,0xc0,0x06,0xe6,0x1a,0x38,0x0c,0x24,0x1b,0x1c,0x00,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xc6,0xe4,0x1d,0x40,0x00,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0xc6,0xe4,0x1d,0x40,0x00,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x5 dim:SQ_RSRC_IMG_3D th:TH_LOAD_NT ; encoding: [0x02,0xc0,0x46,0xe5,0x1d,0x40,0x10,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0x46,0xe5,0x1d,0x40,0x10,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x9 dim:SQ_RSRC_IMG_3D th:TH_LOAD_HT ; encoding: [0x02,0xc0,0x46,0xe6,0x1d,0x40,0x20,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0x46,0xe6,0x1d,0x40,0x20,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x6 dim:SQ_RSRC_IMG_3D th:TH_LOAD_LU ; encoding: [0x02,0xc0,0x86,0xe5,0x1d,0x40,0x30,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0x86,0xe5,0x1d,0x40,0x30,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0xa dim:SQ_RSRC_IMG_3D th:TH_LOAD_NT_RT ; encoding: [0x02,0xc0,0x86,0xe6,0x1d,0x40,0x40,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0x86,0xe6,0x1d,0x40,0x40,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0xc dim:SQ_RSRC_IMG_3D th:TH_LOAD_RT_NT ; encoding: [0x02,0xc0,0x06,0xe7,0x1d,0x40,0x50,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0x06,0xe7,0x1d,0x40,0x50,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x3 dim:SQ_RSRC_IMG_3D th:TH_LOAD_NT_HT ; encoding: [0x02,0xc0,0xc6,0xe4,0x1d,0x40,0x60,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0xc6,0xe4,0x1d,0x40,0x60,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[29:30], [v31, v32, v33], s[32:39], s[68:71] dmask:0x5 dim:SQ_RSRC_IMG_3D th:TH_LOAD_BYPASS scope:SCOPE_SYS ; encoding: [0x02,0xc0,0x46,0xe5,0x1d,0x40,0x3c,0x22,0x1f,0x20,0x21,0x00]
+0x02,0xc0,0x46,0xe5,0x1d,0x40,0x3c,0x22,0x1f,0x20,0x21,0x00
+
+# GFX12: image_sample v[34:35], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+0x00,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00
+
+# GFX12: image_sample v[34:36], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D tfe ; encoding: [0x08,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+0x08,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00
+
+# GFX12: image_sample v34, v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D d16 ; encoding: [0x20,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+0x20,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00
+
+# GFX12: image_sample v[34:35], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D tfe d16 ; encoding: [0x28,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00]
+0x28,0xc0,0xc6,0xe4,0x22,0x48,0x00,0x20,0x25,0x00,0x00,0x00
+
+# GFX12: image_sample v[34:35], v37, s[36:43], s[64:67] dmask:0x3 dim:SQ_RSRC_IMG_1D lwe ; encoding: [0x00,0xc0,0xc6,0xe4,0x22,0x49,0x00,0x20,0x25,0x00,0x00,0x00]
+0x00,0xc0,0xc6,0xe4,0x22,0x49,0x00,0x20,0x25,0x00,0x00,0x00
+
+# FIXME: This test is incorrect because r128 assumes a 128-bit SRSRC.
+# GFX12: image_sample v[38:39], [v40, v41], s[40:47], s[60:63] dmask:0xc dim:SQ_RSRC_IMG_CUBE unorm th:TH_LOAD_HT scope:SCOPE_DEV r128 a16 tfe lwe d16 ; encoding: [0x7b,0xe0,0x06,0xe7,0x26,0x51,0x28,0x1e,0x28,0x29,0x00,0x00]
+0x7b,0xe0,0x06,0xe7,0x26,0x51,0x28,0x1e,0x28,0x29,0x00,0x00
+
+# GFX12: image_sample_d v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x00,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_d v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x40,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_l v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x40,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_l v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x40,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x80,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_b v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x80,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_b v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x80,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_lz v64, v32, s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+0x00,0xc0,0x47,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00
+
+# GFX12: image_sample_lz v64, [v32, v33], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x01,0xc0,0x07,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_lz v[64:65], [v32, v33, v34], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x02,0xc0,0xc7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_lz v[64:65], [v32, v33, v34], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x03,0xc0,0x07,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_lz v[64:66], [v32, v33], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x04,0xc0,0xc7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x05,0xc0,0xc7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x00,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_c v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x00,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x00,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x40,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x80,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_l v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0xc0,0x48,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_b v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x08,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xc8,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x08,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xc8,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xc8,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x00,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_c_lz v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x00,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_lz v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x00,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_lz v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_o v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x40,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x40,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_o v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x40,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x80,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0xc0,0x49,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_l_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x09,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xc9,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x09,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xc9,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_l_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xc9,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x00,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_b_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_lz_o v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x40,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_lz_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x40,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_lz_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_lz_o v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_lz_o v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x40,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x80,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0xc0,0x4a,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o v64, [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x0a,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o v[64:65], [v32, v33, v34, v[35:42]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xca,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x0a,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xca,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o v[64:67], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xca,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x00,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_l_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x40,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x80,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_lz_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x0b,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xcb,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x0b,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xcb,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_lz_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xcb,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4 v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x01,0xc0,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4 v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x8b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x03,0xc0,0x8b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4 v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0x0b,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x05,0xc0,0x0b,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4 v[64:67], v32, s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+0x41,0xc0,0x4b,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00
+
+# GFX12: image_gather4 v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0x8b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x43,0xc0,0x8b,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4 v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0x0b,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x45,0xc0,0x0b,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4 v[0:3], [v4, v5], s[0:7], s[100:103] dmask:0x8 dim:SQ_RSRC_IMG_2D unorm ; encoding: [0x01,0xe0,0x0b,0xe6,0x00,0x00,0x00,0x32,0x04,0x05,0x00,0x00]
+0x01,0xe0,0x0b,0xe6,0x00,0x00,0x00,0x32,0x04,0x05,0x00,0x00
+
+# FIXME: This test is incorrect because r128 assumes a 128-bit SRSRC.
+# GFX12: image_gather4 v[6:9], [v10, v11], s[8:15], s[96:99] dmask:0x1 dim:SQ_RSRC_IMG_2D r128 ; encoding: [0x11,0xc0,0x4b,0xe4,0x06,0x10,0x00,0x30,0x0a,0x0b,0x00,0x00]
+0x11,0xc0,0x4b,0xe4,0x06,0x10,0x00,0x30,0x0a,0x0b,0x00,0x00
+
+# GFX12: image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x00,0x2e,0x10,0x11,0x00,0x00]
+0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x00,0x2e,0x10,0x11,0x00,0x00
+
+# GFX12: image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_SE ; encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x04,0x2e,0x10,0x11,0x00,0x00]
+0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x04,0x2e,0x10,0x11,0x00,0x00
+
+# GFX12: image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_DEV ; encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x08,0x2e,0x10,0x11,0x00,0x00]
+0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x08,0x2e,0x10,0x11,0x00,0x00
+
+# GFX12: image_gather4 v[12:15], [v16, v17], s[16:23], s[92:95] dmask:0x2 dim:SQ_RSRC_IMG_2D scope:SCOPE_SYS ; encoding: [0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x0c,0x2e,0x10,0x11,0x00,0x00]
+0x01,0xc0,0x8b,0xe4,0x0c,0x20,0x0c,0x2e,0x10,0x11,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x00,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x00,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_NT ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x10,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x10,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_HT ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x20,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x20,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_LU ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x30,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x30,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_NT_RT ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x40,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x40,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_RT_NT ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x50,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x50,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_NT_HT ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x60,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x60,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[18:21], [v22, v23], s[24:31], s[88:91] dmask:0x4 dim:SQ_RSRC_IMG_2D th:TH_LOAD_BYPASS scope:SCOPE_SYS ; encoding: [0x01,0xc0,0x0b,0xe5,0x12,0x30,0x3c,0x2c,0x16,0x17,0x00,0x00]
+0x01,0xc0,0x0b,0xe5,0x12,0x30,0x3c,0x2c,0x16,0x17,0x00,0x00
+
+# GFX12: image_gather4 v[28:31], [v33, v34], s[40:47], s[80:83] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x4b,0xe4,0x1c,0x50,0x00,0x28,0x21,0x22,0x00,0x00]
+0x01,0xc0,0x4b,0xe4,0x1c,0x50,0x00,0x28,0x21,0x22,0x00,0x00
+
+# GFX12: image_gather4 v[28:29], [v33, v34], s[40:47], s[80:83] dmask:0x1 dim:SQ_RSRC_IMG_2D d16 ; encoding: [0x21,0xc0,0x4b,0xe4,0x1c,0x50,0x00,0x28,0x21,0x22,0x00,0x00]
+0x21,0xc0,0x4b,0xe4,0x1c,0x50,0x00,0x28,0x21,0x22,0x00,0x00
+
+# GFX12: image_gather4 v[35:38], [v39, v40], s[48:55], s[76:79] dmask:0x2 dim:SQ_RSRC_IMG_2D lwe ; encoding: [0x01,0xc0,0x8b,0xe4,0x23,0x61,0x00,0x26,0x27,0x28,0x00,0x00]
+0x01,0xc0,0x8b,0xe4,0x23,0x61,0x00,0x26,0x27,0x28,0x00,0x00
+
+# GFX12: image_gather4_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x00,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_l v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0x00,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_l v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x43,0x00,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_l v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x45,0x00,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x40,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_b v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x40,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0x40,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x40,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0x40,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x40,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0x40,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x01,0x80,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x03,0x80,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x05,0x80,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_lz v[64:67], v32, s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x80,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+0x41,0x80,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00
+
+# GFX12: image_gather4_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x80,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x43,0x80,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x80,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x45,0x80,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_c v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0xc0,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0xc0,0x4c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_c v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0xc0,0x8c,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0xc0,0x0c,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x00,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_lz v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_lz v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_lz v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0x00,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_c_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0x00,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_lz v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0x00,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x40,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_o v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x40,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0x40,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x40,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0x40,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x40,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0x40,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x80,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_lz_o v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x80,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0x80,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x80,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0x80,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x80,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0x80,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_lz_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_lz_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_lz_o v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x41,0xc0,0x4d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x43,0xc0,0x8d,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_lz_o v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x45,0xc0,0x0d,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_get_lod v64, v32, s[4:11], s[100:103] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x4e,0xe4,0x40,0x08,0x00,0x32,0x20,0x00,0x00,0x00]
+0x00,0x00,0x4e,0xe4,0x40,0x08,0x00,0x32,0x20,0x00,0x00,0x00
+
+# GFX12: image_get_lod v64, [v32, v33], s[4:11], s[100:103] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x0e,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+0x01,0x00,0x0e,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00
+
+# GFX12: image_get_lod v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xce,0xe4,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+0x02,0x00,0xce,0xe4,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00
+
+# GFX12: image_get_lod v[64:65], [v32, v33, v34], s[4:11], s[100:103] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x0e,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+0x03,0x00,0x0e,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00
+
+# GFX12: image_get_lod v[64:66], [v32, v33], s[4:11], s[100:103] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xce,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00]
+0x04,0x00,0xce,0xe6,0x40,0x08,0x00,0x32,0x20,0x21,0x00,0x00
+
+# GFX12: image_get_lod v[64:67], [v32, v33, v34], s[4:11], s[100:103] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xce,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00]
+0x05,0x00,0xce,0xe7,0x40,0x08,0x00,0x32,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_d_g16 v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x40,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_d_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_g16 v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_g16 v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_g16 v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x80,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0xc0,0x4e,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x0e,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xce,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x0e,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xce,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_o_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xce,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x4f,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x00,0x4f,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x0f,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x0f,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xcf,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xcf,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x0f,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x0f,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xcf,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xcf,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xcf,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xcf,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D a16 ; encoding: [0x40,0x00,0x4f,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x40,0x00,0x4f,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0x0f,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x41,0x00,0x0f,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D a16 ; encoding: [0x42,0x00,0xcf,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x42,0x00,0xcf,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0x0f,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x43,0x00,0x0f,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY a16 ; encoding: [0x44,0x00,0xcf,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x44,0x00,0xcf,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_o_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0xcf,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x45,0x00,0xcf,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl v64, [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x00,0x00,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_sample_cl v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x00,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_cl v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl v[64:65], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl v[64:66], [v32, v33, v34], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x04,0x00,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x40,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x80,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_b_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0xc0,0x50,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_c_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x10,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xd0,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x10,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xd0,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xd0,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x00,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl v64, [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl v[64:65], [v32, v33, v34, v[35:42]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl v[64:67], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x40,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl_o v64, [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x00,0x80,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_sample_cl_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl_o v[64:65], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl_o v[64:66], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_cl_o v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0xc0,0x51,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o v64, [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x11,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o v[64:65], [v32, v33, v34, v[35:42]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xd1,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x11,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xd1,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o v[64:67], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xd1,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x00,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_b_cl_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl_o v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x40,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl_o v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl_o v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_cl_o v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x80,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o v64, [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o v[64:65], [v32, v33, v34, v[35:43]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o v[64:66], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o v[64:67], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl_o v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0xc0,0x52,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl_o v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x12,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl_o v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xd2,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl_o v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x12,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl_o v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xd2,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_b_cl_o v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xd2,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x00,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x00,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_g16 v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x00,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x00,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_g16 v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x00,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x00,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_g16 v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x40,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x40,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:40]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x40,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x40,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o_g16 v[64:66], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x40,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x40,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_o_g16 v[64:67], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o_g16 v64, [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0x80,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0x80,0x55,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o_g16 v64, [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x15,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:41]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0x80,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0x80,0xd5,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x15,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o_g16 v[64:66], [v32, v33, v34, v[35:38]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0x80,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0x80,0xd5,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_c_d_cl_o_g16 v[64:67], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0xd5,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_g16 v64, [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_1D ; encoding: [0x00,0xc0,0x57,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x00,0xc0,0x57,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_g16 v64, [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x17,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x17,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_g16 v[64:65], [v32, v33, v34, v[35:39]], s[4:11], s[4:7] dmask:0x3 dim:SQ_RSRC_IMG_3D ; encoding: [0x02,0xc0,0xd7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x02,0xc0,0xd7,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_g16 v[64:65], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xc dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x17,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x17,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_g16 v[64:66], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0xb dim:SQ_RSRC_IMG_1D_ARRAY ; encoding: [0x04,0xc0,0xd7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x04,0xc0,0xd7,0xe6,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_sample_d_cl_g16 v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0xf dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0xd7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0xd7,0xe7,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x01,0x00,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_cl v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x41,0x00,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_cl v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x43,0x00,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_cl v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x45,0x00,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_b_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x40,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x41,0x40,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_b_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x40,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0x40,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_b_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x40,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0x40,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x80,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x80,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x80,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x80,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x80,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x80,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x80,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x41,0x80,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x80,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0x80,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_cl v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x80,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0x80,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_l v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0xc0,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0xc0,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_l v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0xc0,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0xc0,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_l v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0xc0,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0xc0,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0xc0,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x41,0xc0,0x58,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0xc0,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x43,0xc0,0x98,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_l v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0xc0,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x45,0xc0,0x18,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x00,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x00,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x00,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x41,0x00,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4_c_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x43,0x00,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x45,0x00,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b_cl v[64:67], [v32, v33, v34, v[35:36]], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x40,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x01,0x40,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b_cl v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x40,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x03,0x40,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b_cl v[64:67], [v32, v33, v34, v[35:37]], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x40,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x05,0x40,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x40,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x41,0x40,0x59,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x40,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x43,0x40,0x99,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4_c_b_cl v[64:67], [v32, v33, v34, v35], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x40,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23]
+0x45,0x40,0x19,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x23
+
+# GFX12: image_gather4h v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x01,0x00,0x64,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x01,0x00,0x64,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4h v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE ; encoding: [0x03,0x00,0xa4,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x03,0x00,0xa4,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4h v[64:67], [v32, v33, v34], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY ; encoding: [0x05,0x00,0x24,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00]
+0x05,0x00,0x24,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x22,0x00
+
+# GFX12: image_gather4h v[64:67], v32, s[4:11], s[4:7] dmask:0x8 dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x41,0x00,0x24,0xe6,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00]
+0x41,0x00,0x24,0xe6,0x40,0x08,0x00,0x02,0x20,0x00,0x00,0x00
+
+# GFX12: image_gather4h v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x2 dim:SQ_RSRC_IMG_CUBE a16 ; encoding: [0x43,0x00,0xa4,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x43,0x00,0xa4,0xe4,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_gather4h v[64:67], [v32, v33], s[4:11], s[4:7] dmask:0x4 dim:SQ_RSRC_IMG_2D_ARRAY a16 ; encoding: [0x45,0x00,0x24,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00]
+0x45,0x00,0x24,0xe5,0x40,0x08,0x00,0x02,0x20,0x21,0x00,0x00
+
+# GFX12: image_msaa_load v[1:4], [v5, v6, v7], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA
+0x06,0x00,0x46,0xe4,0x01,0x10,0x00,0x00,0x05,0x06,0x07,0x00
+
+# GFX12: image_msaa_load v[1:4], [v5, v6, v7], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA unorm
+0x06,0x20,0x46,0xe4,0x01,0x10,0x00,0x00,0x05,0x06,0x07,0x00
+
+# GFX12: image_msaa_load v[1:2], [v1, v2, v3], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA unorm d16
+0x26,0x20,0x46,0xe4,0x01,0x20,0x00,0x00,0x01,0x02,0x03,0x00
+
+# GFX12: image_msaa_load v[1:4], [v1, v2], s[8:15] dmask:0x2 dim:SQ_RSRC_IMG_2D_MSAA unorm a16
+0x46,0x20,0x86,0xe4,0x01,0x10,0x00,0x00,0x01,0x02,0x00,0x00
+
+# GFX12: image_msaa_load v[1:2], [v2, v1], s[8:15] dmask:0x2 dim:SQ_RSRC_IMG_2D_MSAA unorm a16 d16
+0x66,0x20,0x86,0xe4,0x01,0x10,0x00,0x00,0x02,0x01,0x00,0x00
+
+# GFX12: image_msaa_load v[1:4], [v8, v6, v5, v7], s[8:15] dmask:0x4 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm
+0x07,0x20,0x06,0xe5,0x01,0x10,0x00,0x00,0x08,0x06,0x05,0x07
+
+# GFX12: image_msaa_load v[1:2], [v204, v11, v14, v19], s[96:103] dmask:0x4 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm d16
+0x27,0x20,0x06,0xe5,0x01,0xc0,0x00,0x00,0xcc,0x0b,0x0e,0x13
+
+# GFX12: image_msaa_load v[1:4], [v8, v6], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16
+0x47,0x20,0x06,0xe6,0x01,0x10,0x00,0x00,0x08,0x06,0x00,0x00
+
+# GFX12: image_msaa_load v[1:2], [v5, v7], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm a16 d16
+0x67,0x20,0x06,0xe6,0x01,0x10,0x00,0x00,0x05,0x07,0x00,0x00
+
+# GFX12: image_msaa_load v[0:4], [v5, v7, v11, v55], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm tfe
+0x0f,0x20,0x06,0xe6,0x00,0x10,0x00,0x00,0x05,0x07,0x0b,0x37
+
+# GFX12: image_msaa_load v[1:4], [v5, v6, v7, v8], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY lwe
+0x07,0x00,0x06,0xe6,0x01,0x11,0x00,0x00,0x05,0x06,0x07,0x08
+
+# GFX12: image_msaa_load v[0:2], [v5, v7, v11, v55], s[8:15] dmask:0x8 dim:SQ_RSRC_IMG_2D_MSAA_ARRAY unorm tfe d16
+0x2f,0x20,0x06,0xe6,0x00,0x10,0x00,0x00,0x05,0x07,0x0b,0x37
+
+# GFX12: image_msaa_load v[1:4], [v5, v6, v7], s[8:15] dmask:0x1 dim:SQ_RSRC_IMG_2D_MSAA unorm th:TH_LOAD_NT
+0x06,0x20,0x46,0xe4,0x01,0x10,0x10,0x00,0x05,0x06,0x07,0x00



More information about the llvm-commits mailing list