From 3c0f5045e103a9d7fd7eb59a0e0b201cb26ccb97 Mon Sep 17 00:00:00 2001 From: Mariusz Sikora Date: Mon, 26 Jan 2026 14:16:36 +0100 Subject: [PATCH] [AMDGPU] Add FeatureGFX13 and SMEM encoding for gfx13 (#177567) For now list of features is based on gfx12 and gfx1250 --------- Co-authored-by: Jay Foad --- llvm/lib/Target/AMDGPU/AMDGPU.td | 112 +- llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 8 +- .../Target/AMDGPU/AMDGPUInsertDelayAlu.cpp | 2 +- .../lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 2 +- llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | 1 + .../AMDGPU/AsmParser/AMDGPUAsmParser.cpp | 20 +- .../Disassembler/AMDGPUDisassembler.cpp | 21 +- .../AMDGPU/Disassembler/AMDGPUDisassembler.h | 3 + .../lib/Target/AMDGPU/GCNHazardRecognizer.cpp | 4 +- llvm/lib/Target/AMDGPU/GCNProcessors.td | 2 +- .../MCTargetDesc/AMDGPUTargetStreamer.cpp | 4 +- llvm/lib/Target/AMDGPU/SIDefines.h | 1 + llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 2 +- llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 4 +- llvm/lib/Target/AMDGPU/SIInstrInfo.td | 4 +- llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp | 6 +- llvm/lib/Target/AMDGPU/SMInstructions.td | 83 +- .../Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp | 10 +- .../Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | 16 +- llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h | 3 + llvm/test/CodeGen/AMDGPU/occupancy-levels.ll | 2 +- llvm/test/MC/AMDGPU/gfx13_smem.s | 1428 +++++++++++++++++ 22 files changed, 1694 insertions(+), 44 deletions(-) create mode 100644 llvm/test/MC/AMDGPU/gfx13_smem.s diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td index 66a627ed0286..e294db750cf8 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPU.td +++ b/llvm/lib/Target/AMDGPU/AMDGPU.td @@ -496,6 +496,11 @@ defm GFX1250Insts : AMDGPUSubtargetFeature<"gfx1250-insts", /*GenPredicate=*/0 >; +defm GFX13Insts : AMDGPUSubtargetFeature<"gfx13-insts", + "Additional instructions for GFX13+", + /*GenPredicate=*/0 +>; + defm GFX10_3Insts : AMDGPUSubtargetFeature<"gfx10-3-insts", "Additional instructions for GFX10.3", /*GenPredicate=*/0 @@ -1431,6 +1436,29 @@ def FeatureGFX12 : GCNSubtargetFeatureGeneration<"GFX12", ] >; +def FeatureGFX13 : GCNSubtargetFeatureGeneration<"GFX13", + "gfx13", + [FeatureFP64, FeatureMIMG_R128, + FeatureFlatAddressSpace, Feature16BitInsts, + FeatureInv2PiInlineImm, FeatureApertureRegs, + FeatureCIInsts, FeatureGFX8Insts, FeatureGFX9Insts, FeatureGFX10Insts, + FeatureGFX10_AEncoding, FeatureGFX10_BEncoding, FeatureGFX10_3Insts, + FeatureGFX11Insts, FeatureGFX12Insts, FeatureGFX13Insts, FeatureVOP3PInsts, + FeatureVOPDInsts, FeatureMovrel, FeatureFastFMAF32, FeatureDPP, FeatureIntClamp, + FeatureFlatInstOffsets, FeatureFlatGlobalInsts, FeatureFlatScratchInsts, + FeatureAddNoCarryInsts, FeatureFmaMixInsts, + FeatureNoSdstCMPX, FeatureVscnt, + FeatureVOP3Literal, FeatureDPP8, + FeatureNoDataDepHazard, FeaturePkFmacF16Inst, + FeatureA16, FeatureFastDenormalF32, FeatureG16, + FeatureUnalignedBufferAccess, FeatureUnalignedScratchAccess, + FeatureUnalignedDSAccess, FeatureTrue16BitInsts, + FeatureDefaultComponentBroadcast, FeatureMaxHardClauseLength32, + FeatureAtomicFMinFMaxF32GlobalInsts, FeatureAtomicFMinFMaxF32FlatInsts, + FeatureIEEEMinimumMaximumInsts, FeatureMinimum3Maximum3F32, + FeatureMinimum3Maximum3F16, FeatureAgentScopeFineGrainedRemoteMemoryAtomics + ] +>; //===----------------------------------------------------------------------===// class FeatureSet Features_> { @@ -1989,6 +2017,65 @@ def FeatureISAVersion12_Generic: FeatureSet< !listconcat(FeatureISAVersion12.Features, [FeatureRequiresCOV6])>; +def FeatureISAVersion13 : FeatureSet< + [FeatureGFX13, + FeatureGFX1250Insts, + FeatureAddressableLocalMemorySize65536, + Feature64BitLiterals, + FeatureLDSBankCount32, + FeatureDLInsts, + FeatureFmacF64Inst, + FeatureDot7Insts, + FeatureDot8Insts, + FeatureNSAEncoding, + FeaturePartialNSAEncoding, + FeatureShaderCyclesRegister, + FeatureArchitectedFlatScratch, + FeatureArchitectedSGPRs, + FeatureAtomicFaddRtnInsts, + FeatureAtomicFaddNoRtnInsts, + FeatureAtomicDsPkAdd16Insts, + FeatureAtomicFlatPkAdd16Insts, + FeatureAtomicBufferGlobalPkAddF16Insts, + FeatureAtomicGlobalPkAddBF16Inst, + FeatureAtomicBufferPkAddBF16Inst, + FeatureFlatAtomicFaddF32Inst, + FeatureFP8ConversionInsts, + FeaturePackedTID, + FeatureVcmpxPermlaneHazard, + FeatureSALUFloatInsts, + FeaturePseudoScalarTrans, + FeatureRestrictedSOffset, + FeatureScalarDwordx3Loads, + FeatureDPPSrc1SGPR, + FeatureBitOp3Insts, + FeatureTanhInsts, + FeatureTensorCvtLutInsts, + FeatureTransposeLoadF4F6Insts, + Feature1_5xVGPRs, + FeatureBF16TransInsts, + FeatureBF16ConversionInsts, + FeatureBF16PackedInsts, + FeaturePrngInst, + FeaturePermlane16Swap, + FeatureAshrPkInsts, + FeatureAtomicFMinFMaxF64GlobalInsts, + FeatureAtomicFMinFMaxF64FlatInsts, + FeatureFmaMixBF16Insts, + FeatureGloballyAddressableScratch, + FeatureCvtPkF16F32Inst, + FeatureF16BF16ToFP6BF6ConversionScaleInsts, + FeatureIEEEMinimumMaximumInsts, + FeatureClusters, + FeatureCubeInsts, + FeatureLerpInst, + FeatureSadInsts, + FeatureQsadInsts, + FeatureCvtNormInsts, + FeatureCvtPkNormVOP2Insts, + FeatureCvtPkNormVOP3Insts, +]>; + //===----------------------------------------------------------------------===// def AMDGPUInstrInfo : InstrInfo { @@ -2273,7 +2360,7 @@ def isGFX11Plus : def isGFX12Only : Predicate<"Subtarget->getGeneration() == AMDGPUSubtarget::GFX12">, - AssemblerPredicate<(all_of FeatureGFX12Insts)>; + AssemblerPredicate<(all_of FeatureGFX12Insts, (not FeatureGFX13Insts))>; def isGFX12Not12_50 : Predicate<"Subtarget->getGeneration() == AMDGPUSubtarget::GFX12 && !Subtarget->hasGFX1250Insts()">, @@ -2284,12 +2371,13 @@ def isGFX12Plus : AssemblerPredicate<(all_of FeatureGFX12Insts)>; def isGFX12PlusNot12_50 : - Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX12 && !Subtarget->hasGFX1250Insts()">, - AssemblerPredicate<(all_of FeatureGFX12Insts, (not FeatureGFX1250Insts))>; + Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX12 &&" + "(Subtarget->getGeneration() >= AMDGPUSubtarget::GFX13 || !Subtarget->hasGFX1250Insts())">, + AssemblerPredicate<(all_of FeatureGFX12Insts, (any_of FeatureGFX13Insts, (not FeatureGFX1250Insts)))>; def isGFX125xOnly : - Predicate<"Subtarget->hasGFX1250Insts()">, - AssemblerPredicate<(all_of FeatureGFX1250Insts)>; + Predicate<"Subtarget->getGeneration() == AMDGPUSubtarget::GFX12 && Subtarget->hasGFX1250Insts()">, + AssemblerPredicate<(all_of FeatureGFX1250Insts, (not FeatureGFX13Insts))>; def isGFX1250Plus : Predicate<"Subtarget->hasGFX1250Insts()">, @@ -2300,8 +2388,18 @@ def isNotGFX1250Plus : AssemblerPredicate<(all_of (not FeatureGFX1250Insts))>; def isGFX940orGFX1250 : - Predicate<"Subtarget->hasGFX940Insts() || Subtarget->hasGFX1250Insts()">, - AssemblerPredicate<(any_of FeatureGFX940Insts, FeatureGFX1250Insts)>; + Predicate<"Subtarget->hasGFX940Insts() ||" + "(Subtarget->hasGFX1250Insts() && !Subtarget->hasGFX13Insts())">, + AssemblerPredicate<(any_of FeatureGFX940Insts, + (all_of FeatureGFX1250Insts, (not FeatureGFX13Insts)))>; + +def isGFX13Only : + Predicate<"Subtarget->getGeneration() == AMDGPUSubtarget::GFX13">, + AssemblerPredicate<(all_of FeatureGFX13Insts)>; + +def isGFX13Plus : + Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX13">, + AssemblerPredicate<(all_of FeatureGFX13Insts)>; def HasAtomicCondSubClampFlatInsts : Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX12">, diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp index 5686e0c19f85..7d2df427ddd6 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp @@ -660,7 +660,7 @@ AMDGPUAsmPrinter::getAmdhsaKernelDescriptor(const MachineFunction &MF, (void)PGRM_Rsrc3; (void)EvaluatableRsrc3; assert(STM.getGeneration() >= AMDGPUSubtarget::GFX10 || - STM.hasGFX90AInsts() || AMDGPU::isGFX1250(STM) || !EvaluatableRsrc3 || + STM.hasGFX90AInsts() || STM.hasGFX1250Insts() || !EvaluatableRsrc3 || static_cast(PGRM_Rsrc3) == 0); KernelDescriptor.compute_pgm_rsrc3 = CurrentProgramInfo.ComputePGMRSrc3; @@ -831,7 +831,7 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) { " AccumOffset: " + getMCExprStr(AdjustedAccum), false); } - if (AMDGPU::isGFX1250(STM)) + if (STM.hasGFX1250Insts()) OutStreamer->emitRawComment( " NamedBarCnt: " + getMCExprStr(CurrentProgramInfo.NamedBarCnt), false); @@ -867,7 +867,7 @@ bool AMDGPUAsmPrinter::runOnMachineFunction(MachineFunction &MF) { [[maybe_unused]] int64_t PGMRSrc3; assert(STM.getGeneration() >= AMDGPUSubtarget::GFX10 || - STM.hasGFX90AInsts() || AMDGPU::isGFX1250(STM) || + STM.hasGFX90AInsts() || STM.hasGFX1250Insts() || (CurrentProgramInfo.ComputePGMRSrc3->evaluateAsAbsolute(PGMRSrc3) && static_cast(PGMRSrc3) == 0)); if (STM.hasGFX90AInsts()) { @@ -1288,7 +1288,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo, amdhsa::COMPUTE_PGM_RSRC3_GFX90A_TG_SPLIT_SHIFT); } - if (AMDGPU::isGFX1250(STM)) + if (STM.hasGFX1250Insts()) ProgInfo.ComputePGMRSrc3 = SetBits(ProgInfo.ComputePGMRSrc3, ProgInfo.NamedBarCnt, amdhsa::COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT, diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp index f3d17862e3e1..7c84edf2a60b 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp @@ -71,7 +71,7 @@ public: if (SIInstrInfo::isTRANS(MI)) return TRANS; // WMMA XDL ops are treated the same as TRANS. - if (AMDGPU::isGFX1250(*ST) && SII->isXDLWMMA(MI)) + if (ST->hasGFX1250Insts() && SII->isXDLWMMA(MI)) return TRANS; if (SIInstrInfo::isVALU(MI)) return VALU; diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index 6a19078d2605..559fb041c424 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -6153,7 +6153,7 @@ AMDGPULegalizerInfo::splitBufferOffsets(MachineIRBuilder &B, // On GFX1250+, voffset and immoffset are zero-extended from 32 bits before // being added, so we can only safely match a 32-bit addition with no unsigned // overflow. - bool CheckNUW = AMDGPU::isGFX1250(ST); + bool CheckNUW = ST.hasGFX1250Insts(); std::tie(BaseReg, ImmOffset) = AMDGPU::getBaseWithConstantOffset( MRI, OrigOffset, /*KnownBits=*/nullptr, CheckNUW); diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index 1623c7ae5c3b..e5dc48b6998e 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -42,6 +42,7 @@ public: GFX10 = 9, GFX11 = 10, GFX12 = 11, + GFX13 = 12, }; private: diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp index fa4b790b88a7..02abad3eb45a 100644 --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -1551,6 +1551,12 @@ public: bool isGFX1250() const { return AMDGPU::isGFX1250(getSTI()); } + bool isGFX1250Plus() const { return AMDGPU::isGFX1250Plus(getSTI()); } + + bool isGFX13() const { return AMDGPU::isGFX13(getSTI()); } + + bool isGFX13Plus() const { return AMDGPU::isGFX13Plus(getSTI()); } + bool isGFX10_AEncoding() const { return AMDGPU::isGFX10_AEncoding(getSTI()); } bool isGFX10_BEncoding() const { @@ -2931,7 +2937,7 @@ MCRegister AMDGPUAsmParser::getRegularReg(RegisterKind RegKind, unsigned RegNum, return AMDGPU::NoRegister; } - if (RegKind == IS_VGPR && !isGFX1250() && RegIdx + RegWidth / 32 > 256) { + if (RegKind == IS_VGPR && !isGFX1250Plus() && RegIdx + RegWidth / 32 > 256) { Error(Loc, "register index is out of range"); return MCRegister(); } @@ -3953,7 +3959,7 @@ AMDGPUAsmParser::checkVOPDRegBankConstraints(const MCInst &Inst, bool AsVOPD3) { bool SkipSrc = Opcode == AMDGPU::V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx12 || Opcode == AMDGPU::V_DUAL_MOV_B32_e32_X_MOV_B32_e32_gfx1250 || Opcode == AMDGPU::V_DUAL_MOV_B32_e32_X_MOV_B32_e32_e96_gfx1250; - bool AllowSameVGPR = isGFX1250(); + bool AllowSameVGPR = isGFX1250Plus(); if (AsVOPD3) { // Literal constants are not allowed with VOPD3. for (auto OpName : {OpName::src0X, OpName::src0Y}) { @@ -4087,7 +4093,7 @@ bool AMDGPUAsmParser::tryVOPD(const MCInst &Inst) { // form but switch to VOPD3 otherwise. bool AMDGPUAsmParser::tryAnotherVOPDEncoding(const MCInst &Inst) { const unsigned Opcode = Inst.getOpcode(); - if (!isGFX1250() || !isVOPD(Opcode)) + if (!isGFX1250Plus() || !isVOPD(Opcode)) return false; if (MII.get(Opcode).TSFlags & SIInstrFlags::VOPD3) @@ -5377,7 +5383,7 @@ bool AMDGPUAsmParser::validateCoherencyBits(const MCInst &Inst, unsigned CPol = Inst.getOperand(CPolPos).getImm(); - if (!isGFX1250()) { + if (!isGFX1250Plus()) { if (CPol & CPol::SCAL) { SMLoc S = getImmLoc(AMDGPUOperand::ImmTyCPol, Operands); StringRef CStr(S.getPointer()); @@ -6176,7 +6182,7 @@ bool AMDGPUAsmParser::ParseDirectiveAMDHSAKernel() { return Error(IDRange.Start, "directive requires gfx90a+", IDRange); AccumOffset = ExprVal; } else if (ID == ".amdhsa_named_barrier_count") { - if (!isGFX1250()) + if (!isGFX1250Plus()) return Error(IDRange.Start, "directive requires gfx1250+", IDRange); NamedBarCnt = ExprVal; } else if (ID == ".amdhsa_reserve_vcc") { @@ -6376,7 +6382,7 @@ bool AMDGPUAsmParser::ParseDirectiveAMDHSAKernel() { return TokError("amdgpu_user_sgpr_count smaller than than implied by " "enabled user SGPRs"); - if (isGFX1250()) { + if (isGFX1250Plus()) { if (!isUInt(UserSGPRCount)) return TokError("too many user SGPRs enabled"); AMDGPU::MCKernelDescriptor::bits_set( @@ -6431,7 +6437,7 @@ bool AMDGPUAsmParser::ParseDirectiveAMDHSAKernel() { getContext()); } - if (isGFX1250()) + if (isGFX1250Plus()) MCKernelDescriptor::bits_set(KD.compute_pgm_rsrc3, NamedBarCnt, COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT_SHIFT, COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT, diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp index cc03fb988ddb..a22d92632ef5 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @@ -580,7 +580,7 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, // Try to decode DPP and SDWA first to solve conflict with VOP1 and VOP2 // encodings - if (isGFX1250() && Bytes.size() >= 16) { + if (isGFX1250Plus() && Bytes.size() >= 16) { std::bitset<128> DecW = eat16Bytes(Bytes); if (tryDecodeInst(DecoderTableGFX1250128, MI, DecW, Address, CS)) break; @@ -694,6 +694,9 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, tryDecodeInst(DecoderTableGFX12W6464, MI, QW, Address, CS)) break; + if (isGFX13() && tryDecodeInst(DecoderTableGFX1364, MI, QW, Address, CS)) + break; + // Reinitialize Bytes Bytes = Bytes_.slice(0, MaxInstBytesNum); } @@ -2242,6 +2245,16 @@ bool AMDGPUDisassembler::isGFX12Plus() const { bool AMDGPUDisassembler::isGFX1250() const { return AMDGPU::isGFX1250(STI); } +bool AMDGPUDisassembler::isGFX1250Plus() const { + return AMDGPU::isGFX1250Plus(STI); +} + +bool AMDGPUDisassembler::isGFX13() const { return AMDGPU::isGFX13(STI); } + +bool AMDGPUDisassembler::isGFX13Plus() const { + return AMDGPU::isGFX13Plus(STI); +} + bool AMDGPUDisassembler::hasArchitectedFlatScratch() const { return STI.hasFeature(AMDGPU::FeatureArchitectedFlatScratch); } @@ -2398,7 +2411,7 @@ Expected AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC1( } // Bits [27]. - if (isGFX1250()) { + if (isGFX1250Plus()) { PRINT_PSEUDO_DIRECTIVE_COMMENT("FLAT_SCRATCH_IS_NV", COMPUTE_PGM_RSRC1_GFX125_FLAT_SCRATCH_IS_NV); } else { @@ -2412,7 +2425,7 @@ Expected AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC1( // Bits [29-31]. if (isGFX10Plus()) { // WGP_MODE is not available on GFX1250. - if (!isGFX1250()) { + if (!isGFX1250Plus()) { PRINT_DIRECTIVE(".amdhsa_workgroup_processor_mode", COMPUTE_PGM_RSRC1_GFX10_PLUS_WGP_MODE); } @@ -2543,7 +2556,7 @@ Expected AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC3( } // Bits [14-21]. - if (isGFX1250()) { + if (isGFX1250Plus()) { PRINT_DIRECTIVE(".amdhsa_named_barrier_count", COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT); PRINT_PSEUDO_DIRECTIVE_COMMENT( diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h index ab130dbb08ff..28f71d8d7556 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h @@ -182,6 +182,9 @@ public: bool isGFX12() const; bool isGFX12Plus() const; bool isGFX1250() const; + bool isGFX1250Plus() const; + bool isGFX13() const; + bool isGFX13Plus() const; bool hasArchitectedFlatScratch() const; bool hasKernargPreload() const; diff --git a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp index f2ce5bf2b79c..d504d8618b90 100644 --- a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp +++ b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp @@ -1932,7 +1932,7 @@ bool GCNHazardRecognizer::fixVALUTransUseHazard(MachineInstr *MI) { } bool GCNHazardRecognizer::fixVALUTransCoexecutionHazards(MachineInstr *MI) { - if (!AMDGPU::isGFX1250(ST) || // Coexecution disabled. + if (!ST.hasGFX1250Insts() || // Coexecution disabled. !SIInstrInfo::isVALU(*MI) || SIInstrInfo::isTRANS(*MI)) return false; @@ -2077,7 +2077,7 @@ static bool IsWMMAHazardInstInCategory(const MachineInstr &MI, } int GCNHazardRecognizer::checkWMMACoexecutionHazards(MachineInstr *MI) { - if (!AMDGPU::isGFX1250(ST)) + if (!ST.hasGFX1250Insts()) return 0; const SIInstrInfo *TII = ST.getInstrInfo(); diff --git a/llvm/lib/Target/AMDGPU/GCNProcessors.td b/llvm/lib/Target/AMDGPU/GCNProcessors.td index e13be8841086..56cb6287d6ef 100644 --- a/llvm/lib/Target/AMDGPU/GCNProcessors.td +++ b/llvm/lib/Target/AMDGPU/GCNProcessors.td @@ -339,5 +339,5 @@ def : ProcessorModel<"gfx1251", GFX1250SpeedModel, //===----------------------------------------------------------------------===// def : ProcessorModel<"gfx1310", GFX12SpeedModel, - FeatureISAVersion12_50.Features + FeatureISAVersion13.Features >; diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp index 27786836fead..f86b42bdc53c 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp @@ -401,7 +401,7 @@ void AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor( EmitMCExpr(KD.kernarg_size); OS << '\n'; - if (isGFX1250(STI)) { + if (isGFX1250Plus(STI)) { PrintField(KD.compute_pgm_rsrc2, amdhsa::COMPUTE_PGM_RSRC2_GFX125_USER_SGPR_COUNT_SHIFT, amdhsa::COMPUTE_PGM_RSRC2_GFX125_USER_SGPR_COUNT, @@ -515,7 +515,7 @@ void AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor( OS << '\n'; } - if (AMDGPU::isGFX1250(STI)) + if (isGFX1250Plus(STI)) PrintField(KD.compute_pgm_rsrc3, amdhsa::COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT_SHIFT, amdhsa::COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT, diff --git a/llvm/lib/Target/AMDGPU/SIDefines.h b/llvm/lib/Target/AMDGPU/SIDefines.h index a7721cdad08b..147ef9dddebf 100644 --- a/llvm/lib/Target/AMDGPU/SIDefines.h +++ b/llvm/lib/Target/AMDGPU/SIDefines.h @@ -46,6 +46,7 @@ enum { GFX11 = 10, GFX12 = 11, GFX1250 = 12, + GFX13 = 13, }; } diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index 33461eb2a0db..18f77ce2d76e 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -11743,7 +11743,7 @@ SITargetLowering::splitBufferOffsets(SDValue Offset, SelectionDAG &DAG) const { // On GFX1250+, voffset and immoffset are zero-extended from 32 bits before // being added, so we can only safely match a 32-bit addition with no // unsigned overflow. - bool CheckNUW = AMDGPU::isGFX1250(*Subtarget); + bool CheckNUW = Subtarget->hasGFX1250Insts(); if (!CheckNUW || isNoUnsignedWrap(N0)) { C1 = cast(N0.getOperand(1)); N0 = N0.getOperand(0); diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index e889c5e75d19..f948053074ae 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -10239,6 +10239,8 @@ static unsigned subtargetEncodingFamily(const GCNSubtarget &ST) { case AMDGPUSubtarget::GFX12: return ST.hasGFX1250Insts() ? SIEncodingFamily::GFX1250 : SIEncodingFamily::GFX12; + case AMDGPUSubtarget::GFX13: + return SIEncodingFamily::GFX13; } llvm_unreachable("Unknown subtarget generation!"); } @@ -11260,7 +11262,7 @@ bool SIInstrInfo::isXDLWMMA(const MachineInstr &MI) const { if (!isWMMA(MI) && !isSWMMAC(MI)) return false; - if (AMDGPU::isGFX1250(ST)) + if (ST.hasGFX1250Insts()) return AMDGPU::getWMMAIsXDL(MI.getOpcode()); return true; diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td index 2ec3ec867448..789a65bce5ec 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -27,6 +27,7 @@ def SIEncodingFamily { int GFX11 = 10; int GFX12 = 11; int GFX1250 = 12; + int GFX13 = 13; } //===----------------------------------------------------------------------===// @@ -3365,7 +3366,8 @@ def getMCOpcodeGen : InstrMapping { [!cast(SIEncodingFamily.GFX940)], [!cast(SIEncodingFamily.GFX11)], [!cast(SIEncodingFamily.GFX12)], - [!cast(SIEncodingFamily.GFX1250)]]; + [!cast(SIEncodingFamily.GFX1250)], + [!cast(SIEncodingFamily.GFX13)]]; } // Get equivalent SOPK instruction. diff --git a/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp b/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp index 2867eb429a72..c16aa3e8a035 100644 --- a/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp +++ b/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp @@ -512,9 +512,9 @@ protected: public: SIGfx12CacheControl(const GCNSubtarget &ST) : SICacheControl(ST) { - // GFX12.0 and GFX12.5 memory models greatly overlap, and in some cases - // the behavior is the same if assuming GFX12.0 in CU mode. - assert(!ST.hasGFX1250Insts() || ST.isCuModeEnabled()); + // GFX120x and GFX125x memory models greatly overlap, and in some cases + // the behavior is the same if assuming GFX120x in CU mode. + assert(!ST.hasGFX1250Insts() || ST.hasGFX13Insts() || ST.isCuModeEnabled()); } bool insertWait(MachineBasicBlock::iterator &MI, SIAtomicScope Scope, diff --git a/llvm/lib/Target/AMDGPU/SMInstructions.td b/llvm/lib/Target/AMDGPU/SMInstructions.td index 781c61b073db..ee8d29c77708 100644 --- a/llvm/lib/Target/AMDGPU/SMInstructions.td +++ b/llvm/lib/Target/AMDGPU/SMInstructions.td @@ -1464,7 +1464,7 @@ class SMEM_Real_gfx12Plus op, SM_Pseudo ps, string opName, class SMEM_Real_gfx12 op, SM_Pseudo ps, string opName = ps.Mnemonic> : SMEM_Real_gfx12Plus { - let AssemblerPredicate = isGFX12Plus; + let AssemblerPredicate = isGFX12Only; let DecoderNamespace = "GFX12"; let Inst{5-0} = !if(ps.has_sbase, sbase{6-1}, ?); @@ -1537,3 +1537,84 @@ multiclass SMEM_Real_Probe_gfx12 op> { defm S_ATC_PROBE : SMEM_Real_Probe_gfx12<0x22>; defm S_ATC_PROBE_BUFFER : SMEM_Real_Probe_gfx12<0x23>; + +//===----------------------------------------------------------------------===// +// GFX13. +//===----------------------------------------------------------------------===// + +class SMEM_Real_gfx13 op, SM_Pseudo ps, string opName = ps.Mnemonic> : + SMEM_Real_gfx12Plus { + let AssemblerPredicate = isGFX13Plus; + let DecoderNamespace = "GFX13"; + + let Inst{5-0} = !if(ps.has_sbase, sbase{6-1}, ?); + let Inst{12-6} = !if(ps.has_sdst, sdst{6-0}, ?); +} + +class SMEM_Real_Prefetch_gfx13 op, SM_Pseudo ps> : + SMEM_Real_gfx13 { + bits<7> sdata; // Only 5 bits of sdata are supported. + + let sdst = ?; + let Inst{12-11} = 0; // Unused sdata bits. + let Inst{10-6} = !if(ps.has_sdst, sdata{4-0}, ?); +} + +class SMEM_Real_Load_gfx13 op, string ps, string opName, OffsetMode offsets> : + SMEM_Real_gfx13(ps # offsets.Variant), opName> { + RegisterClass BaseClass = !cast(ps # offsets.Variant).BaseClass; + let InOperandList = !con((ins BaseClass:$sbase), offsets.Ins, (ins CPol:$cpol)); + + let Inst{20} = cpol{CPolBit.NV}; // non-volatile + let Inst{22-21} = cpol{4-3}; // scope + let Inst{24-23} = cpol{1-0}; // th - only lower 2 bits are supported + let Inst{56} = cpol{CPolBit.SCAL}; // scale offset +} + +multiclass SM_Real_Loads_gfx13 op, string ps = NAME> { + defvar opName = !tolower(NAME); + def _IMM_gfx13 : SMEM_Real_Load_gfx13; + def _SGPR_IMM_gfx13 : SMEM_Real_Load_gfx13; +} + +defm S_LOAD_B32 : SM_Real_Loads_gfx13<0x00, "S_LOAD_DWORD">; +defm S_LOAD_B64 : SM_Real_Loads_gfx13<0x01, "S_LOAD_DWORDX2">; +defm S_LOAD_B96 : SM_Real_Loads_gfx13<0x0e, "S_LOAD_DWORDX3">; +defm S_LOAD_B128 : SM_Real_Loads_gfx13<0x02, "S_LOAD_DWORDX4">; +defm S_LOAD_B256 : SM_Real_Loads_gfx13<0x03, "S_LOAD_DWORDX8">; +defm S_LOAD_B512 : SM_Real_Loads_gfx13<0x04, "S_LOAD_DWORDX16">; + +defm S_LOAD_I8 : SM_Real_Loads_gfx13<0x30>; +defm S_LOAD_U8 : SM_Real_Loads_gfx13<0x31>; +defm S_LOAD_I16 : SM_Real_Loads_gfx13<0x32>; +defm S_LOAD_U16 : SM_Real_Loads_gfx13<0x33>; + +defm S_BUFFER_LOAD_B32 : SM_Real_Loads_gfx13<0x08, "S_BUFFER_LOAD_DWORD">; +defm S_BUFFER_LOAD_B64 : SM_Real_Loads_gfx13<0x09, "S_BUFFER_LOAD_DWORDX2">; +defm S_BUFFER_LOAD_B96 : SM_Real_Loads_gfx13<0x0d, "S_BUFFER_LOAD_DWORDX3">; +defm S_BUFFER_LOAD_B128 : SM_Real_Loads_gfx13<0x0a, "S_BUFFER_LOAD_DWORDX4">; +defm S_BUFFER_LOAD_B256 : SM_Real_Loads_gfx13<0x0b, "S_BUFFER_LOAD_DWORDX8">; +defm S_BUFFER_LOAD_B512 : SM_Real_Loads_gfx13<0x0c, "S_BUFFER_LOAD_DWORDX16">; + +defm S_BUFFER_LOAD_I8 : SM_Real_Loads_gfx13<0x34>; +defm S_BUFFER_LOAD_U8 : SM_Real_Loads_gfx13<0x35>; +defm S_BUFFER_LOAD_I16 : SM_Real_Loads_gfx13<0x36>; +defm S_BUFFER_LOAD_U16 : SM_Real_Loads_gfx13<0x37>; + +def S_DCACHE_INV_gfx13 : SMEM_Real_gfx13<0x020, S_DCACHE_INV>; + +def S_PREFETCH_INST_gfx13 : SMEM_Real_Prefetch_gfx13<0x22, S_PREFETCH_INST>; +def S_PREFETCH_INST_PC_REL_gfx13 : SMEM_Real_Prefetch_gfx13<0x23, S_PREFETCH_INST_PC_REL>; +def S_PREFETCH_DATA_gfx13 : SMEM_Real_Prefetch_gfx13<0x2c, S_PREFETCH_DATA>; +def S_BUFFER_PREFETCH_DATA_gfx13 : SMEM_Real_Prefetch_gfx13<0x2d, S_BUFFER_PREFETCH_DATA>; +def S_PREFETCH_DATA_PC_REL_gfx13 : SMEM_Real_Prefetch_gfx13<0x2e, S_PREFETCH_DATA_PC_REL>; + +multiclass SMEM_Real_Probe_gfx13 op> { + defvar ps = NAME; + def _IMM_gfx13 : SMEM_Real_Prefetch_gfx13(ps#_IMM)>; + def _SGPR_IMM_gfx13 : SMEM_Real_Prefetch_gfx13(ps#_SGPR_OPT_IMM)>; +} + +defm S_ATC_PROBE : SMEM_Real_Probe_gfx13<0x26>; +defm S_ATC_PROBE_BUFFER : SMEM_Real_Probe_gfx13<0x27>; diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp index ce782b025464..ee5a10fb6e8f 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp @@ -99,7 +99,7 @@ static constexpr CustomOperand MsgOperands[] = { {{"MSG_EARLY_PRIM_DEALLOC"}, ID_EARLY_PRIM_DEALLOC, isGFX9_GFX10}, {{"MSG_GS_ALLOC_REQ"}, ID_GS_ALLOC_REQ, isGFX9Plus}, {{"MSG_GET_DOORBELL"}, ID_GET_DOORBELL, isGFX9_GFX10}, - {{"MSG_SAVEWAVE_HAS_TDM"}, ID_SAVEWAVE_HAS_TDM, isGFX1250}, + {{"MSG_SAVEWAVE_HAS_TDM"}, ID_SAVEWAVE_HAS_TDM, isGFX1250Plus}, {{"MSG_GET_DDID"}, ID_GET_DDID, isGFX10}, {{"MSG_SYSMSG"}, ID_SYSMSG}, {{"MSG_RTN_GET_DOORBELL"}, ID_RTN_GET_DOORBELL, isGFX11Plus}, @@ -111,7 +111,7 @@ static constexpr CustomOperand MsgOperands[] = { {{"MSG_RTN_GET_TBA_TO_PC"}, ID_RTN_GET_TBA_TO_PC, isGFX11Plus}, {{"MSG_RTN_GET_SE_AID_ID"}, ID_RTN_GET_SE_AID_ID, isGFX12Plus}, {{"MSG_RTN_GET_CLUSTER_BARRIER_STATE"}, ID_RTN_GET_CLUSTER_BARRIER_STATE, - isGFX1250}, + isGFX1250Plus}, }; static constexpr CustomOperand SysMsgOperands[] = { @@ -213,7 +213,7 @@ static constexpr CustomOperand Operands[] = { {{"HW_REG_POPS_PACKER"}, ID_POPS_PACKER, isGFX10}, {{"HW_REG_WAVE_SCHED_MODE"}, ID_SCHED_MODE, isGFX12Plus}, {{"HW_REG_PERF_SNAPSHOT_DATA"}, ID_PERF_SNAPSHOT_DATA_gfx11, isGFX11}, - {{"HW_REG_IB_STS2"}, ID_IB_STS2, isGFX1250}, + {{"HW_REG_IB_STS2"}, ID_IB_STS2, isGFX1250Plus}, {{"HW_REG_SHADER_CYCLES"}, ID_SHADER_CYCLES, isGFX10_3_GFX11}, {{"HW_REG_SHADER_CYCLES_LO"}, ID_SHADER_CYCLES, isGFX12Plus}, {{"HW_REG_SHADER_CYCLES_HI"}, ID_SHADER_CYCLES_HI, isGFX12Plus}, @@ -221,8 +221,8 @@ static constexpr CustomOperand Operands[] = { {{"HW_REG_DVGPR_ALLOC_LO"}, ID_DVGPR_ALLOC_LO, isGFX12Plus}, {{"HW_REG_WAVE_DVGPR_ALLOC_HI"}, ID_DVGPR_ALLOC_HI, isGFX12Plus}, {{"HW_REG_DVGPR_ALLOC_HI"}, ID_DVGPR_ALLOC_HI, isGFX12Plus}, - {{"HW_REG_XNACK_STATE_PRIV"}, ID_XNACK_STATE_PRIV, isGFX1250}, - {{"HW_REG_XNACK_MASK"}, ID_XNACK_MASK_gfx1250, isGFX1250}, + {{"HW_REG_XNACK_STATE_PRIV"}, ID_XNACK_STATE_PRIV, isGFX1250Plus}, + {{"HW_REG_XNACK_MASK"}, ID_XNACK_MASK_gfx1250, isGFX1250Plus}, }; // clang-format on diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp index 86dc80f378a8..34cdb86cf9ec 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp @@ -2514,7 +2514,7 @@ unsigned getNSAMaxSize(const MCSubtargetInfo &STI, bool HasSampler) { } unsigned getMaxNumUserSGPRs(const MCSubtargetInfo &STI) { - if (isGFX1250(STI)) + if (isGFX1250Plus(STI)) return 32; return 16; } @@ -2581,14 +2581,26 @@ bool isGFX12(const MCSubtargetInfo &STI) { return STI.getFeatureBits()[AMDGPU::FeatureGFX12]; } -bool isGFX12Plus(const MCSubtargetInfo &STI) { return isGFX12(STI); } +bool isGFX12Plus(const MCSubtargetInfo &STI) { + return isGFX12(STI) || isGFX13Plus(STI); +} bool isNotGFX12Plus(const MCSubtargetInfo &STI) { return !isGFX12Plus(STI); } bool isGFX1250(const MCSubtargetInfo &STI) { + return STI.getFeatureBits()[AMDGPU::FeatureGFX1250Insts] && !isGFX13(STI); +} + +bool isGFX1250Plus(const MCSubtargetInfo &STI) { return STI.getFeatureBits()[AMDGPU::FeatureGFX1250Insts]; } +bool isGFX13(const MCSubtargetInfo &STI) { + return STI.getFeatureBits()[AMDGPU::FeatureGFX13]; +} + +bool isGFX13Plus(const MCSubtargetInfo &STI) { return isGFX13(STI); } + bool supportsWGP(const MCSubtargetInfo &STI) { if (isGFX1250(STI)) return false; diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h index 472b26bbdee8..97dfdabc1369 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h @@ -1599,6 +1599,9 @@ bool isGFX11Plus(const MCSubtargetInfo &STI); bool isGFX12(const MCSubtargetInfo &STI); bool isGFX12Plus(const MCSubtargetInfo &STI); bool isGFX1250(const MCSubtargetInfo &STI); +bool isGFX1250Plus(const MCSubtargetInfo &STI); +bool isGFX13(const MCSubtargetInfo &STI); +bool isGFX13Plus(const MCSubtargetInfo &STI); bool supportsWGP(const MCSubtargetInfo &STI); bool isNotGFX12Plus(const MCSubtargetInfo &STI); bool isNotGFX11Plus(const MCSubtargetInfo &STI); diff --git a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll index d71091dc2009..fcfeb099c698 100644 --- a/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll +++ b/llvm/test/CodeGen/AMDGPU/occupancy-levels.ll @@ -21,7 +21,7 @@ ; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W32 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W64 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GCN,GFX1250 %s -; RUN: llc -mtriple=amdgcn -mcpu=gfx1310 < %s | FileCheck --check-prefixes=GCN,GFX1250 %s +; RUN: llc -mtriple=amdgcn -mcpu=gfx1310 < %s | FileCheck --check-prefixes=GCN,GFX1100,GFX1100W32 %s ; GCN-LABEL: {{^}}max_occupancy: ; GFX9: ; Occupancy: 10 diff --git a/llvm/test/MC/AMDGPU/gfx13_smem.s b/llvm/test/MC/AMDGPU/gfx13_smem.s new file mode 100644 index 000000000000..88940d3c411c --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx13_smem.s @@ -0,0 +1,1428 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 6 +// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1310 -show-encoding < %s | FileCheck -check-prefixes=GFX13,GFX13-ASM %s +// RUN: llvm-mc -triple=amdgcn -mcpu=gfx1310 -show-encoding %s | %extract-encodings | llvm-mc -triple=amdgcn -mcpu=gfx1310 -disassemble -show-encoding | FileCheck --strict-whitespace --check-prefixes=GFX13,GFX13-DIS %s + +s_prefetch_inst s[12:13], 16, s4, 2 +// GFX13: s_prefetch_inst s[12:13], 0x10, s4, 2 ; encoding: [0x86,0x40,0x04,0xf4,0x10,0x00,0x00,0x08] + +s_prefetch_inst s[14:15], 0, m0, 7 +// GFX13: s_prefetch_inst s[14:15], 0x0, m0, 7 ; encoding: [0xc7,0x41,0x04,0xf4,0x00,0x00,0x00,0xfa] + +s_prefetch_inst s[14:15], 0x7fffff, m0, 7 +// GFX13: s_prefetch_inst s[14:15], 0x7fffff, m0, 7 ; encoding: [0xc7,0x41,0x04,0xf4,0xff,0xff,0x7f,0xfa] + +s_prefetch_inst s[14:15], -1, m0, 7 +// GFX13: s_prefetch_inst s[14:15], -0x1, m0, 7 ; encoding: [0xc7,0x41,0x04,0xf4,0xff,0xff,0xff,0xfa] + +s_prefetch_inst s[14:15], 100, m0, 31 +// GFX13: s_prefetch_inst s[14:15], 0x64, m0, 31 ; encoding: [0xc7,0x47,0x04,0xf4,0x64,0x00,0x00,0xfa] + +s_prefetch_inst_pc_rel 100, s10, 7 +// GFX13: s_prefetch_inst_pc_rel 0x64, s10, 7 ; encoding: [0xc0,0x61,0x04,0xf4,0x64,0x00,0x00,0x14] + +s_prefetch_data s[18:19], 100, s10, 7 +// GFX13: s_prefetch_data s[18:19], 0x64, s10, 7 ; encoding: [0xc9,0x81,0x05,0xf4,0x64,0x00,0x00,0x14] + +s_prefetch_data_pc_rel 100, s10, 7 +// GFX13: s_prefetch_data_pc_rel 0x64, s10, 7 ; encoding: [0xc0,0xc1,0x05,0xf4,0x64,0x00,0x00,0x14] + +s_buffer_prefetch_data s[20:23], 100, s10, 7 +// GFX13: s_buffer_prefetch_data s[20:23], 0x64, s10, 7 ; encoding: [0xca,0xa1,0x05,0xf4,0x64,0x00,0x00,0x14] + +s_buffer_prefetch_data s[20:23], 100, null, 7 +// GFX13: s_buffer_prefetch_data s[20:23], 0x64, null, 7 ; encoding: [0xca,0xa1,0x05,0xf4,0x64,0x00,0x00,0xf8] + +s_load_i8 s5, s[2:3], s0 +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s101, s[2:3], s0 +// GFX13: s_load_i8 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x19,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 vcc_lo, s[2:3], s0 +// GFX13: s_load_i8 vcc_lo, s[2:3], s0 offset:0x0 ; encoding: [0x81,0x1a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 vcc_hi, s[2:3], s0 +// GFX13: s_load_i8 vcc_hi, s[2:3], s0 offset:0x0 ; encoding: [0xc1,0x1a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[4:5], s0 +// GFX13: s_load_i8 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x01,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[100:101], s0 +// GFX13: s_load_i8 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x01,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, vcc, s0 +// GFX13: s_load_i8 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x01,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s101 +// GFX13: s_load_i8 s5, s[2:3], s101 offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_load_i8 s5, s[2:3], vcc_lo +// GFX13: s_load_i8 s5, s[2:3], vcc_lo offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_load_i8 s5, s[2:3], vcc_hi +// GFX13: s_load_i8 s5, s[2:3], vcc_hi offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_load_i8 s5, s[2:3], m0 +// GFX13: s_load_i8 s5, s[2:3], m0 offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_load_i8 s5, s[2:3], 0x0 +// GFX13: s_load_i8 s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_load_i8 s5, s[2:3], s7 offset:0x12345 +// GFX13: s_load_i8 s5, s[2:3], s7 offset:0x12345 ; encoding: [0x41,0x01,0x06,0xf4,0x45,0x23,0x01,0x0e] + +s_load_u8 s5, s[2:3], s0 +// GFX13: s_load_u8 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x21,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x39,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 vcc_lo, s[2:3], s0 +// GFX13: s_load_u8 vcc_lo, s[2:3], s0 offset:0x0 ; encoding: [0x81,0x3a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 vcc_hi, s[2:3], s0 +// GFX13: s_load_u8 vcc_hi, s[2:3], s0 offset:0x0 ; encoding: [0xc1,0x3a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s5, s[4:5], s0 +// GFX13: s_load_u8 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x21,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s5, s[100:101], s0 +// GFX13: s_load_u8 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x21,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s5, vcc, s0 +// GFX13: s_load_u8 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x21,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s5, s[2:3], s101 +// GFX13: s_load_u8 s5, s[2:3], s101 offset:0x0 ; encoding: [0x41,0x21,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_load_u8 s5, s[2:3], vcc_lo +// GFX13: s_load_u8 s5, s[2:3], vcc_lo offset:0x0 ; encoding: [0x41,0x21,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_load_u8 s5, s[2:3], vcc_hi +// GFX13: s_load_u8 s5, s[2:3], vcc_hi offset:0x0 ; encoding: [0x41,0x21,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_load_u8 s5, s[2:3], m0 +// GFX13: s_load_u8 s5, s[2:3], m0 offset:0x0 ; encoding: [0x41,0x21,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_load_u8 s5, s[2:3], 0x0 +// GFX13: s_load_u8 s5, s[2:3], 0x0 ; encoding: [0x41,0x21,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_load_u8 s5, s[2:3], s7 offset:0x12345 +// GFX13: s_load_u8 s5, s[2:3], s7 offset:0x12345 ; encoding: [0x41,0x21,0x06,0xf4,0x45,0x23,0x01,0x0e] + +s_buffer_load_i8 s5, s[4:7], s0 +// GFX13: s_buffer_load_i8 s5, s[4:7], s0 offset:0x0 ; encoding: [0x42,0x81,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 s101, s[4:7], s0 +// GFX13: s_buffer_load_i8 s101, s[4:7], s0 offset:0x0 ; encoding: [0x42,0x99,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0x9a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_hi, s[4:7], s0 +// GFX13: s_buffer_load_i8 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0x9a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 s5, s[8:11], s0 +// GFX13: s_buffer_load_i8 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0x81,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 s5, s[96:99], s0 +// GFX13: s_buffer_load_i8 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0x81,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 s5, s[4:7], s101 +// GFX13: s_buffer_load_i8 s5, s[4:7], s101 offset:0x0 ; encoding: [0x42,0x81,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_i8 s5, s[4:7], vcc_lo +// GFX13: s_buffer_load_i8 s5, s[4:7], vcc_lo offset:0x0 ; encoding: [0x42,0x81,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_i8 s5, s[4:7], vcc_hi +// GFX13: s_buffer_load_i8 s5, s[4:7], vcc_hi offset:0x0 ; encoding: [0x42,0x81,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_i8 s5, s[4:7], m0 +// GFX13: s_buffer_load_i8 s5, s[4:7], m0 offset:0x0 ; encoding: [0x42,0x81,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_i8 s5, s[4:7], 0x0 +// GFX13: s_buffer_load_i8 s5, s[4:7], 0x0 ; encoding: [0x42,0x81,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_i8 s5, s[4:7], s0 offset:0x12345 +// GFX13: s_buffer_load_i8 s5, s[4:7], s0 offset:0x12345 ; encoding: [0x42,0x81,0x06,0xf4,0x45,0x23,0x01,0x00] + +s_buffer_load_u8 s5, s[4:7], s0 +// GFX13: s_buffer_load_u8 s5, s[4:7], s0 offset:0x0 ; encoding: [0x42,0xa1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s101, s[4:7], s0 +// GFX13: s_buffer_load_u8 s101, s[4:7], s0 offset:0x0 ; encoding: [0x42,0xb9,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 vcc_lo, s[4:7], s0 +// GFX13: s_buffer_load_u8 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0xba,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 vcc_hi, s[4:7], s0 +// GFX13: s_buffer_load_u8 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0xba,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0xa1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[96:99], s0 +// GFX13: s_buffer_load_u8 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0xa1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[4:7], s101 +// GFX13: s_buffer_load_u8 s5, s[4:7], s101 offset:0x0 ; encoding: [0x42,0xa1,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_u8 s5, s[4:7], vcc_lo +// GFX13: s_buffer_load_u8 s5, s[4:7], vcc_lo offset:0x0 ; encoding: [0x42,0xa1,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_u8 s5, s[4:7], vcc_hi +// GFX13: s_buffer_load_u8 s5, s[4:7], vcc_hi offset:0x0 ; encoding: [0x42,0xa1,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_u8 s5, s[4:7], m0 +// GFX13: s_buffer_load_u8 s5, s[4:7], m0 offset:0x0 ; encoding: [0x42,0xa1,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_u8 s5, s[4:7], 0x0 +// GFX13: s_buffer_load_u8 s5, s[4:7], 0x0 ; encoding: [0x42,0xa1,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_u8 s5, s[4:7], s0 offset:0x12345 +// GFX13: s_buffer_load_u8 s5, s[4:7], s0 offset:0x12345 ; encoding: [0x42,0xa1,0x06,0xf4,0x45,0x23,0x01,0x00] + +s_load_i16 s5, s[2:3], s0 +// GFX13: s_load_i16 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x41,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s101, s[2:3], s0 +// GFX13: s_load_i16 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x59,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 vcc_lo, s[2:3], s0 +// GFX13: s_load_i16 vcc_lo, s[2:3], s0 offset:0x0 ; encoding: [0x81,0x5a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 vcc_hi, s[2:3], s0 +// GFX13: s_load_i16 vcc_hi, s[2:3], s0 offset:0x0 ; encoding: [0xc1,0x5a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[4:5], s0 +// GFX13: s_load_i16 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x41,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x41,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, vcc, s0 +// GFX13: s_load_i16 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x41,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[2:3], s101 +// GFX13: s_load_i16 s5, s[2:3], s101 offset:0x0 ; encoding: [0x41,0x41,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_load_i16 s5, s[2:3], vcc_lo +// GFX13: s_load_i16 s5, s[2:3], vcc_lo offset:0x0 ; encoding: [0x41,0x41,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_load_i16 s5, s[2:3], vcc_hi +// GFX13: s_load_i16 s5, s[2:3], vcc_hi offset:0x0 ; encoding: [0x41,0x41,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_load_i16 s5, s[2:3], m0 +// GFX13: s_load_i16 s5, s[2:3], m0 offset:0x0 ; encoding: [0x41,0x41,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_load_i16 s5, s[2:3], 0x0 +// GFX13: s_load_i16 s5, s[2:3], 0x0 ; encoding: [0x41,0x41,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_load_i16 s5, s[2:3], s7 offset:0x12345 +// GFX13: s_load_i16 s5, s[2:3], s7 offset:0x12345 ; encoding: [0x41,0x41,0x06,0xf4,0x45,0x23,0x01,0x0e] + +s_load_u16 s5, s[2:3], s0 +// GFX13: s_load_u16 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x61,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s101, s[2:3], s0 +// GFX13: s_load_u16 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x79,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 vcc_lo, s[2:3], s0 +// GFX13: s_load_u16 vcc_lo, s[2:3], s0 offset:0x0 ; encoding: [0x81,0x7a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 vcc_hi, s[2:3], s0 +// GFX13: s_load_u16 vcc_hi, s[2:3], s0 offset:0x0 ; encoding: [0xc1,0x7a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, s[4:5], s0 +// GFX13: s_load_u16 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x61,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, s[100:101], s0 +// GFX13: s_load_u16 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x61,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x61,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, s[2:3], s101 +// GFX13: s_load_u16 s5, s[2:3], s101 offset:0x0 ; encoding: [0x41,0x61,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_load_u16 s5, s[2:3], vcc_lo +// GFX13: s_load_u16 s5, s[2:3], vcc_lo offset:0x0 ; encoding: [0x41,0x61,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_load_u16 s5, s[2:3], vcc_hi +// GFX13: s_load_u16 s5, s[2:3], vcc_hi offset:0x0 ; encoding: [0x41,0x61,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_load_u16 s5, s[2:3], m0 +// GFX13: s_load_u16 s5, s[2:3], m0 offset:0x0 ; encoding: [0x41,0x61,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_load_u16 s5, s[2:3], 0x0 +// GFX13: s_load_u16 s5, s[2:3], 0x0 ; encoding: [0x41,0x61,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_load_u16 s5, s[2:3], s7 offset:0x12345 +// GFX13: s_load_u16 s5, s[2:3], s7 offset:0x12345 ; encoding: [0x41,0x61,0x06,0xf4,0x45,0x23,0x01,0x0e] + +s_buffer_load_i16 s5, s[4:7], s0 +// GFX13: s_buffer_load_i16 s5, s[4:7], s0 offset:0x0 ; encoding: [0x42,0xc1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 s101, s[4:7], s0 +// GFX13: s_buffer_load_i16 s101, s[4:7], s0 offset:0x0 ; encoding: [0x42,0xd9,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_lo, s[4:7], s0 +// GFX13: s_buffer_load_i16 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0xda,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0xda,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 s5, s[8:11], s0 +// GFX13: s_buffer_load_i16 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0xc1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 s5, s[96:99], s0 +// GFX13: s_buffer_load_i16 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0xc1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 s5, s[4:7], s101 +// GFX13: s_buffer_load_i16 s5, s[4:7], s101 offset:0x0 ; encoding: [0x42,0xc1,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_i16 s5, s[4:7], vcc_lo +// GFX13: s_buffer_load_i16 s5, s[4:7], vcc_lo offset:0x0 ; encoding: [0x42,0xc1,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_i16 s5, s[4:7], vcc_hi +// GFX13: s_buffer_load_i16 s5, s[4:7], vcc_hi offset:0x0 ; encoding: [0x42,0xc1,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_i16 s5, s[4:7], m0 +// GFX13: s_buffer_load_i16 s5, s[4:7], m0 offset:0x0 ; encoding: [0x42,0xc1,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_i16 s5, s[4:7], 0x0 +// GFX13: s_buffer_load_i16 s5, s[4:7], 0x0 ; encoding: [0x42,0xc1,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_i16 s5, s[4:7], s0 offset:0x12345 +// GFX13: s_buffer_load_i16 s5, s[4:7], s0 offset:0x12345 ; encoding: [0x42,0xc1,0x06,0xf4,0x45,0x23,0x01,0x00] + +s_buffer_load_u16 s5, s[4:7], s0 +// GFX13: s_buffer_load_u16 s5, s[4:7], s0 offset:0x0 ; encoding: [0x42,0xe1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s101, s[4:7], s0 +// GFX13: s_buffer_load_u16 s101, s[4:7], s0 offset:0x0 ; encoding: [0x42,0xf9,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 vcc_lo, s[4:7], s0 +// GFX13: s_buffer_load_u16 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0xfa,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 vcc_hi, s[4:7], s0 +// GFX13: s_buffer_load_u16 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0xfa,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[8:11], s0 +// GFX13: s_buffer_load_u16 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0xe1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0xe1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[4:7], s101 +// GFX13: s_buffer_load_u16 s5, s[4:7], s101 offset:0x0 ; encoding: [0x42,0xe1,0x06,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_u16 s5, s[4:7], vcc_lo +// GFX13: s_buffer_load_u16 s5, s[4:7], vcc_lo offset:0x0 ; encoding: [0x42,0xe1,0x06,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_u16 s5, s[4:7], vcc_hi +// GFX13: s_buffer_load_u16 s5, s[4:7], vcc_hi offset:0x0 ; encoding: [0x42,0xe1,0x06,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_u16 s5, s[4:7], m0 +// GFX13: s_buffer_load_u16 s5, s[4:7], m0 offset:0x0 ; encoding: [0x42,0xe1,0x06,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_u16 s5, s[4:7], 0x0 +// GFX13: s_buffer_load_u16 s5, s[4:7], 0x0 ; encoding: [0x42,0xe1,0x06,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_u16 s5, s[4:7], s0 offset:0x12345 +// GFX13: s_buffer_load_u16 s5, s[4:7], s0 offset:0x12345 ; encoding: [0x42,0xe1,0x06,0xf4,0x45,0x23,0x01,0x00] + +s_load_b32 s5, s[2:3], s0 +// GFX13: s_load_b32 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x01,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s101, s[2:3], s0 +// GFX13: s_load_b32 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x19,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 vcc_lo, s[2:3], s0 +// GFX13: s_load_b32 vcc_lo, s[2:3], s0 offset:0x0 ; encoding: [0x81,0x1a,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 vcc_hi, s[2:3], s0 +// GFX13: s_load_b32 vcc_hi, s[2:3], s0 offset:0x0 ; encoding: [0xc1,0x1a,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x01,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[100:101], s0 +// GFX13: s_load_b32 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x01,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, vcc, s0 +// GFX13: s_load_b32 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x01,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[2:3], s101 +// GFX13: s_load_b32 s5, s[2:3], s101 offset:0x0 ; encoding: [0x41,0x01,0x00,0xf4,0x00,0x00,0x00,0xca] + +s_load_b32 s5, s[2:3], vcc_lo +// GFX13: s_load_b32 s5, s[2:3], vcc_lo offset:0x0 ; encoding: [0x41,0x01,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b32 s5, s[2:3], vcc_hi +// GFX13: s_load_b32 s5, s[2:3], vcc_hi offset:0x0 ; encoding: [0x41,0x01,0x00,0xf4,0x00,0x00,0x00,0xd6] + +s_load_b32 s5, s[2:3], m0 +// GFX13: s_load_b32 s5, s[2:3], m0 offset:0x0 ; encoding: [0x41,0x01,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b32 s5, s[2:3], 0x0 +// GFX13: s_load_b32 s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x00,0xf4,0x00,0x00,0x00,0xf8] + +s_load_b32 s5, s[2:3], s7 offset:0x12345 +// GFX13: s_load_b32 s5, s[2:3], s7 offset:0x12345 ; encoding: [0x41,0x01,0x00,0xf4,0x45,0x23,0x01,0x0e] + +s_load_b64 s[10:11], s[2:3], s0 +// GFX13: s_load_b64 s[10:11], s[2:3], s0 offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 s[12:13], s[2:3], s0 +// GFX13: s_load_b64 s[12:13], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x23,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 s[100:101], s[2:3], s0 +// GFX13: s_load_b64 s[100:101], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x39,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 vcc, s[2:3], s0 +// GFX13: s_load_b64 vcc, s[2:3], s0 offset:0x0 ; encoding: [0x81,0x3a,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 s[10:11], s[4:5], s0 +// GFX13: s_load_b64 s[10:11], s[4:5], s0 offset:0x0 ; encoding: [0x82,0x22,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 s[10:11], s[100:101], s0 +// GFX13: s_load_b64 s[10:11], s[100:101], s0 offset:0x0 ; encoding: [0xb2,0x22,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 s[10:11], vcc, s0 +// GFX13: s_load_b64 s[10:11], vcc, s0 offset:0x0 ; encoding: [0xb5,0x22,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b64 s[10:11], s[2:3], s101 +// GFX13: s_load_b64 s[10:11], s[2:3], s101 offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xca] + +s_load_b64 s[10:11], s[2:3], vcc_lo +// GFX13: s_load_b64 s[10:11], s[2:3], vcc_lo offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b64 s[10:11], s[2:3], vcc_hi +// GFX13: s_load_b64 s[10:11], s[2:3], vcc_hi offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xd6] + +s_load_b64 s[10:11], s[2:3], m0 +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], 0x0 +// GFX13: s_load_b64 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xf8] + +s_load_b96 s[20:22], s[2:3], s0 +// GFX13: s_load_b96 s[20:22], s[2:3], s0 offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_load_b96 s[24:26], s[2:3], s0 +// GFX13: s_load_b96 s[24:26], s[2:3], s0 offset:0x0 ; encoding: [0x01,0xc6,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_load_b96 s[96:98], s[2:3], s0 +// GFX13: s_load_b96 s[96:98], s[2:3], s0 offset:0x0 ; encoding: [0x01,0xd8,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_load_b96 s[20:22], s[4:5], s0 +// GFX13: s_load_b96 s[20:22], s[4:5], s0 offset:0x0 ; encoding: [0x02,0xc5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_load_b96 s[20:22], s[100:101], s0 +// GFX13: s_load_b96 s[20:22], s[100:101], s0 offset:0x0 ; encoding: [0x32,0xc5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_load_b96 s[20:22], vcc, s0 +// GFX13: s_load_b96 s[20:22], vcc, s0 offset:0x0 ; encoding: [0x35,0xc5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_load_b96 s[20:22], s[2:3], s101 +// GFX13: s_load_b96 s[20:22], s[2:3], s101 offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_load_b96 s[20:22], s[2:3], vcc_lo +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_hi +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_hi offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_load_b96 s[20:22], s[2:3], m0 +// GFX13: s_load_b96 s[20:22], s[2:3], m0 offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b96 s[20:22], s[2:3], 0x0 +// GFX13: s_load_b96 s[20:22], s[2:3], 0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_load_b128 s[20:23], s[2:3], s0 +// GFX13: s_load_b128 s[20:23], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b128 s[24:27], s[2:3], s0 +// GFX13: s_load_b128 s[24:27], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x46,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b128 s[96:99], s[2:3], s0 +// GFX13: s_load_b128 s[96:99], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x58,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b128 s[20:23], s[4:5], s0 +// GFX13: s_load_b128 s[20:23], s[4:5], s0 offset:0x0 ; encoding: [0x02,0x45,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b128 s[20:23], s[100:101], s0 +// GFX13: s_load_b128 s[20:23], s[100:101], s0 offset:0x0 ; encoding: [0x32,0x45,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b128 s[20:23], vcc, s0 +// GFX13: s_load_b128 s[20:23], vcc, s0 offset:0x0 ; encoding: [0x35,0x45,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b128 s[20:23], s[2:3], s101 +// GFX13: s_load_b128 s[20:23], s[2:3], s101 offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xca] + +s_load_b128 s[20:23], s[2:3], vcc_lo +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_hi +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_hi offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xd6] + +s_load_b128 s[20:23], s[2:3], m0 +// GFX13: s_load_b128 s[20:23], s[2:3], m0 offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b128 s[20:23], s[2:3], 0x0 +// GFX13: s_load_b128 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xf8] + +s_load_b256 s[20:27], s[2:3], s0 +// GFX13: s_load_b256 s[20:27], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x65,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[24:31], s[2:3], s0 +// GFX13: s_load_b256 s[24:31], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x66,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x77,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[20:27], s[4:5], s0 +// GFX13: s_load_b256 s[20:27], s[4:5], s0 offset:0x0 ; encoding: [0x02,0x65,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[20:27], s[100:101], s0 +// GFX13: s_load_b256 s[20:27], s[100:101], s0 offset:0x0 ; encoding: [0x32,0x65,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[20:27], vcc, s0 +// GFX13: s_load_b256 s[20:27], vcc, s0 offset:0x0 ; encoding: [0x35,0x65,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[20:27], s[2:3], s101 +// GFX13: s_load_b256 s[20:27], s[2:3], s101 offset:0x0 ; encoding: [0x01,0x65,0x00,0xf4,0x00,0x00,0x00,0xca] + +s_load_b256 s[20:27], s[2:3], vcc_lo +// GFX13: s_load_b256 s[20:27], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0x65,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b256 s[20:27], s[2:3], vcc_hi +// GFX13: s_load_b256 s[20:27], s[2:3], vcc_hi offset:0x0 ; encoding: [0x01,0x65,0x00,0xf4,0x00,0x00,0x00,0xd6] + +s_load_b256 s[20:27], s[2:3], m0 +// GFX13: s_load_b256 s[20:27], s[2:3], m0 offset:0x0 ; encoding: [0x01,0x65,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b256 s[20:27], s[2:3], 0x0 +// GFX13: s_load_b256 s[20:27], s[2:3], 0x0 ; encoding: [0x01,0x65,0x00,0xf4,0x00,0x00,0x00,0xf8] + +s_load_b512 s[20:35], s[2:3], s0 +// GFX13: s_load_b512 s[20:35], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x85,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[24:39], s[2:3], s0 +// GFX13: s_load_b512 s[24:39], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x86,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[84:99], s[2:3], s0 +// GFX13: s_load_b512 s[84:99], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x95,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 ; encoding: [0x02,0x85,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[100:101], s0 +// GFX13: s_load_b512 s[20:35], s[100:101], s0 offset:0x0 ; encoding: [0x32,0x85,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], vcc, s0 +// GFX13: s_load_b512 s[20:35], vcc, s0 offset:0x0 ; encoding: [0x35,0x85,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[2:3], s101 +// GFX13: s_load_b512 s[20:35], s[2:3], s101 offset:0x0 ; encoding: [0x01,0x85,0x00,0xf4,0x00,0x00,0x00,0xca] + +s_load_b512 s[20:35], s[2:3], vcc_lo +// GFX13: s_load_b512 s[20:35], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0x85,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b512 s[20:35], s[2:3], vcc_hi +// GFX13: s_load_b512 s[20:35], s[2:3], vcc_hi offset:0x0 ; encoding: [0x01,0x85,0x00,0xf4,0x00,0x00,0x00,0xd6] + +s_load_b512 s[20:35], s[2:3], m0 +// GFX13: s_load_b512 s[20:35], s[2:3], m0 offset:0x0 ; encoding: [0x01,0x85,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b512 s[20:35], s[2:3], 0x0 +// GFX13: s_load_b512 s[20:35], s[2:3], 0x0 ; encoding: [0x01,0x85,0x00,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_b32 s5, s[4:7], s0 +// GFX13: s_buffer_load_b32 s5, s[4:7], s0 offset:0x0 ; encoding: [0x42,0x01,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s101, s[4:7], s0 +// GFX13: s_buffer_load_b32 s101, s[4:7], s0 offset:0x0 ; encoding: [0x42,0x19,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 vcc_lo, s[4:7], s0 +// GFX13: s_buffer_load_b32 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0x1a,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 vcc_hi, s[4:7], s0 +// GFX13: s_buffer_load_b32 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0x1a,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[8:11], s0 +// GFX13: s_buffer_load_b32 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0x01,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0x01,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[4:7], s101 +// GFX13: s_buffer_load_b32 s5, s[4:7], s101 offset:0x0 ; encoding: [0x42,0x01,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_b32 s5, s[4:7], vcc_lo +// GFX13: s_buffer_load_b32 s5, s[4:7], vcc_lo offset:0x0 ; encoding: [0x42,0x01,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b32 s5, s[4:7], vcc_hi +// GFX13: s_buffer_load_b32 s5, s[4:7], vcc_hi offset:0x0 ; encoding: [0x42,0x01,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_b32 s5, s[4:7], m0 +// GFX13: s_buffer_load_b32 s5, s[4:7], m0 offset:0x0 ; encoding: [0x42,0x01,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_b32 s5, s[4:7], 0x0 +// GFX13: s_buffer_load_b32 s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_b64 s[10:11], s[4:7], s0 +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[12:13], s[4:7], s0 +// GFX13: s_buffer_load_b64 s[12:13], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x23,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[100:101], s[4:7], s0 +// GFX13: s_buffer_load_b64 s[100:101], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x39,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 vcc, s[4:7], s0 +// GFX13: s_buffer_load_b64 vcc, s[4:7], s0 offset:0x0 ; encoding: [0x82,0x3a,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[8:11], s0 +// GFX13: s_buffer_load_b64 s[10:11], s[8:11], s0 offset:0x0 ; encoding: [0x84,0x22,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[96:99], s0 +// GFX13: s_buffer_load_b64 s[10:11], s[96:99], s0 offset:0x0 ; encoding: [0xb0,0x22,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s101 +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s101 offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_b64 s[10:11], s[4:7], vcc_lo +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], vcc_lo offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b64 s[10:11], s[4:7], vcc_hi +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], vcc_hi offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_b64 s[10:11], s[4:7], m0 +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], m0 offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_b64 s[10:11], s[4:7], 0x0 +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_b96 s[20:22], s[4:7], s0 +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], s0 offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b96 s[24:26], s[4:7], s0 +// GFX13: s_buffer_load_b96 s[24:26], s[4:7], s0 offset:0x0 ; encoding: [0x02,0xa6,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b96 s[96:98], s[4:7], s0 +// GFX13: s_buffer_load_b96 s[96:98], s[4:7], s0 offset:0x0 ; encoding: [0x02,0xb8,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b96 s[20:22], s[8:11], s0 +// GFX13: s_buffer_load_b96 s[20:22], s[8:11], s0 offset:0x0 ; encoding: [0x04,0xa5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b96 s[20:22], s[96:99], s0 +// GFX13: s_buffer_load_b96 s[20:22], s[96:99], s0 offset:0x0 ; encoding: [0x30,0xa5,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b96 s[20:22], s[4:7], s101 +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], s101 offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_hi +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_hi offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_b96 s[20:22], s[4:7], m0 +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], m0 offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_b96 s[20:22], s[4:7], 0x0 +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], 0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_b128 s[20:23], s[4:7], s0 +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b128 s[24:27], s[4:7], s0 +// GFX13: s_buffer_load_b128 s[24:27], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x46,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b128 s[96:99], s[4:7], s0 +// GFX13: s_buffer_load_b128 s[96:99], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x58,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b128 s[20:23], s[8:11], s0 +// GFX13: s_buffer_load_b128 s[20:23], s[8:11], s0 offset:0x0 ; encoding: [0x04,0x45,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b128 s[20:23], s[96:99], s0 +// GFX13: s_buffer_load_b128 s[20:23], s[96:99], s0 offset:0x0 ; encoding: [0x30,0x45,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b128 s[20:23], s[4:7], s101 +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], s101 offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_hi +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_hi offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_b128 s[20:23], s[4:7], m0 +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], m0 offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_b128 s[20:23], s[4:7], 0x0 +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_b256 s[20:27], s[4:7], s0 +// GFX13: s_buffer_load_b256 s[20:27], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x65,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[24:31], s[4:7], s0 +// GFX13: s_buffer_load_b256 s[24:31], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x66,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[92:99], s[4:7], s0 +// GFX13: s_buffer_load_b256 s[92:99], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x77,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 ; encoding: [0x04,0x65,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[96:99], s0 +// GFX13: s_buffer_load_b256 s[20:27], s[96:99], s0 offset:0x0 ; encoding: [0x30,0x65,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[4:7], s101 +// GFX13: s_buffer_load_b256 s[20:27], s[4:7], s101 offset:0x0 ; encoding: [0x02,0x65,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_b256 s[20:27], s[4:7], vcc_lo +// GFX13: s_buffer_load_b256 s[20:27], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0x65,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b256 s[20:27], s[4:7], vcc_hi +// GFX13: s_buffer_load_b256 s[20:27], s[4:7], vcc_hi offset:0x0 ; encoding: [0x02,0x65,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_b256 s[20:27], s[4:7], m0 +// GFX13: s_buffer_load_b256 s[20:27], s[4:7], m0 offset:0x0 ; encoding: [0x02,0x65,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_b256 s[20:27], s[4:7], 0x0 +// GFX13: s_buffer_load_b256 s[20:27], s[4:7], 0x0 ; encoding: [0x02,0x65,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_buffer_load_b512 s[20:35], s[4:7], s0 +// GFX13: s_buffer_load_b512 s[20:35], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x85,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[24:39], s[4:7], s0 +// GFX13: s_buffer_load_b512 s[24:39], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x86,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[84:99], s[4:7], s0 +// GFX13: s_buffer_load_b512 s[84:99], s[4:7], s0 offset:0x0 ; encoding: [0x02,0x95,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[8:11], s0 +// GFX13: s_buffer_load_b512 s[20:35], s[8:11], s0 offset:0x0 ; encoding: [0x04,0x85,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 ; encoding: [0x30,0x85,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[4:7], s101 +// GFX13: s_buffer_load_b512 s[20:35], s[4:7], s101 offset:0x0 ; encoding: [0x02,0x85,0x01,0xf4,0x00,0x00,0x00,0xca] + +s_buffer_load_b512 s[20:35], s[4:7], vcc_lo +// GFX13: s_buffer_load_b512 s[20:35], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0x85,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b512 s[20:35], s[4:7], vcc_hi +// GFX13: s_buffer_load_b512 s[20:35], s[4:7], vcc_hi offset:0x0 ; encoding: [0x02,0x85,0x01,0xf4,0x00,0x00,0x00,0xd6] + +s_buffer_load_b512 s[20:35], s[4:7], m0 +// GFX13: s_buffer_load_b512 s[20:35], s[4:7], m0 offset:0x0 ; encoding: [0x02,0x85,0x01,0xf4,0x00,0x00,0x00,0xfa] + +s_buffer_load_b512 s[20:35], s[4:7], 0x0 +// GFX13: s_buffer_load_b512 s[20:35], s[4:7], 0x0 ; encoding: [0x02,0x85,0x01,0xf4,0x00,0x00,0x00,0xf8] + +s_dcache_inv +// GFX13: s_dcache_inv ; encoding: [0x00,0x00,0x04,0xf4,0x00,0x00,0x00,0x00] + +s_atc_probe 7, s[4:5], s2 +// GFX13: s_atc_probe 7, s[4:5], s2 offset:0x0 ; encoding: [0xc2,0xc1,0x04,0xf4,0x00,0x00,0x00,0x04] + +s_atc_probe 7, s[4:5], 0x64 +// GFX13: s_atc_probe 7, s[4:5], 0x64 ; encoding: [0xc2,0xc1,0x04,0xf4,0x64,0x00,0x00,0xf8] + +s_atc_probe 7, s[4:5], s9 offset:0x64 +// GFX13: s_atc_probe 7, s[4:5], s9 offset:0x64 ; encoding: [0xc2,0xc1,0x04,0xf4,0x64,0x00,0x00,0x12] + +s_atc_probe_buffer 7, s[8:11], s2 +// GFX13: s_atc_probe_buffer 7, s[8:11], s2 offset:0x0 ; encoding: [0xc4,0xe1,0x04,0xf4,0x00,0x00,0x00,0x04] + +s_atc_probe_buffer 7, s[8:11], 0x64 +// GFX13: s_atc_probe_buffer 7, s[8:11], 0x64 ; encoding: [0xc4,0xe1,0x04,0xf4,0x64,0x00,0x00,0xf8] + +s_atc_probe_buffer 7, s[8:11], s9 offset:0x64 +// GFX13: s_atc_probe_buffer 7, s[8:11], s9 offset:0x64 ; encoding: [0xc4,0xe1,0x04,0xf4,0x64,0x00,0x00,0x12] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x01,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x42,0x01,0x80,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x42,0x01,0x00,0xf5,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x42,0x01,0x80,0xf5,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 ; encoding: [0x42,0x01,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x42,0x01,0x20,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x42,0x01,0x40,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x42,0x01,0x60,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x42,0x01,0x20,0xf5,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x42,0x01,0xa0,0xf5,0x00,0x00,0x00,0x00] + +s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_b32 s5, s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x42,0x01,0x60,0xf5,0x00,0x00,0x00,0x00] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x81,0x22,0x80,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x81,0x22,0x00,0xf5,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x81,0x22,0x80,0xf5,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 ; encoding: [0x81,0x22,0x00,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_SE ; encoding: [0x81,0x22,0x20,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x81,0x22,0x40,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x81,0x22,0x60,0xf4,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x81,0x22,0x20,0xf5,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x81,0x22,0xa0,0xf5,0x00,0x00,0x00,0xfa] + +s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_b64 s[10:11], s[2:3], m0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x81,0x22,0x60,0xf5,0x00,0x00,0x00,0xfa] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_NT ; encoding: [0x01,0xc5,0x81,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT ; encoding: [0x01,0xc5,0x01,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU ; encoding: [0x01,0xc5,0x81,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_CU +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0xc5,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SE +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SE ; encoding: [0x01,0xc5,0x21,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_DEV ; encoding: [0x01,0xc5,0x41,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SYS ; encoding: [0x01,0xc5,0x61,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x01,0xc5,0x21,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x01,0xc5,0xa1,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_b96 s[20:22], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x01,0xc5,0x61,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_NT ; encoding: [0x01,0x45,0x80,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT ; encoding: [0x01,0x45,0x00,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU ; encoding: [0x01,0x45,0x80,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_CU +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 ; encoding: [0x01,0x45,0x00,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SE +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SE ; encoding: [0x01,0x45,0x20,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_DEV ; encoding: [0x01,0x45,0x40,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 scope:SCOPE_SYS ; encoding: [0x01,0x45,0x60,0xf4,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x01,0x45,0x20,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x01,0x45,0xa0,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_b128 s[20:23], s[2:3], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x01,0x45,0x60,0xf5,0x00,0x00,0x00,0xd4] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x77,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x01,0x77,0x80,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x01,0x77,0x00,0xf5,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x01,0x77,0x80,0xf5,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 ; encoding: [0x01,0x77,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x01,0x77,0x20,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x01,0x77,0x40,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x01,0x77,0x60,0xf4,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x01,0x77,0x20,0xf5,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x01,0x77,0xa0,0xf5,0x00,0x00,0x00,0x00] + +s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_b256 s[92:99], s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x01,0x77,0x60,0xf5,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 ; encoding: [0x02,0x85,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x02,0x85,0x80,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x02,0x85,0x00,0xf5,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x02,0x85,0x80,0xf5,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 ; encoding: [0x02,0x85,0x00,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x02,0x85,0x20,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x02,0x85,0x40,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x02,0x85,0x60,0xf4,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x02,0x85,0x20,0xf5,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x02,0x85,0xa0,0xf5,0x00,0x00,0x00,0x00] + +s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_b512 s[20:35], s[4:5], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x02,0x85,0x60,0xf5,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x41,0x01,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x41,0x01,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x41,0x01,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x01,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x41,0x01,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x41,0x01,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x41,0x01,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x41,0x01,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x41,0x01,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_i8 s5, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x41,0x01,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x39,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x41,0x39,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x41,0x39,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x41,0x39,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 ; encoding: [0x41,0x39,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x41,0x39,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x41,0x39,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x41,0x39,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x41,0x39,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x41,0x39,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_u8 s101, s[2:3], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x41,0x39,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x41,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x72,0x41,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x72,0x41,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x72,0x41,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 ; encoding: [0x72,0x41,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x72,0x41,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x72,0x41,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x72,0x41,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x72,0x41,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x72,0x41,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_i16 s5, s[100:101], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x72,0x41,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x61,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x75,0x61,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x75,0x61,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x75,0x61,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 ; encoding: [0x75,0x61,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x75,0x61,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x75,0x61,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x75,0x61,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x75,0x61,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x75,0x61,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_load_u16 s5, vcc, s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x75,0x61,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0x01,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x70,0x01,0x81,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x70,0x01,0x01,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x70,0x01,0x81,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0x01,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x70,0x01,0x21,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x70,0x01,0x41,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x70,0x01,0x61,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x70,0x01,0x21,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x70,0x01,0xa1,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_b32 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x70,0x01,0x61,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x82,0x22,0x81,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x82,0x22,0x01,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x82,0x22,0x81,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 ; encoding: [0x82,0x22,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x82,0x22,0x21,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x82,0x22,0x41,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x82,0x22,0x61,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x82,0x22,0x21,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x82,0x22,0xa1,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_b64 s[10:11], s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x82,0x22,0x61,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_NT ; encoding: [0x02,0xa5,0x81,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT ; encoding: [0x02,0xa5,0x01,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU ; encoding: [0x02,0xa5,0x81,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0xa5,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SE ; encoding: [0x02,0xa5,0x21,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_DEV ; encoding: [0x02,0xa5,0x41,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SYS ; encoding: [0x02,0xa5,0x61,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x02,0xa5,0x21,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x02,0xa5,0xa1,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_b96 s[20:22], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x02,0xa5,0x61,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_NT ; encoding: [0x02,0x45,0x81,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT ; encoding: [0x02,0x45,0x01,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU ; encoding: [0x02,0x45,0x81,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 ; encoding: [0x02,0x45,0x01,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SE ; encoding: [0x02,0x45,0x21,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_DEV ; encoding: [0x02,0x45,0x41,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 scope:SCOPE_SYS ; encoding: [0x02,0x45,0x61,0xf4,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x02,0x45,0x21,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x02,0x45,0xa1,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_b128 s[20:23], s[4:7], vcc_lo offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x02,0x45,0x61,0xf5,0x00,0x00,0x00,0xd4] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 ; encoding: [0x04,0x65,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x04,0x65,0x81,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x04,0x65,0x01,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x04,0x65,0x81,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 ; encoding: [0x04,0x65,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x04,0x65,0x21,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x04,0x65,0x41,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x04,0x65,0x61,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x04,0x65,0x21,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x04,0x65,0xa1,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_b256 s[20:27], s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x04,0x65,0x61,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 ; encoding: [0x30,0x85,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x30,0x85,0x81,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x30,0x85,0x01,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x30,0x85,0x81,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 ; encoding: [0x30,0x85,0x01,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x30,0x85,0x21,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x30,0x85,0x41,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x30,0x85,0x61,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x30,0x85,0x21,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x30,0x85,0xa1,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_b512 s[20:35], s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x30,0x85,0x61,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0x9a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x82,0x9a,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x82,0x9a,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x82,0x9a,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 ; encoding: [0x82,0x9a,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x82,0x9a,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x82,0x9a,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x82,0x9a,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x82,0x9a,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x82,0x9a,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_i8 vcc_lo, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x82,0x9a,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0xa1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x44,0xa1,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x44,0xa1,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x44,0xa1,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 ; encoding: [0x44,0xa1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x44,0xa1,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x44,0xa1,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x44,0xa1,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x44,0xa1,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x44,0xa1,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_u8 s5, s[8:11], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x44,0xa1,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0xda,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0xc2,0xda,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0xc2,0xda,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0xc2,0xda,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 ; encoding: [0xc2,0xda,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0xc2,0xda,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0xc2,0xda,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0xc2,0xda,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0xc2,0xda,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0xc2,0xda,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_i16 vcc_hi, s[4:7], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0xc2,0xda,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_RT +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0xe1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_NT +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_NT ; encoding: [0x70,0xe1,0x86,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT ; encoding: [0x70,0xe1,0x06,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU ; encoding: [0x70,0xe1,0x86,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_CU +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 ; encoding: [0x70,0xe1,0x06,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SE +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SE ; encoding: [0x70,0xe1,0x26,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_DEV +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_DEV ; encoding: [0x70,0xe1,0x46,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SYS +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 scope:SCOPE_SYS ; encoding: [0x70,0xe1,0x66,0xf4,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SE ; encoding: [0x70,0xe1,0x26,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_LU scope:SCOPE_SE ; encoding: [0x70,0xe1,0xa6,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS +// GFX13: s_buffer_load_u16 s5, s[96:99], s0 offset:0x0 th:TH_LOAD_HT scope:SCOPE_SYS ; encoding: [0x70,0xe1,0x66,0xf5,0x00,0x00,0x00,0x00] + +s_buffer_load_i8 s5, s[4:7], s0 offset:0x0 nv +// GFX13: s_buffer_load_i8 s5, s[4:7], s0 offset:0x0 nv ; encoding: [0x42,0x81,0x16,0xf4,0x00,0x00,0x00,0x00] + +s_load_b32 s4, s[2:3], 0xa nv +// GFX13: s_load_b32 s4, s[2:3], 0xa nv ; encoding: [0x01,0x01,0x10,0xf4,0x0a,0x00,0x00,0xf8] + +s_load_b32 s4, s[2:3], 0xa scale_offset +// GFX13: s_load_b32 s4, s[2:3], 0xa scale_offset ; encoding: [0x01,0x01,0x00,0xf4,0x0a,0x00,0x00,0xf9] + +s_load_b32 s4, s[2:3], 0xa scale_offset nv +// GFX13: s_load_b32 s4, s[2:3], 0xa scale_offset nv ; encoding: [0x01,0x01,0x10,0xf4,0x0a,0x00,0x00,0xf9] + +s_load_b32 s4, s[2:3], m0 offset:0x20 scale_offset +// GFX13: s_load_b32 s4, s[2:3], m0 offset:0x20 scale_offset ; encoding: [0x01,0x01,0x00,0xf4,0x20,0x00,0x00,0xfb] + +s_load_b32 s4, s[2:3], s5 offset:0x20 scale_offset +// GFX13: s_load_b32 s4, s[2:3], s5 offset:0x20 scale_offset ; encoding: [0x01,0x01,0x00,0xf4,0x20,0x00,0x00,0x0b] +//// NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +// GFX13-ASM: {{.*}} +// GFX13-DIS: {{.*}}